1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 12:28:22 +01:00

0.51.1 pre snapshot. Be careful, it may be buggy. It fixes some bugs though.

This commit is contained in:
dan
1999-02-17 11:06:40 +00:00
parent 931a37b124
commit e7495baff7
189 changed files with 16952 additions and 9682 deletions

View File

@@ -33,6 +33,9 @@ Text input field, 15bpp support
George Clernon <clernong@tinet.ie> George Clernon <clernong@tinet.ie>
bug fix in browser widget bug fix in browser widget
Omar Cornut / Zoop <cornut@capway.com>
SteelBlueSilk theme
Sylvain CORRE <sylvain.corre@wanadoo.fr> Sylvain CORRE <sylvain.corre@wanadoo.fr>
bug fix for MkLinux/PPC bug fix for MkLinux/PPC
@@ -65,7 +68,7 @@ Better detection of gfx libraries, added IconTitleColor/IconTitleBack
Greg Hayes <sdc@choice.net> Greg Hayes <sdc@choice.net>
Twisted miniaturization animation Twisted miniaturization animation
Alban Hertroys Alban Hertroys <dalroi@wit401310.student.utwente.nl>
WINGs color panel WINGs color panel
HIDEKI Fujimoto <hideki70@osk2.threewebnet.or.jp> HIDEKI Fujimoto <hideki70@osk2.threewebnet.or.jp>
@@ -193,6 +196,10 @@ xv.tiff
David Wang <dwang@cisco.com> David Wang <dwang@cisco.com>
edge resistance, 8bpp balloon bug fix, other 8bpp related fixes edge resistance, 8bpp balloon bug fix, other 8bpp related fixes
Franck Wolff <frawolff@club-internet.fr>
various fixes/enhancements to WINGs
Yoav Yerushalmi <yoav@mit.edu> Yoav Yerushalmi <yoav@mit.edu>
Fixed -visualid for screens that can do multiple depths. Another fix in Fixed -visualid for screens that can do multiple depths. Another fix in
libproplist. Chooses best depth in screen. libproplist. Chooses best depth in screen.

View File

@@ -4,7 +4,7 @@
If you find a bug please fill this form and send it to If you find a bug please fill this form and send it to
developers@windowmaker.org developers@windowmaker.org Please, USE THIS FORM!!!
You can also report a bug in the WWW bug tracker at You can also report a bug in the WWW bug tracker at
http://windowmaker.org/cgi-bin/bugs or by sending this report http://windowmaker.org/cgi-bin/bugs or by sending this report

2
BUGS
View File

@@ -1,8 +1,6 @@
- wmaker will not stop managing a screen even if another window manager - wmaker will not stop managing a screen even if another window manager
requests that, through the ICCCM 2.0 manager selection stuff requests that, through the ICCCM 2.0 manager selection stuff
- the app menu does not update after a style/theme change without restart. - the app menu does not update after a style/theme change without restart.
- during startup, transient windows should be miniaturized with their owners
not in their own icons
- stacking code is buggy (or XFree is buggy) - stacking code is buggy (or XFree is buggy)
- save session doesnt work on some platforms (Alpha and Sparc) - save session doesnt work on some platforms (Alpha and Sparc)
- texture pixmaps are being incorrectly freed somewhere. Either - texture pixmaps are being incorrectly freed somewhere. Either

91
COPYING.OPL Normal file
View File

@@ -0,0 +1,91 @@
OpenContent License (OPL)
Version 1.0, July 14, 1998.
This document outlines the principles underlying the OpenContent
(OC) movement and may be redistributed provided it remains
unaltered. For legal purposes, this document is the license under
which OpenContent is made available for use.
The original version of this document may be found at
http://www.opencontent.org/opl.shtml
LICENSE
Terms and Conditions for Copying, Distributing, and Modifying
Items other than copying, distributing, and modifying the Content
with which this license was distributed (such as using, etc.) are
outside the scope of this license.
1. You may copy and distribute exact replicas of the OpenContent
(OC) as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any
warranty; and give any other recipients of the OC a copy of this
License along with the OC. You may at your option charge a fee for
the media and/or handling involved in creating a unique copy of the
OC for use offline, you may at your option offer instructional
support for the OC in exchange for a fee, or you may at your option
offer warranty in exchange for a fee. You may not charge a fee for
the OC itself. You may not charge a fee for the sole service of
providing access to and/or use of the OC via a network (e.g. the
Internet), whether it be via the world wide web, FTP, or any other
method.
2. You may modify your copy or copies of the OpenContent or any
portion of it, thus forming works based on the Content, and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified content to carry prominent notices
stating that you changed it, the exact nature and content of the
changes, and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the OC or any part
thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License, unless otherwise permitted
under applicable Fair Use law.
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the OC, and
can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work
based on the OC, the distribution of the whole must be on the terms
of this License, whose permissions for other licensees extend to
the entire whole, and thus to each and every part regardless of who
wrote it. Exceptions are made to this requirement to release
modified works free of charge under this license only in compliance
with Fair Use law where applicable.
3. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to copy,
distribute or modify the OC. These actions are prohibited by law if
you do not accept this License. Therefore, by distributing or
translating the OC, or by deriving works herefrom, you indicate
your acceptance of this License to do so, and all its terms and
conditions for copying, distributing or translating the OC.
NO WARRANTY
4. BECAUSE THE OPENCONTENT (OC) IS LICENSED FREE OF CHARGE, THERE
IS NO WARRANTY FOR THE OC, TO THE EXTENT PERMITTED BY APPLICABLE
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
AND/OR OTHER PARTIES PROVIDE THE OC "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE. THE ENTIRE RISK OF USE OF THE OC IS WITH YOU.
SHOULD THE OC PROVE FAULTY, INACCURATE, OR OTHERWISE UNACCEPTABLE
YOU ASSUME THE COST OF ALL NECESSARY REPAIR OR CORRECTION.
5. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
MIRROR AND/OR REDISTRIBUTE THE OC AS PERMITTED ABOVE, BE LIABLE TO
YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
THE OC, EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

View File

@@ -1,3 +1,40 @@
Changes since version 0.51.0:
.............................
- icon explosion is stopped when clicking on anywhere
- fixed dont set xset stuff option in WPrefs
- fixed menu title messup in WPrefs
- fixed WPrefs message dialogs for invalid menus
- fixed workspace back setting in all screens
- fixed WorkspaceSpecificBack / wmsetbg
- added WindozeCycle patch (being rewritten)
- cleaned up focus/unfocus state transitions
- made WPrefs more robust
- fixed locale file (po) installation stuff
- fixed focus loss when dragging window across workspaces
- fixed workspace baby boom with nextworkspacekey
- removed ignore_next_unmap kluge
- install defaults data in /usr/local/etc
- added menu for miniwindow
- fixed remove resizebar from shaded window
- rewrote library/header search code in configure
- rewrote window move/edge resistance code
- added window border resistance
- changed EdgeResistance option to only YES/NO
- added workaround for glibc bug in sscanf("", bla, bla)
- hopefully fixed WM_COLORMAP_WINDOWS crash bug
- fixed searching of localized menus
- fixed --help option
- fixed handling of docked apps with . in their instance names
- RSupportedFileFormats() in wrlib will now return a static buffer
- fixed bug in StartHidden
- a little faster startup
- will rearrange icons after moving an icon if autoarrangeicons
- fixed icon overlap bug
- fixed crash with internal dialogs and multi-heads
- added standard colormap support to wrlib (taken from libXmu sources)
- fixed memory leak in attribute panel
Changes since version 0.50.2: Changes since version 0.50.2:
............................. .............................
@@ -35,6 +72,8 @@ Changes since version 0.50.2:
- fixed bug in start maximized - fixed bug in start maximized
- added _WINDOWMAKER_NOTICEBOARD protocol - added _WINDOWMAKER_NOTICEBOARD protocol
- added docklib - added docklib
- updated utility parameter format to GNU standards
- removed libPropList from distribution and merged with GNOME one
Changes since version 0.50.1: Changes since version 0.50.1:
............................. .............................

20
FAQ
View File

@@ -100,6 +100,8 @@ Summary of Contents:
5.10 How do I allow Alt+# to work in an rxvt session? (with irc for 5.10 How do I allow Alt+# to work in an rxvt session? (with irc for
example) example)
5.11 Window Maker breaks scilab 5.11 Window Maker breaks scilab
5.12 Netscape icons show up in black and white
5.13 Snow flakes from xsnow don't acumulate on titlebars!
6 - Programming 6 - Programming
6.1 How do I get a normal X application to produce an appicon? 6.1 How do I get a normal X application to produce an appicon?
@@ -1212,6 +1214,24 @@ with
in routines/xsci/jpc_SGraph.c in routines/xsci/jpc_SGraph.c
5.12 Netscape shows black and white icons
----------------------------------
This is because Netscape uses monochrome icons when running under olwm
and you are using the OPEN LOOK emulation option. If you do not use any XView
apps anyway, recompile Window Maker without the --enable-openlook option.
If you need OPEN LOOK emulation, you will have to get used to the monochrome
icons or change then manually in the Attributes panel for each window.
5.13 Snow flakes from xsnow don't acumulate on titlebars!
----------------------------------
Because of the way xsnow is coded, it seems that it can't "see"
windows with the SaveUnder attribute turned on. So, if snow
accumulation on windows is vital for you, disable SaveUnders in
WPrefs, in the advanced options section.
-=-=-=-=-=-=- -=-=-=-=-=-=-
Programming: Programming:

61
INSTALL
View File

@@ -66,11 +66,11 @@ The following is required to build Window Maker:
Install it before building Window Maker. Install it before building Window Maker.
- autoconf, automake and libtool - autoconf, automake and libtool
These tools are not needed, but IF you have one or These tools are NOT needed, but IF you have one or
more of them installed, make sure you have ALL of the following more of them installed, make sure you have ALL of the following
with exactly these versions: with exactly these versions:
autoconf 2.12 autoconf 2.13
automake 1.3 automake 1.4
libtool 1.2 libtool 1.2
If you have a different version, disable them by temporarily If you have a different version, disable them by temporarily
renaming them to something else or uninstalling them from your renaming them to something else or uninstalling them from your
@@ -116,7 +116,7 @@ might work too.
- GNU xgettext - GNU xgettext
If you want to use translated messages, you will need GNU gettext. If you want to use translated messages, you will need GNU gettext.
Other versions of gettext are not compatible and will not work. Other versions of gettext are not compatible and will not work.
Get the GNU version from ftp://prep.ai.mit.edu Get the GNU version from ftp://ftp.gnu.org
Most of these can be get from ftp.uu.net/pub/graphics Most of these can be get from ftp.uu.net/pub/graphics
@@ -135,6 +135,16 @@ support compiled in.
To get a list of other options, run ./configure --help To get a list of other options, run ./configure --help
--with-libs-from
specify additional paths for libraries to be searched.
The -L flag must precede each path, like:
--with-libs-from=-L/opt/libs -L/usr/local/lib
--with-incs-from
specify additional paths for header files to be searched.
The -I flag must precede each paths, like:
--with-incs-from=-I/opt/headers -I/usr/local/include
--enable-kanji --enable-kanji
support to display Kanji characters, Korean, Chinese and other support to display Kanji characters, Korean, Chinese and other
languagues that require special characters. languagues that require special characters.
@@ -202,6 +212,11 @@ To get a list of other options, run ./configure --help
PLATFORM SPECIFIC NOTES: PLATFORM SPECIFIC NOTES:
======================== ========================
- DEC/Alpha machines
You might need to pass the --disable-shm flag to configure, like
./configure --disable-shm
- SCO Unix - run configure like - SCO Unix - run configure like
CFLAGS="-belf -DANSICPP" ./configure CFLAGS="-belf -DANSICPP" ./configure
@@ -210,8 +225,10 @@ PLATFORM SPECIFIC NOTES:
CPP_PATH="gcc -E -x c" ./configure CPP_PATH="gcc -E -x c" ./configure
Sun's cpp lacks some features needed by Window Maker and it can Sun's cpp lacks some features needed by Window Maker and it can
cause problems when parsing the config files. cause problems when parsing the config files.
You also might need to use the --with-gfx-libs and --with-gfx-incs You also might need to use the --with-libs-from and --with-incs-from
to supply the directory where libtiff is located. to supply the directory where libtiff is located.
Someone mailed me that you also must make /usr/local/lib be the
first path in LD_LIBRARY_PATH to make it work.
If you have a Ultra Creator 3D or some other machine with high-end If you have a Ultra Creator 3D or some other machine with high-end
graphics, be sure to start the X server with the default visual graphics, be sure to start the X server with the default visual
@@ -221,17 +238,21 @@ PLATFORM SPECIFIC NOTES:
- GNU/Linux in general - GNU/Linux in general
Make sure you have /usr/local/lib in /etc/ld.so.conf and that you Make sure you have /usr/local/lib in /etc/ld.so.conf and that you
run ldconfig after installing. run ldconfig after installing.
Uninstall any packaged version of Window Maker before installing a new
version.
- RedHat GNU/Linux - RedHat GNU/Linux
RedHat systems have several annoying problems. If you use it, RedHat systems have several annoying problems. If you use it,
be sure to follow the steps below or Window Maker will not work: 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 * make sure you don't have the LANG and LINGUAS environment variables
set to en_RN; set to en_RN;
* make sure you have /usr/local/bin in your PATH environment * make sure you have /usr/local/bin in your PATH environment
variable, as for some mysterious reason the folks at RedHat did not variable;
include it in the default configuration files in RH 5.x;
* make sure you have /usr/local/lib in /etc/ld.so.conf before running * make sure you have /usr/local/lib in /etc/ld.so.conf before running
ldconfig; ldconfig;
@@ -249,6 +270,15 @@ PLATFORM SPECIFIC NOTES:
link from /usr/include/X11 to /usr/X11R6/include/X11 (if not, link from /usr/include/X11 to /usr/X11R6/include/X11 (if not,
type ln -s /usr/X11R6/include/X11 /usr/include/X11 ) type ln -s /usr/X11R6/include/X11 /usr/include/X11 )
* make sure you have /lib/cpp pointing to the cpp program
If you have any doubts in doing any of the stuff above, please
don't exitate to contact the RedHat user support. They will
kindly answer to all your questions regarding their system.
They also know much more about their own system than us
(we don't use RedHat).
- PowerPC MkLinux - PowerPC MkLinux
You will need to have the latest version of Xpmac. Older versions You will need to have the latest version of Xpmac. Older versions
seem to have bugs that cause the system to hang. seem to have bugs that cause the system to hang.
@@ -364,9 +394,14 @@ WPrefs.app Example:
./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Apps ./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Apps
Then make /home/jshmoe/bin be included in your search path and run Then make /home/jshmoe/bin be included in your search PATH, add
/home/jshmoe/lib to your LD_LIBRARY_PATH environment variable and run
bin/wmaker.inst bin/wmaker.inst
Of course, /home/jshmoe is supposed to be replaced with your actual home
directory path.
UPGRADING UPGRADING
========= =========
@@ -395,8 +430,8 @@ configure: error: libtool configure failed
remove the --no-reexec option from aclocal.m4 and libPropList/aclocal.m4 remove the --no-reexec option from aclocal.m4 and libPropList/aclocal.m4
and reconfigure and reconfigure
Also make sure the autoconf and automake versions you have installed are: Also make sure the autoconf and automake versions you have installed are:
autoconf 2.12 autoconf 2.13
automake 1.3 automake 1.4
libtool 1.2 libtool 1.2
Note that it must not be libtool 1.2b, it must be libtool 1.2, Note that it must not be libtool 1.2b, it must be libtool 1.2,
@@ -412,11 +447,11 @@ somewhere else in this file.
Delete config.cache, then rerun configure adding the following options to Delete config.cache, then rerun configure adding the following options to
configure (among the other options you use): configure (among the other options you use):
--with-gfx-libs="-L/usr/local/lib" --with-libs-from="-L/usr/local/lib"
--with-gfx-incs="-I/usr/local/include -I/usr/local/include/tiff" --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 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 located. You can put multiple paths in any of these options, as the example
of --with-gfx-incs shows. Just put a space between them. of --with-incs-from shows. Just put a space between them.
== configure doesn't detect libXpm. == configure doesn't detect libXpm.

11
Install
View File

@@ -42,6 +42,11 @@ echo
echo "Please read the INSTALL and FAQ files before e-mailing " echo "Please read the INSTALL and FAQ files before e-mailing "
echo "questions. (we are lazy to reply questions already answered " echo "questions. (we are lazy to reply questions already answered "
echo "there as much as you are lazy to read these ;) " echo "there as much as you are lazy to read these ;) "
echo
perai
echo
echo "Did you install libPropList? If not, please install it now."
echo
perai perai
echo "Did you read the INSTALL file?" echo "Did you read the INSTALL file?"
echo -n "<y/n> " echo -n "<y/n> "
@@ -170,7 +175,7 @@ if [ "$NLS" = "y" -o "$NLS" = "Y" ]; then
continue continue
fi fi
if [ "$MB" = "" -a "$i" = "ja" -o "$i" = "kr" ]; then if [ "$MB" = "" -a "$i" = "ja" -o "$i" = "ko" ]; then
echo echo
echo "A language you selected needs multi-byte character support" echo "A language you selected needs multi-byte character support"
echo "Do you want to enable it?" echo "Do you want to enable it?"
@@ -217,8 +222,6 @@ while [ $done = 0 ]; do
echo echo
echo " $PREFIX/bin must be in the PATH environment variable" echo " $PREFIX/bin must be in the PATH environment variable"
echo "of all users who will use Window Maker" echo "of all users who will use Window Maker"
echo
echo " Make sure $PREFIX/lib is in the /etc/ld.so.conf file"
perai perai
done done
@@ -259,6 +262,8 @@ echo "--------------------------"
perform make install perform make install
if [ `uname -s` = "Linux" ]; then if [ `uname -s` = "Linux" ]; then
echo
echo " Make sure $PREFIX/lib is in the /etc/ld.so.conf file"
/sbin/ldconfig /sbin/ldconfig
fi fi

View File

@@ -57,12 +57,20 @@ http://master.debian.org/~mmagallo/packages/wmaker/
RedHat GNU/Linux (RPM) RedHat GNU/Linux (RPM)
---------------------- ----------------------
For Intel:
Contact: Jim Knoble <jmknoble@pobox.com> Contact: Jim Knoble <jmknoble@pobox.com>
Sites: Sites:
ftp://ftp.windowmaker.org/pub/beta/compiled/linux/rpms/ ftp://ftp.windowmaker.org/pub/beta/compiled/linux/rpms/
ftp://ftp.redhat.com/pub/contrib/SRPMS/ ftp://ftp.redhat.com/pub/contrib/SRPMS/
ftp://ftp.redhat.com/pub/contrib/i386/ ftp://ftp.redhat.com/pub/contrib/i386/
For Alpha:
Contact: Peter Petrakis <peterpan@wn.net>
Site:
http://math.stcc.mass.edu/petrakis/downloads/X11
HP-UX HP-UX
----- -----

View File

@@ -2,15 +2,23 @@
SUBDIRS = wrlib WINGs src util po WindowMaker wmlib test WPrefs.app doc SUBDIRS = wrlib WINGs src util po WindowMaker wmlib test WPrefs.app doc
EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N MIRRORS Install acconfig.h\ EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N MIRRORS COPYING.OPL \
Install acconfig.h\
mkpatch README.KDE README.GNOME WindowMaker.lsm.in\ mkpatch README.KDE README.GNOME WindowMaker.lsm.in\
docklib-0.0.tar.gz docklib-0.2.tar.gz
WindowMaker.lsm: WindowMaker.lsm.in
windowmaker.lsm:
size=`wc -c $(distdir).tar.gz|cut -d\ -f1`;\ size=`wc -c $(distdir).tar.gz|cut -d\ -f1`;\
size=`echo scale=2\;$$size/1048576|bc`;\ size=`echo scale=2\;$$size/1048576|bc`;\
sed -e "s/VERSION/"$(VERSION)"/" \ sed -e "s/VERSION/"$(VERSION)"/" \
-e "s/DATE/`date +%d%b%Y|tr a-z A-Z`/"\ -e "s/DATE/`date +%d%b%Y|tr a-z A-Z`/"\
-e "s/SIZE/$$size M/"\ -e "s/SIZE/$$size M/"\
WindowMaker.lsm.in > WindowMaker.lsm WindowMaker.lsm.in > WindowMaker-$(VERSION).lsm
dist-hook:
touch `find -name configure.in -print`
touch `find -name aclocal.m4 -print`
touch `find -name Makefile.am -print`
touch `find -name Makefile.in -print`
touch `find -name configure -print`

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@
@@ -89,15 +89,15 @@ wprefsdir = @wprefsdir@
SUBDIRS = wrlib WINGs src util po WindowMaker wmlib test WPrefs.app doc SUBDIRS = wrlib WINGs src util po WindowMaker wmlib test WPrefs.app doc
EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N MIRRORS Install acconfig.h mkpatch README.KDE README.GNOME WindowMaker.lsm.in docklib-0.0.tar.gz EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N MIRRORS COPYING.OPL Install acconfig.h mkpatch README.KDE README.GNOME WindowMaker.lsm.in docklib-0.2.tar.gz
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ./src/config.h CONFIG_HEADER = ./src/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \ DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
Makefile.in NEWS TODO acconfig.h aclocal.m4 config.guess config.sub \ Makefile.in NEWS TODO acconfig.h acinclude.m4 aclocal.m4 config.guess \
configure configure.in install-sh ltconfig ltmain.sh missing \ config.sub configure configure.in install-sh ltconfig ltmain.sh missing \
mkinstalldirs src/config.h.in src/stamp-h.in mkinstalldirs src/config.h.in src/stamp-h.in
@@ -114,7 +114,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \ cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): configure.in $(ACLOCAL_M4): configure.in acinclude.m4
cd $(srcdir) && $(ACLOCAL) cd $(srcdir) && $(ACLOCAL)
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -297,6 +297,7 @@ distdir: $(DISTFILES)
|| exit 1; \ || exit 1; \
fi; \ fi; \
done done
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
info-am: info-am:
info: info-recursive info: info-recursive
dvi-am: dvi-am:
@@ -369,13 +370,20 @@ installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean maintainer-clean-generic clean mostlyclean distclean maintainer-clean
windowmaker.lsm: WindowMaker.lsm: WindowMaker.lsm.in
size=`wc -c $(distdir).tar.gz|cut -d\ -f1`;\ size=`wc -c $(distdir).tar.gz|cut -d\ -f1`;\
size=`echo scale=2\;$$size/1048576|bc`;\ size=`echo scale=2\;$$size/1048576|bc`;\
sed -e "s/VERSION/"$(VERSION)"/" \ sed -e "s/VERSION/"$(VERSION)"/" \
-e "s/DATE/`date +%d%b%Y|tr a-z A-Z`/"\ -e "s/DATE/`date +%d%b%Y|tr a-z A-Z`/"\
-e "s/SIZE/$$size M/"\ -e "s/SIZE/$$size M/"\
WindowMaker.lsm.in > WindowMaker.lsm WindowMaker.lsm.in > WindowMaker-$(VERSION).lsm
dist-hook:
touch `find -name configure.in -print`
touch `find -name aclocal.m4 -print`
touch `find -name Makefile.am -print`
touch `find -name Makefile.in -print`
touch `find -name configure -print`
# Tell versions [3.59,3.63) of GNU make to not export all variables. # 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. # Otherwise a system limit (for SysV at least) may be exceeded.

28
NEWS
View File

@@ -3,6 +3,34 @@ NEWS for veteran Window Maker users
----------------------------------- -----------------------------------
--- 0.51.1
KDE Application Menu script
---------------------------
wkdemenu.sh is a converter from KDE application menu structures to wmaker
menu that can be used as a piped menu. Look wkdemenu.sh for how to use it.
Window Edge Resistance
----------------------
Window edge resistance was now added. No, feature freeze hasn't been
removed. Its just part of the edge resistance rewrite ;)
New Theme
---------
Added SteelBlueSilk theme
Installation Path Changes
-------------------------
Default configuration data installed in /usr/local/etc/WindowMaker
or $(sysconfdir)/WindowMaker
--- 0.51.0 --- 0.51.0
Window Maker has become a GNU program (part of the GNU Project). Window Maker has become a GNU program (part of the GNU Project).

17
README
View File

@@ -4,7 +4,6 @@
GNU Window Maker GNU Window Maker
X11 Window Manager X11 Window Manager
<http://windowmaker.org> <http://windowmaker.org>
<ftp://ftp.windowmaker.org> <ftp://ftp.windowmaker.org>
@@ -49,8 +48,8 @@ supposed to be relatively fast and small, feature rich, easy to configure and
easy to use, with a simple and elegant appearance borrowed from NEXTSTEP(tm). 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 Window Maker was designed keeping integration with GNUstep in mind and is the
"official" window manager for it. It is also, the window manager for the "official" window manager for it. It is also part of the GNU project
GNU Project. Read more about GNUstep further on this file. (www.gnu.org) Read more about GNUstep further on this file.
Hints (information given by applications to integrate well with the window Hints (information given by applications to integrate well with the window
manager) for Motif(tm), OPEN LOOK(tm), KDE and GNOME are also supported. manager) for Motif(tm), OPEN LOOK(tm), KDE and GNOME are also supported.
@@ -138,9 +137,9 @@ Mailing List
============ ============
There is a mailing list for discussing Window Maker at There is a mailing list for discussing Window Maker at
wmaker@linuxcenter.com To subscribe to it, send a message containing: wm-user@windowmaker.org To subscribe to it, send a message containing:
subscribe subscribe
in the body of the message to wmaker-request@linuxcenter.com in the subject of the message to wm-user-request@windowmaker.org
If you got a problem, ask there (after reading the docs, of course). The 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. people there is more likely to be able to answer your questions than we are.
@@ -210,8 +209,8 @@ To enable, use --enable-openlook when doing the configure. Note that
not everything is implemented. not everything is implemented.
Implemented stuff include decoration hints and the push-pin. Not implemented Implemented stuff include decoration hints and the push-pin. Not implemented
stuff include _SUN_WINDOW_STATE (the compose led state stuff), header (not stuff include _SUN_WINDOW_STATE (the compose led state stuff), drag and drop
sure what's it) and footer strings. interest stuff, header (not sure what's it) and footer strings.
Please give me feedback if something doesn't work. If the feature is Please give me feedback if something doesn't work. If the feature is
already implemented, but is not working because of a bug, I'll try to already implemented, but is not working because of a bug, I'll try to
@@ -328,6 +327,10 @@ Copyrights & Disclaimers
Window Maker is copyrighted by Alfredo K. Kojima and is licensed through the 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. GNU General Public License. Read the COPYING file for the complete license.
The icons that are distributed with this program and were made by Marco van
Hylckama Vlieg are licensed through the OpenContent License. Read the
COPYING.OPL file for the complete license.
NeXT, OpenStep and NEXTSTEP are a trademarks of NeXT Computer, Inc. NeXT, OpenStep and NEXTSTEP are a trademarks of NeXT Computer, Inc.
All other trademarks are property of their respective owners. All other trademarks are property of their respective owners.

View File

@@ -86,9 +86,11 @@ Enhancing Integration
Window Maker adds some extensions to KDE's messaging stuff, so you can run Window Maker adds some extensions to KDE's messaging stuff, so you can run
Window Maker specific commands from places like kpanel, krootwm or even Window Maker specific commands from places like kpanel, krootwm or even
kwmcom. If you want support for these in KDE, please go nag your favorite KDE kwmcom. Recently KDE developers have kindly added support for these extensions
developers, not us. The added stuff are the following kwm like commands: in the more recent KDE versions from CVS. The added stuff are the following
kwm like commands:
wm:wmaker - select Window Maker support mode
wmaker:info - show info panel wmaker:info - show info panel
wmaker:legal - show legal panel wmaker:legal - show legal panel
wmaker:arrangeIcons - arrange icons wmaker:arrangeIcons - arrange icons
@@ -124,3 +126,7 @@ windows present, restart them.
* Wmaker opens windows by default under/over the panel, when the panel is * Wmaker opens windows by default under/over the panel, when the panel is
at top or left of screen. Use the GUI configuration tool WPrefs to change at top or left of screen. Use the GUI configuration tool WPrefs to change
this. this.
* Some commands, such as cascade windows and rearrange windows are not
yet implemented.

2
TODO
View File

@@ -13,7 +13,7 @@ Do ASAP:
Need to do: Need to do:
=========== ===========
- allow user to select/restore default root menu from wprefs - allow user to select/restore default root menu from wprefs
- fix and include the windoze cycle window patch - fix windoze cycle window patch
- support for X11R6.4 extension for getting extra visual info in wrlib's - support for X11R6.4 extension for getting extra visual info in wrlib's
automatic best context guessing automatic best context guessing
- docklet to control AccessX (keyboard accessibility) functions - docklet to control AccessX (keyboard accessibility) functions

View File

@@ -1,3 +1,18 @@
changes since wmaker 0.51.0:
............................
- applied c++ compat header patch from Martynas Kunigelis <mkunigelis@alna.lt>
- added WMSetTextFieldBeveled()
changes since wmaker 0.50.1:
............................
- fixed various bugs
- added patch from Franck Wolff <frawolff@club-internet.fr>, with
many fixes and enhancements
- added notification queues, asynchronous notifications etc.
- added WMSetBrowserDoubleAction()
- fixed list double click action
changes since wmaker 0.50.2: changes since wmaker 0.50.2:
............................ ............................

View File

@@ -6,7 +6,7 @@ SUBDIRS = Resources
LIBLIST= $(top_builddir)/wrlib/libwraster.la\ LIBLIST= $(top_builddir)/wrlib/libwraster.la\
@GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ \ @LIBRARY_SEARCH_PATH@ @GFXLIBS@ @XLIBS@ \
-lm @LIBPL@ -lm @LIBPL@
@@ -18,7 +18,8 @@ lib_LIBRARIES = libWINGs.a
include_HEADERS = WINGs.h WUtil.h WINGsP.h include_HEADERS = WINGs.h WUtil.h WINGsP.h
noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget testcolorpanel noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget testcolorpanel \
testnot
testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h
@@ -42,6 +43,10 @@ testcolorpanel_SOURCES = testcolorpanel.c
testcolorpanel_LDADD = libWINGs.a $(LIBLIST) testcolorpanel_LDADD = libWINGs.a $(LIBLIST)
testnot_SOURCES = testnot.c
testnot_LDADD = libWINGs.a $(LIBLIST)
wmquery_SOURCES = wmquery.c wmquery_SOURCES = wmquery.c
@@ -55,6 +60,8 @@ libWINGs_a_SOURCES = \
WINGs.h \ WINGs.h \
WINGsP.h \ WINGsP.h \
configuration.c \ configuration.c \
llist.h \
llist.c \
international.c \ international.c \
notification.c \ notification.c \
selection.c \ selection.c \
@@ -90,11 +97,7 @@ libWINGs_a_SOURCES = \
memory.c \ memory.c \
usleep.c usleep.c
##
## Find a better way than $(GFXFLAGS) to inform widgets.c wich of
## tiff or xpm images should be used
INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \ INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \
-DRESOURCE_PATH=\"$(datadir)/WINGs\" $(GFXFLAGS) -DDEBUG \ -DRESOURCE_PATH=\"$(datadir)/WINGs\" @HEADER_SEARCH_PATH@ -DDEBUG
@XCFLAGS@

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@
@@ -91,7 +91,7 @@ AUTOMAKE_OPTIONS = no-dependencies
SUBDIRS = Resources SUBDIRS = Resources
LIBLIST = $(top_builddir)/wrlib/libwraster.la @GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ -lm @LIBPL@ LIBLIST = $(top_builddir)/wrlib/libwraster.la @LIBRARY_SEARCH_PATH@ @GFXLIBS@ @XLIBS@ -lm @LIBPL@
#lib_LTLIBRARIES = libWINGs.la #lib_LTLIBRARIES = libWINGs.la
@@ -102,7 +102,8 @@ lib_LIBRARIES = libWINGs.a
include_HEADERS = WINGs.h WUtil.h WINGsP.h include_HEADERS = WINGs.h WUtil.h WINGsP.h
noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget testcolorpanel noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget testcolorpanel testnot
testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h
@@ -126,6 +127,10 @@ testcolorpanel_SOURCES = testcolorpanel.c
testcolorpanel_LDADD = libWINGs.a $(LIBLIST) testcolorpanel_LDADD = libWINGs.a $(LIBLIST)
testnot_SOURCES = testnot.c
testnot_LDADD = libWINGs.a $(LIBLIST)
wmquery_SOURCES = wmquery.c wmquery_SOURCES = wmquery.c
wmquery_LDADD = libWINGs.a $(LIBLIST) wmquery_LDADD = libWINGs.a $(LIBLIST)
@@ -133,10 +138,10 @@ wmquery_LDADD = libWINGs.a $(LIBLIST)
EXTRA_DIST = logo.xpm EXTRA_DIST = logo.xpm
# wbutton.c # wbutton.c
libWINGs_a_SOURCES = WINGs.h WINGsP.h configuration.c international.c notification.c selection.c userdefaults.c wapplication.c wbrowser.c wbutton.c wcolor.c wcolorpanel.c wcolorwell.c wevent.c wfilepanel.c wframe.c wfont.c wfontpanel.c widgets.c wlabel.c wlist.c wmisc.c wpanel.c wpixmap.c wpopupbutton.c wscroller.c wscrollview.c wslider.c wsplitview.c wtextfield.c wwindow.c wview.c error.c findfile.c hashtable.c memory.c usleep.c libWINGs_a_SOURCES = WINGs.h WINGsP.h configuration.c llist.h llist.c international.c notification.c selection.c userdefaults.c wapplication.c wbrowser.c wbutton.c wcolor.c wcolorpanel.c wcolorwell.c wevent.c wfilepanel.c wframe.c wfont.c wfontpanel.c widgets.c wlabel.c wlist.c wmisc.c wpanel.c wpixmap.c wpopupbutton.c wscroller.c wscrollview.c wslider.c wsplitview.c wtextfield.c wwindow.c wview.c error.c findfile.c hashtable.c memory.c usleep.c
INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/src -DRESOURCE_PATH=\"$(datadir)/WINGs\" $(GFXFLAGS) -DDEBUG @XCFLAGS@ INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/src -DRESOURCE_PATH=\"$(datadir)/WINGs\" @HEADER_SEARCH_PATH@ -DDEBUG
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../src/config.h CONFIG_HEADER = ../src/config.h
@@ -152,13 +157,13 @@ X_CFLAGS = @X_CFLAGS@
X_LIBS = @X_LIBS@ X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@
libWINGs_a_LIBADD = libWINGs_a_LIBADD =
libWINGs_a_OBJECTS = configuration.o international.o notification.o \ libWINGs_a_OBJECTS = configuration.o llist.o international.o \
selection.o userdefaults.o wapplication.o wbrowser.o wbutton.o wcolor.o \ notification.o selection.o userdefaults.o wapplication.o wbrowser.o \
wcolorpanel.o wcolorwell.o wevent.o wfilepanel.o wframe.o wfont.o \ wbutton.o wcolor.o wcolorpanel.o wcolorwell.o wevent.o wfilepanel.o \
wfontpanel.o widgets.o wlabel.o wlist.o wmisc.o wpanel.o wpixmap.o \ wframe.o wfont.o wfontpanel.o widgets.o wlabel.o wlist.o wmisc.o \
wpopupbutton.o wscroller.o wscrollview.o wslider.o wsplitview.o \ wpanel.o wpixmap.o wpopupbutton.o wscroller.o wscrollview.o wslider.o \
wtextfield.o wwindow.o wview.o error.o findfile.o hashtable.o memory.o \ wsplitview.o wtextfield.o wwindow.o wview.o error.o findfile.o \
usleep.o hashtable.o memory.o usleep.o
AR = ar AR = ar
PROGRAMS = $(noinst_PROGRAMS) PROGRAMS = $(noinst_PROGRAMS)
@@ -181,6 +186,9 @@ testcolorpanel_OBJECTS = testcolorpanel.o
testcolorpanel_DEPENDENCIES = libWINGs.a \ testcolorpanel_DEPENDENCIES = libWINGs.a \
$(top_builddir)/wrlib/libwraster.la $(top_builddir)/wrlib/libwraster.la
testcolorpanel_LDFLAGS = testcolorpanel_LDFLAGS =
testnot_OBJECTS = testnot.o
testnot_DEPENDENCIES = libWINGs.a $(top_builddir)/wrlib/libwraster.la
testnot_LDFLAGS =
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -195,8 +203,8 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar TAR = tar
GZIP_ENV = --best GZIP_ENV = --best
SOURCES = $(libWINGs_a_SOURCES) $(wtest_SOURCES) $(wmquery_SOURCES) $(wmfile_SOURCES) $(fontl_SOURCES) $(testmywidget_SOURCES) $(testcolorpanel_SOURCES) SOURCES = $(libWINGs_a_SOURCES) $(wtest_SOURCES) $(wmquery_SOURCES) $(wmfile_SOURCES) $(fontl_SOURCES) $(testmywidget_SOURCES) $(testcolorpanel_SOURCES) $(testnot_SOURCES)
OBJECTS = $(libWINGs_a_OBJECTS) $(wtest_OBJECTS) $(wmquery_OBJECTS) $(wmfile_OBJECTS) $(fontl_OBJECTS) $(testmywidget_OBJECTS) $(testcolorpanel_OBJECTS) OBJECTS = $(libWINGs_a_OBJECTS) $(wtest_OBJECTS) $(wmquery_OBJECTS) $(wmfile_OBJECTS) $(fontl_OBJECTS) $(testmywidget_OBJECTS) $(testcolorpanel_OBJECTS) $(testnot_OBJECTS)
all: all-redirect all: all-redirect
.SUFFIXES: .SUFFIXES:
@@ -317,6 +325,10 @@ testcolorpanel: $(testcolorpanel_OBJECTS) $(testcolorpanel_DEPENDENCIES)
@rm -f testcolorpanel @rm -f testcolorpanel
$(LINK) $(testcolorpanel_LDFLAGS) $(testcolorpanel_OBJECTS) $(testcolorpanel_LDADD) $(LIBS) $(LINK) $(testcolorpanel_LDFLAGS) $(testcolorpanel_OBJECTS) $(testcolorpanel_LDADD) $(LIBS)
testnot: $(testnot_OBJECTS) $(testnot_DEPENDENCIES)
@rm -f testnot
$(LINK) $(testnot_LDFLAGS) $(testnot_OBJECTS) $(testnot_LDADD) $(LIBS)
install-includeHEADERS: $(include_HEADERS) install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(includedir) $(mkinstalldirs) $(DESTDIR)$(includedir)

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@

View File

@@ -9,8 +9,12 @@
#define WINGS_H_VERSION 981220 #define WINGS_H_VERSION 981220
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#if 0
}
#endif
typedef unsigned long WMPixel; typedef unsigned long WMPixel;
@@ -768,6 +772,10 @@ void WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment);
void WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered); void WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered);
void WMSetTextFieldBeveled(WMTextField *tPtr, Bool flag);
Bool WMGetTextFieldEnabled(WMTextField *tPtr);
void WMSetTextFieldEnabled(WMTextField *tPtr, Bool flag); void WMSetTextFieldEnabled(WMTextField *tPtr, Bool flag);
void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag); void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag);
@@ -776,8 +784,11 @@ void WMSelectTextFieldRange(WMTextField *tPtr, WMRange range);
void WMSetTextFieldCursorPosition(WMTextField *tPtr, unsigned int position); void WMSetTextFieldCursorPosition(WMTextField *tPtr, unsigned int position);
void WMSetTextFieldNextTextField(WMTextField *tPtr, WMTextField *next);
void WMSetTextFieldPrevTextField(WMTextField *tPtr, WMTextField *prev);
extern char *WMListDidScrollNotification;
extern char *WMTextDidChangeNotification; extern char *WMTextDidChangeNotification;
extern char *WMTextDidBeginEditingNotification; extern char *WMTextDidBeginEditingNotification;
extern char *WMTextDidEndEditingNotification; extern char *WMTextDidEndEditingNotification;
@@ -844,6 +855,7 @@ void WMSetListBottomPosition(WMList *lPtr, int row);
int WMGetListPosition(WMList *lPtr); int WMGetListPosition(WMList *lPtr);
extern char *WMListDidScrollNotification; extern char *WMListDidScrollNotification;
extern char *WMListSelectionDidChangeNotification;
/* ....................................................................... */ /* ....................................................................... */
@@ -867,7 +879,8 @@ WMListItem *WMAddSortedBrowserItem(WMBrowser *bPtr, int column, char *text, Bool
WMListItem *WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text, Bool isBranch); WMListItem *WMInsertBrowserItem(WMBrowser *bPtr, int column, int row, char *text, Bool isBranch);
Bool WMSetBrowserPath(WMBrowser *bPtr, char *path); /* Don't free the returned string. */
char* WMSetBrowserPath(WMBrowser *bPtr, char *path);
/* you can free the returned string */ /* you can free the returned string */
char *WMGetBrowserPath(WMBrowser *bPtr); char *WMGetBrowserPath(WMBrowser *bPtr);
@@ -878,6 +891,9 @@ void WMSetBrowserFillColumnProc(WMBrowser *bPtr,WMBrowserFillColumnProc *proc);
void WMSetBrowserAction(WMBrowser *bPtr, WMAction *action, void *clientData); void WMSetBrowserAction(WMBrowser *bPtr, WMAction *action, void *clientData);
void WMSetBrowserDoubleAction(WMBrowser *bPtr, WMAction *action,
void *clientData);
WMListItem *WMGetBrowserSelectedItemInColumn(WMBrowser *bPtr, int column); WMListItem *WMGetBrowserSelectedItemInColumn(WMBrowser *bPtr, int column);
int WMGetBrowserFirstVisibleColumn(WMBrowser *bPtr); int WMGetBrowserFirstVisibleColumn(WMBrowser *bPtr);
@@ -1057,12 +1073,9 @@ char *WMGetFilePanelFileName(WMFilePanel *panel);
void WMFreeFilePanel(WMFilePanel *panel); void WMFreeFilePanel(WMFilePanel *panel);
int WMRunModalOpenPanelForDirectory(WMFilePanel *panel, WMWindow *owner, int WMRunModalFilePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
char *path, char *name, char **fileTypes); char *path, char *name, char **fileTypes);
int WMRunModalSavePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
char *path, char *name);
void WMSetFilePanelAccessoryView(WMFilePanel *panel, WMView *view); void WMSetFilePanelAccessoryView(WMFilePanel *panel, WMView *view);
WMView *WMGetFilePanelAccessoryView(WMFilePanel *panel); WMView *WMGetFilePanelAccessoryView(WMFilePanel *panel);
@@ -1084,5 +1097,9 @@ char *WMGetFontPanelFontName(WMFontPanel *panel);
WMFont *WMGetFontPanelFont(WMFontPanel *panel); WMFont *WMGetFontPanelFont(WMFontPanel *panel);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif #endif

View File

@@ -1,3 +1,6 @@
#ifndef _WINGSP_H_
#define _WINGSP_H_
#include <X11/Xlib.h> #include <X11/Xlib.h>
#include <X11/Xutil.h> #include <X11/Xutil.h>
@@ -16,6 +19,10 @@
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define DOUBLE_BUFFER #define DOUBLE_BUFFER
@@ -177,9 +184,10 @@ typedef struct W_Screen {
struct W_Pixmap *checkMark; struct W_Pixmap *checkMark;
struct W_Pixmap *homeIcon; struct W_Pixmap *homeIcon;
struct W_Pixmap *homeAltIcon; struct W_Pixmap *altHomeIcon;
struct W_Pixmap *magnifyIcon; struct W_Pixmap *magnifyIcon;
struct W_Pixmap *altMagnifyIcon;
struct W_Pixmap *wheelIcon; struct W_Pixmap *wheelIcon;
struct W_Pixmap *grayIcon; struct W_Pixmap *grayIcon;
struct W_Pixmap *rgbIcon; struct W_Pixmap *rgbIcon;
@@ -188,15 +196,6 @@ typedef struct W_Screen {
struct W_Pixmap *customPaletteIcon; struct W_Pixmap *customPaletteIcon;
struct W_Pixmap *colorListIcon; struct W_Pixmap *colorListIcon;
struct W_Pixmap *magnifyAltIcon;
struct W_Pixmap *wheelAltIcon;
struct W_Pixmap *grayAltIcon;
struct W_Pixmap *rgbAltIcon;
struct W_Pixmap *cmykAltIcon;
struct W_Pixmap *hsbAltIcon;
struct W_Pixmap *customPaletteAltIcon;
struct W_Pixmap *colorListAltIcon;
struct W_Pixmap *defaultObjectIcon; struct W_Pixmap *defaultObjectIcon;
Cursor defaultCursor; Cursor defaultCursor;
@@ -346,7 +345,7 @@ void W_DestroyView(W_View *view);
void W_RealizeView(W_View *view); void W_RealizeView(W_View *view);
void W_ReparentView(W_View *view, W_View *newParent); void W_ReparentView(W_View *view, W_View *newParent, int x, int y);
void W_MapView(W_View *view); void W_MapView(W_View *view);
@@ -416,3 +415,14 @@ Bool W_ApplicationInitialized(void);
char *W_GetTextSelection(WMScreen *scr, Atom selection); char *W_GetTextSelection(WMScreen *scr, Atom selection);
void W_HandleSelectionEvent(XEvent *event); void W_HandleSelectionEvent(XEvent *event);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _WINGSP_H_ */
void W_FlushASAPNotificationQueue();
void W_FlushIdleNotificationQueue();

View File

@@ -61,6 +61,10 @@
#endif /* !NDEBUG */ #endif /* !NDEBUG */
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef enum { typedef enum {
WMPostWhenIdle = 1, WMPostWhenIdle = 1,
@@ -227,9 +231,12 @@ WMNotificationQueue *WMGetDefaultNotificationQueue(void);
WMNotificationQueue *WMCreateNotificationQueue(void); WMNotificationQueue *WMCreateNotificationQueue(void);
void WMDequeueNotificationMatching(WMNotificationQueue *queue, unsigned mask); void WMDequeueNotificationMatching(WMNotificationQueue *queue,
WMNotification *notification,
unsigned mask);
void WMEnqueueNotification(WMNotificationQueue *queue, WMNotification *notification, void WMEnqueueNotification(WMNotificationQueue *queue,
WMNotification *notification,
WMPostingStyle postingStyle); WMPostingStyle postingStyle);
void WMEnqueueCoalesceNotification(WMNotificationQueue *queue, void WMEnqueueCoalesceNotification(WMNotificationQueue *queue,
@@ -254,7 +261,7 @@ char *WMGetUDStringForKey(WMUserDefaults *database, char *defaultName);
int WMGetUDIntegerForKey(WMUserDefaults *database, char *defaultName); int WMGetUDIntegerForKey(WMUserDefaults *database, char *defaultName);
int WMGetUDFloatForKey(WMUserDefaults *database, char *defaultName); float WMGetUDFloatForKey(WMUserDefaults *database, char *defaultName);
Bool WMGetUDBoolForKey(WMUserDefaults *database, char *defaultName); Bool WMGetUDBoolForKey(WMUserDefaults *database, char *defaultName);
@@ -274,6 +281,9 @@ proplist_t WMGetUDSearchList(WMUserDefaults *database);
void WMSetUDSearchList(WMUserDefaults *database, proplist_t list); void WMSetUDSearchList(WMUserDefaults *database, proplist_t list);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif #endif

126
WINGs/llist.c Normal file
View File

@@ -0,0 +1,126 @@
#include "WUtil.h"
#include <stdlib.h>
#include "llist.h"
WINLINE void*
lhead(list_t *list)
{
if (!list)
return NULL;
return list->head;
}
WINLINE list_t*
ltail(list_t *list)
{
if (!list)
return NULL;
return list->tail;
}
WINLINE list_t*
lcons(void *newHead, list_t *list)
{
list_t *newNode;
newNode = wmalloc(sizeof(list_t));
newNode->head = newHead;
newNode->tail = list;
return newNode;
}
WINLINE list_t*
lappend(list_t *list, list_t *tail)
{
list_t *ptr;
if (!list)
return tail;
for (ptr = list; ptr->tail == NULL; ptr = ptr->tail);
ptr->tail = tail;
return ptr;
}
WINLINE void
lfree(list_t *list)
{
if (list) {
lfree(list->tail);
free(list);
}
}
WINLINE void*
lfind(void *objeto, list_t *list, int (*compare)(void*, void*))
{
while (list) {
if ((*compare)(list->head, objeto)==0) {
return list->head;
}
list = list->tail;
}
return NULL;
}
WINLINE int
llength(list_t *list)
{
int i = 0;
while (list) {
list = list->tail;
i++;
}
return i;
}
WINLINE list_t*
lremove(list_t *list, void *object)
{
if (!list)
return NULL;
if (list->head == object) {
list_t *tmp = list->tail;
free(list);
return tmp;
}
list->tail = lremove(list->tail, object);
return list;
}
WINLINE list_t*
lremovehead(list_t *list)
{
list_t *tmp = NULL;
if (list) {
tmp = list->tail;
free(list);
}
return tmp;
}

40
WINGs/llist.h Normal file
View File

@@ -0,0 +1,40 @@
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
# define WINLINE inline
#else
# define WINLINE
#endif
typedef struct list_t {
void *head;
struct list_t *tail;
} list_t;
WINLINE void *lhead(list_t *list);
WINLINE list_t *ltail(list_t *list);
WINLINE list_t *lcons(void *newHead, list_t *list);
WINLINE list_t *lappend(list_t *list, list_t *tail);
WINLINE void lfree(list_t *list);
WINLINE void *lfind(void *object, list_t *list, int (*compare)(void*, void*));
WINLINE int llength(list_t *list);
WINLINE list_t *lremove(list_t *list, void *object);
WINLINE list_t *lremovehead(list_t *list);

View File

@@ -6,6 +6,7 @@
#include "WUtil.h" #include "WUtil.h"
#include "llist.h"
typedef struct W_Notification { typedef struct W_Notification {
char *name; char *name;
@@ -15,6 +16,8 @@ typedef struct W_Notification {
} Notification; } Notification;
extern void W_FlushASAPNotificationQueue();
char* char*
WMGetNotificationName(WMNotification *notification) WMGetNotificationName(WMNotification *notification)
@@ -214,17 +217,16 @@ WMPostNotification(WMNotification *notification)
} }
WMReleaseNotification(notification); WMReleaseNotification(notification);
W_FlushASAPNotificationQueue();
} }
void void
WMRemoveNotificationObserver(void *observer) WMRemoveNotificationObserver(void *observer)
{ {
NotificationObserver *orec, *tmp, *rec; NotificationObserver *orec, *tmp, *rec;
/* get the list of actions the observer is doing */ /* get the list of actions the observer is doing */
orec = WMHashGet(notificationCenter->observerTable, observer); orec = WMHashGet(notificationCenter->observerTable, observer);
@@ -285,10 +287,15 @@ void
WMRemoveNotificationObserverWithName(void *observer, char *name, void *object) WMRemoveNotificationObserverWithName(void *observer, char *name, void *object)
{ {
NotificationObserver *orec, *tmp, *rec; NotificationObserver *orec, *tmp, *rec;
NotificationObserver *newList = NULL;
/* get the list of actions the observer is doing */ /* get the list of actions the observer is doing */
orec = WMHashGet(notificationCenter->observerTable, observer); orec = WMHashGet(notificationCenter->observerTable, observer);
WMHashRemove(notificationCenter->observerTable, observer);
/* rebuild the list of actions for the observer */
while (orec) { while (orec) {
tmp = orec->nextAction; tmp = orec->nextAction;
if (orec->name == name && orec->object == object) { if (orec->name == name && orec->object == object) {
@@ -301,8 +308,8 @@ WMRemoveNotificationObserverWithName(void *observer, char *name, void *object)
assert(rec->prev==NULL); assert(rec->prev==NULL);
/* replace table entry */ /* replace table entry */
if (orec->next) { if (orec->next) {
WMHashInsert(notificationCenter->objectTable, orec->object, WMHashInsert(notificationCenter->objectTable,
orec->next); orec->object, orec->next);
} else { } else {
WMHashRemove(notificationCenter->objectTable, WMHashRemove(notificationCenter->objectTable,
orec->object); orec->object);
@@ -314,34 +321,42 @@ WMRemoveNotificationObserverWithName(void *observer, char *name, void *object)
assert(rec->prev==NULL); assert(rec->prev==NULL);
/* replace table entry */ /* replace table entry */
if (orec->next) { if (orec->next) {
WMHashInsert(notificationCenter->nameTable, orec->name, WMHashInsert(notificationCenter->nameTable,
orec->next); orec->name, orec->next);
} else { } else {
WMHashRemove(notificationCenter->nameTable, orec->name); WMHashRemove(notificationCenter->nameTable,
orec->name);
} }
} }
} }
/* update the action list for the observer */
rec = WMHashGet(notificationCenter->observerTable, observer);
if (rec == orec) {
if (orec->nextAction) {
WMHashInsert(notificationCenter->nameTable, observer,
orec->nextAction);
} else {
WMHashRemove(notificationCenter->nameTable, observer);
}
}
if (orec->prev) if (orec->prev)
orec->prev->next = orec->next; orec->prev->next = orec->next;
if (orec->next) if (orec->next)
orec->next->prev = orec->prev; orec->next->prev = orec->prev;
free(orec); free(orec);
} else {
/* append this action in the new action list */
orec->nextAction = NULL;
if (!newList) {
newList = orec;
} else {
NotificationObserver *p;
p = newList;
while (p->nextAction) {
p = p->nextAction;
}
p->nextAction = orec;
}
} }
orec = tmp; orec = tmp;
} }
/* reinsert the list to the table */
if (newList) {
WMHashInsert(notificationCenter->observerTable, observer, newList);
}
} }
@@ -363,18 +378,25 @@ WMPostNotificationName(char *name, void *object, void *clientData)
typedef struct W_NotificationQueue { typedef struct W_NotificationQueue {
NotificationCenter *center; list_t *asapQueue;
void *asapQueue; list_t *idleQueue;
void *idleQueue;
struct W_NotificationQueue *next;
} NotificationQueue; } NotificationQueue;
static WMNotificationQueue *notificationQueueList = NULL;
/* default queue */ /* default queue */
static WMNotificationQueue *notificationQueue = NULL; static WMNotificationQueue *notificationQueue = NULL;
WMNotificationQueue* WMNotificationQueue*
WMGetDefaultNotificationQueue(void) WMGetDefaultNotificationQueue(void)
{ {
if (!notificationQueue)
notificationQueue = WMCreateNotificationQueue();
return notificationQueue; return notificationQueue;
} }
@@ -382,20 +404,76 @@ WMGetDefaultNotificationQueue(void)
WMNotificationQueue* WMNotificationQueue*
WMCreateNotificationQueue(void) WMCreateNotificationQueue(void)
{ {
return NULL; NotificationQueue *queue;
queue = wmalloc(sizeof(NotificationQueue));
queue->asapQueue = NULL;
queue->idleQueue = NULL;
queue->next = notificationQueueList;
notificationQueueList = queue;
return queue;
} }
void
WMDequeueNotificationMatching(WMNotificationQueue *queue, unsigned mask)
{
}
void void
WMEnqueueNotification(WMNotificationQueue *queue, WMNotification *notification, WMEnqueueNotification(WMNotificationQueue *queue, WMNotification *notification,
WMPostingStyle postingStyle) WMPostingStyle postingStyle)
{ {
WMEnqueueCoalesceNotification(queue, notification, postingStyle,
WNCOnName|WNCOnSender);
}
static int
matchName(void *a, void *b)
{
WMNotification *n1 = (WMNotification*)a;
WMNotification *n2 = (WMNotification*)b;
return strcmp(n1->name, n2->name);
}
static int
matchSender(void *a, void *b)
{
WMNotification *n1 = (WMNotification*)a;
WMNotification *n2 = (WMNotification*)b;
return (n1->object == n2->object);
}
void
WMDequeueNotificationMatching(WMNotificationQueue *queue,
WMNotification *notification, unsigned mask)
{
void *n;
if (mask & WNCOnName) {
while ((n = lfind(notification->name, queue->asapQueue, matchName))) {
queue->asapQueue = lremove(queue->asapQueue, n);
WMReleaseNotification((WMNotification*)n);
}
while ((n = lfind(notification->name, queue->idleQueue, matchName))) {
queue->idleQueue = lremove(queue->idleQueue, n);
WMReleaseNotification((WMNotification*)n);
}
}
if (mask & WNCOnSender) {
while ((n = lfind(notification->name, queue->asapQueue, matchSender))) {
queue->asapQueue = lremove(queue->asapQueue, n);
WMReleaseNotification((WMNotification*)n);
}
while ((n = lfind(notification->name, queue->idleQueue, matchSender))) {
queue->idleQueue = lremove(queue->idleQueue, n);
WMReleaseNotification((WMNotification*)n);
}
}
} }
@@ -405,10 +483,51 @@ WMEnqueueCoalesceNotification(WMNotificationQueue *queue,
WMPostingStyle postingStyle, WMPostingStyle postingStyle,
unsigned coalesceMask) unsigned coalesceMask)
{ {
if (coalesceMask != WNCNone)
WMDequeueNotificationMatching(queue, notification, coalesceMask);
switch (postingStyle) {
case WMPostNow:
WMPostNotification(notification);
break;
case WMPostASAP:
queue->asapQueue = lappend(queue->asapQueue,
lcons(notification, NULL));
break;
case WMPostWhenIdle:
queue->idleQueue = lappend(queue->idleQueue,
lcons(notification, NULL));
break;
}
} }
void
W_FlushASAPNotificationQueue()
{
WMNotificationQueue *queue = notificationQueueList;
while (queue) {
while (queue->asapQueue) {
WMPostNotification((WMNotification*)lhead(queue->asapQueue));
queue->asapQueue = lremovehead(queue->asapQueue);
}
}
}
void
W_FlushIdleNotificationQueue()
{
WMNotificationQueue *queue = notificationQueueList;
while (queue) {
while (queue->idleQueue) {
WMPostNotification((WMNotification*)lhead(queue->idleQueue));
queue->idleQueue = lremovehead(queue->idleQueue);
}
}
}

91
WINGs/testnot.c Normal file
View File

@@ -0,0 +1,91 @@
/*
* test notifications
*/
#include "WUtil.h"
#include <stdio.h>
#include <stdlib.h>
char *notificationA = "notificationA";
char *notificationB = "notificationB";
char *notificationC = "notificationC";
void
observer1(void *data, WMNotification *notification)
{
printf("ObserverAction 1 got %s with object=%s, clientdata=%s\n",
WMGetNotificationName(notification),
(char*)WMGetNotificationObject(notification),
(char*)WMGetNotificationClientData(notification));
}
void
observer3(void *data, WMNotification *notification)
{
printf("ObserverAction 3 got %s with object=%s, clientdata=%s\n",
WMGetNotificationName(notification),
(char*)WMGetNotificationObject(notification),
(char*)WMGetNotificationClientData(notification));
}
void
observer2(void *data, WMNotification *notification)
{
printf("ObserverAction 2 got %s with object=%s, clientdata=%s\n",
WMGetNotificationName(notification),
(char*)WMGetNotificationObject(notification),
(char*)WMGetNotificationClientData(notification));
}
main(int argc, char **argv)
{
int i;
char *obser1 = "obser1";
char *obser2 = "obser2";
char *obser3 = "obser3";
char *obj1 = "obj1";
char *obj2 = "obj2";
char *obj3 = "obj3";
char *cdata1 = "client data1";
char *cdata2 = "client data2";
char *cdata3 = "client data3";
WMInitializeApplication("test", &argc, argv);
WMAddNotificationObserver(observer1, obser1, notificationA, obj1);
WMAddNotificationObserver(observer1, obser1, notificationA, obj2);
WMAddNotificationObserver(observer1, obser1, notificationA, obj3);
puts("post1");
WMPostNotificationName(notificationA, obj3, cdata1);
puts("post2");
WMPostNotificationName(notificationA, obj2, cdata2);
puts("post3");
WMPostNotificationName(notificationA, obj1, cdata3);
puts("REMOVE1");
WMRemoveNotificationObserverWithName(obser1, notificationA, obj2);
puts("REMOVE2");
WMRemoveNotificationObserverWithName(obser1, notificationA, obj2);
puts("post1");
WMPostNotificationName(notificationA, obj3, cdata1);
puts("post2");
WMPostNotificationName(notificationA, obj2, cdata2);
puts("post3");
WMPostNotificationName(notificationA, obj1, cdata3);
return 0;
}

View File

@@ -279,7 +279,7 @@ WMGetUDIntegerForKey(WMUserDefaults *database, char *defaultName)
int float
WMGetUDFloatForKey(WMUserDefaults *database, char *defaultName) WMGetUDFloatForKey(WMUserDefaults *database, char *defaultName)
{ {
proplist_t val; proplist_t val;
@@ -288,14 +288,10 @@ WMGetUDFloatForKey(WMUserDefaults *database, char *defaultName)
val = WMGetUDObjectForKey(database, defaultName); val = WMGetUDObjectForKey(database, defaultName);
if (!val) if (!val || !PLIsString(val))
return 0.0; return 0.0;
if (!PLIsString(val)) if (!(str = PLGetString(val)))
return 0.0;
str = PLGetString(val);
if (!str)
return 0.0; return 0.0;
if (sscanf(str, "%f", &value)!=1) if (sscanf(str, "%f", &value)!=1)

View File

@@ -3,6 +3,7 @@
#include "WINGsP.h" #include "WINGsP.h"
#include <math.h> /* for : double rint (double) */
char *WMBrowserDidScrollNotification = "WMBrowserDidScrollNotification"; char *WMBrowserDidScrollNotification = "WMBrowserDidScrollNotification";
@@ -58,9 +59,15 @@ typedef struct W_Browser {
#define DEFAULT_WIDTH 305 #define DEFAULT_WIDTH 305
#define DEFAULT_HEIGHT 200 #define DEFAULT_HEIGHT 200
#define DEFAULT_HAS_SCROLLER True #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 DEFAULT_SEPARATOR "/"
#define MIN_VISIBLE_COLUMNS 1
#define MAX_VISIBLE_COLUMNS 32
#define COLUMN_IS_VISIBLE(b, c) ((c) >= (b)->firstVisibleColumn \ #define COLUMN_IS_VISIBLE(b, c) ((c) >= (b)->firstVisibleColumn \
&& (c) < (b)->firstVisibleColumn + (b)->maxVisibleColumns) && (c) < (b)->firstVisibleColumn + (b)->maxVisibleColumns)
@@ -70,13 +77,17 @@ static void destroyBrowser(WMBrowser *bPtr);
static void setupScroller(WMBrowser *bPtr); static void setupScroller(WMBrowser *bPtr);
static void scrollToColumn(WMBrowser *bPtr, int column); static void scrollToColumn(WMBrowser *bPtr, int column, Bool updateScroller);
static void paintItem(WMList *lPtr, int index, Drawable d, char *text, static void paintItem(WMList *lPtr, int index, Drawable d, char *text,
int state, WMRect *rect); int state, WMRect *rect);
static void loadColumn(WMBrowser *bPtr, int column); static void loadColumn(WMBrowser *bPtr, int column);
static void removeColumn(WMBrowser *bPtr, int column);
static char*
createTruncatedString(WMFont *font, char *text, int *textLen, int width);
static void resizeBrowser(WMWidget*, unsigned int, unsigned int); static void resizeBrowser(WMWidget*, unsigned int, unsigned int);
@@ -94,6 +105,8 @@ WMCreateBrowser(WMWidget *parent)
WMBrowser *bPtr; WMBrowser *bPtr;
int i; int i;
wassertrv(parent, NULL);
bPtr = wmalloc(sizeof(WMBrowser)); bPtr = wmalloc(sizeof(WMBrowser));
memset(bPtr, 0, sizeof(WMBrowser)); memset(bPtr, 0, sizeof(WMBrowser));
@@ -112,9 +125,9 @@ WMCreateBrowser(WMWidget *parent)
/* default configuration */ /* default configuration */
bPtr->flags.hasScroller = DEFAULT_HAS_SCROLLER; bPtr->flags.hasScroller = DEFAULT_HAS_SCROLLER;
bPtr->titleHeight = 20; bPtr->titleHeight = DEFAULT_TITLE_HEIGHT;
bPtr->flags.isTitled = 1; bPtr->flags.isTitled = DEFAULT_IS_TITLED;
bPtr->maxVisibleColumns = 2; bPtr->maxVisibleColumns = DEFAULT_MAX_VISIBLE_COLUMNS;
resizeBrowser(bPtr, DEFAULT_WIDTH, DEFAULT_HEIGHT); resizeBrowser(bPtr, DEFAULT_WIDTH, DEFAULT_HEIGHT);
@@ -137,24 +150,58 @@ WMCreateBrowser(WMWidget *parent)
void void
WMSetBrowserMaxVisibleColumns(WMBrowser *bPtr, int columns) WMSetBrowserMaxVisibleColumns(WMBrowser *bPtr, int columns)
{ {
if (columns > bPtr->maxVisibleColumns) { int curMaxVisibleColumns;
int newFirstVisibleColumn = 0;
if (columns > bPtr->columnCount) { assert ((int) bPtr);
columns = (columns < MIN_VISIBLE_COLUMNS) ? MIN_VISIBLE_COLUMNS : columns;
columns = (columns > MAX_VISIBLE_COLUMNS) ? MAX_VISIBLE_COLUMNS : columns;
if (columns == bPtr->maxVisibleColumns) {
return;
}
curMaxVisibleColumns = bPtr->maxVisibleColumns;
bPtr->maxVisibleColumns = columns;
/* browser not loaded */
if (!bPtr->flags.loaded) {
if ((columns > curMaxVisibleColumns) && (columns > bPtr->columnCount)) {
int i = columns - bPtr->columnCount; int i = columns - bPtr->columnCount;
bPtr->usedColumnCount = bPtr->columnCount;
while (i--) { while (i--) {
WMAddBrowserColumn(bPtr); WMAddBrowserColumn(bPtr);
} }
bPtr->usedColumnCount = 0;
} }
/* browser loaded and columns > curMaxVisibleColumns */
resizeBrowser(bPtr, bPtr->view->size.width, bPtr->view->size.height); } else if (columns > curMaxVisibleColumns) {
if (bPtr->usedColumnCount > columns) {
} else if (columns < bPtr->maxVisibleColumns) { newFirstVisibleColumn = bPtr->usedColumnCount - columns;
}
resizeBrowser(bPtr, bPtr->view->size.width, bPtr->view->size.height); if (newFirstVisibleColumn > bPtr->firstVisibleColumn) {
newFirstVisibleColumn = bPtr->firstVisibleColumn;
}
if (columns > bPtr->columnCount) {
int i = columns - bPtr->columnCount;
int curUsedColumnCount = bPtr->usedColumnCount;
bPtr->usedColumnCount = bPtr->columnCount;
while (i--) {
WMAddBrowserColumn(bPtr);
}
bPtr->usedColumnCount = curUsedColumnCount;
}
/* browser loaded and columns < curMaxVisibleColumns */
} else {
newFirstVisibleColumn = bPtr->firstVisibleColumn;
if (newFirstVisibleColumn + columns >= bPtr->usedColumnCount) {
removeColumn(bPtr, newFirstVisibleColumn + columns);
}
}
resizeBrowser(bPtr, bPtr->view->size.width, bPtr->view->size.height);
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);
} }
bPtr->maxVisibleColumns = columns;
} }
@@ -187,11 +234,27 @@ drawTitleOfColumn(WMBrowser *bPtr, int column)
W_DrawRelief(scr, bPtr->view->window, x, 0, W_DrawRelief(scr, bPtr->view->window, x, 0,
bPtr->columnSize.width, bPtr->titleHeight, WRSunken); bPtr->columnSize.width, bPtr->titleHeight, WRSunken);
if (column < bPtr->usedColumnCount && bPtr->titles[column]) if (column < bPtr->usedColumnCount && bPtr->titles[column]) {
int titleLen = strlen(bPtr->titles[column]);
int widthC = bPtr->columnSize.width-8;
if (WMWidthOfString(scr->boldFont, bPtr->titles[column], titleLen)
> widthC) {
char *titleBuf = createTruncatedString(scr->boldFont,
bPtr->titles[column],
&titleLen, widthC);
W_PaintText(bPtr->view, bPtr->view->window, scr->boldFont, x, W_PaintText(bPtr->view, bPtr->view->window, scr->boldFont, x,
(bPtr->titleHeight-WMFontHeight(scr->boldFont))/2, (bPtr->titleHeight-WMFontHeight(scr->boldFont))/2,
bPtr->columnSize.width, WACenter, W_GC(scr->white), bPtr->columnSize.width, WACenter, W_GC(scr->white),
False, bPtr->titles[column], strlen(bPtr->titles[column])); False, titleBuf, titleLen);
free (titleBuf);
} else {
W_PaintText(bPtr->view, bPtr->view->window, scr->boldFont, x,
(bPtr->titleHeight-WMFontHeight(scr->boldFont))/2,
bPtr->columnSize.width, WACenter, W_GC(scr->white),
False, bPtr->titles[column], titleLen);
}
}
} }
@@ -239,70 +302,50 @@ WMGetBrowserFirstVisibleColumn(WMBrowser *bPtr)
static void static void
removeColumn(WMBrowser *bPtr, int column) removeColumn(WMBrowser *bPtr, int column)
{ {
int i; int i, clearEnd, destroyEnd;
WMList **clist; WMList **clist;
char **tlist; char **tlist;
if (column >= bPtr->usedColumnCount) assert ((int) bPtr);
column = (column < 0) ? 0 : column;
if (column >= bPtr->columnCount) {
return; return;
}
if (column < bPtr->maxVisibleColumns) { if (column < bPtr->maxVisibleColumns) {
int tmp; clearEnd = bPtr->maxVisibleColumns;
#if 0 destroyEnd = bPtr->columnCount;
/* this code causes bugs */ bPtr->columnCount = bPtr->maxVisibleColumns;
int limit;
if(bPtr->usedColumnCount < bPtr->maxVisibleColumns)
limit = bPtr->usedColumnCount;
else
limit = bPtr->maxVisibleColumns;
for (i=column; i < limit; i++) {
if (bPtr->titles[i])
free(bPtr->titles[i]);
bPtr->titles[i] = NULL;
WMClearList(bPtr->columns[i]);
bPtr->usedColumnCount--;
}
#else
for (i=column; i < bPtr->maxVisibleColumns; i++) {
if (bPtr->titles[i])
free(bPtr->titles[i]);
bPtr->titles[i] = NULL;
WMClearList(bPtr->columns[i]);
bPtr->usedColumnCount--;
}
tmp = bPtr->columnCount;
for (i=bPtr->maxVisibleColumns; i < tmp; i++) {
if (bPtr->titles[i])
free(bPtr->titles[i]);
bPtr->titles[i] = NULL;
WMDestroyWidget(bPtr->columns[i]);
bPtr->columns[i] = NULL;
bPtr->columnCount--;
bPtr->usedColumnCount--;
}
#endif
} else { } else {
int tmp = bPtr->columnCount; clearEnd = column;
for (i=column; i < tmp; i++) { destroyEnd = bPtr->columnCount;
if (bPtr->titles[i]) bPtr->columnCount = column;
}
if (column < bPtr->usedColumnCount) {
bPtr->usedColumnCount = column;
}
for (i=column; i < clearEnd; i++) {
if (bPtr->titles[i]) {
free(bPtr->titles[i]); free(bPtr->titles[i]);
bPtr->titles[i] = NULL; bPtr->titles[i] = NULL;
}
WMClearList(bPtr->columns[i]);
}
for (;i < destroyEnd; i++) {
if (bPtr->titles[i]) {
free(bPtr->titles[i]);
bPtr->titles[i] = NULL;
}
WMRemoveNotificationObserverWithName(bPtr,
WMListSelectionDidChangeNotification,
bPtr->columns[i]);
WMDestroyWidget(bPtr->columns[i]); WMDestroyWidget(bPtr->columns[i]);
bPtr->columns[i] = NULL; bPtr->columns[i] = NULL;
bPtr->columnCount--;
bPtr->usedColumnCount--;
} }
} clist = wmalloc(sizeof(WMList*) * (bPtr->columnCount));
clist = wmalloc(sizeof(WMList*)*bPtr->columnCount); tlist = wmalloc(sizeof(char*) * (bPtr->columnCount));
tlist = wmalloc(sizeof(char*)*bPtr->columnCount); memcpy(clist, bPtr->columns, sizeof(WMList*) * (bPtr->columnCount));
memcpy(clist, bPtr->columns, sizeof(WMList*)*bPtr->columnCount); memcpy(tlist, bPtr->titles, sizeof(char*) * (bPtr->columnCount));
memcpy(tlist, bPtr->titles, sizeof(char*)*bPtr->columnCount);
free(bPtr->titles); free(bPtr->titles);
free(bPtr->columns); free(bPtr->columns);
bPtr->titles = tlist; bPtr->titles = tlist;
@@ -310,11 +353,10 @@ removeColumn(WMBrowser *bPtr, int column)
} }
WMListItem* WMListItem*
WMGetBrowserSelectedItemInColumn(WMBrowser *bPtr, int column) WMGetBrowserSelectedItemInColumn(WMBrowser *bPtr, int column)
{ {
if ((column < 0) || (column > bPtr->columnCount)) if ((column < 0) || (column >= bPtr->usedColumnCount))
return NULL; return NULL;
return WMGetListSelectedItem(bPtr->columns[column]); return WMGetListSelectedItem(bPtr->columns[column]);
@@ -430,8 +472,8 @@ resizeBrowser(WMWidget *w, unsigned int width, unsigned int height)
bPtr->columnSize.height = height; bPtr->columnSize.height = height;
if (bPtr->flags.isTitled) { if (bPtr->flags.isTitled) {
bPtr->columnSize.height -= TITLE_SPACING + bPtr->titleHeight;
colY = TITLE_SPACING + bPtr->titleHeight; colY = TITLE_SPACING + bPtr->titleHeight;
bPtr->columnSize.height -= colY;
} else { } else {
colY = 0; colY = 0;
} }
@@ -481,8 +523,19 @@ paintItem(WMList *lPtr, int index, Drawable d, char *text, int state,
XClearArea(scr->display, d, x, y, width, height, False); XClearArea(scr->display, d, x, y, width, height, False);
if (text) { if (text) {
W_PaintText(view, d, scr->normalFont, x+4, y, width, /* Avoid overlaping... */
WALeft, W_GC(scr->black), False, text, strlen(text)); int textLen = strlen(text);
int widthC = (state & WLDSIsBranch) ? width-20 : width-8;
if (WMWidthOfString(scr->normalFont, text, textLen) > widthC) {
char *textBuf = createTruncatedString(scr->normalFont,
text, &textLen, widthC);
W_PaintText(view, d, scr->normalFont, x+4, y, widthC,
WALeft, W_GC(scr->black), False, textBuf, textLen);
free(textBuf);
} else {
W_PaintText(view, d, scr->normalFont, x+4, y, widthC,
WALeft, W_GC(scr->black), False, text, textLen);
}
} }
if (state & WLDSIsBranch) { if (state & WLDSIsBranch) {
@@ -511,7 +564,7 @@ scrollCallback(WMWidget *scroller, void *self)
switch (WMGetScrollerHitPart(sPtr)) { switch (WMGetScrollerHitPart(sPtr)) {
case WSDecrementLine: case WSDecrementLine:
if (bPtr->firstVisibleColumn > 0) { if (bPtr->firstVisibleColumn > 0) {
scrollToColumn(bPtr, bPtr->firstVisibleColumn-1); scrollToColumn(bPtr, bPtr->firstVisibleColumn-1, True);
} }
break; break;
@@ -519,44 +572,45 @@ scrollCallback(WMWidget *scroller, void *self)
if (bPtr->firstVisibleColumn > 0) { if (bPtr->firstVisibleColumn > 0) {
newFirst = bPtr->firstVisibleColumn - bPtr->maxVisibleColumns; newFirst = bPtr->firstVisibleColumn - bPtr->maxVisibleColumns;
scrollToColumn(bPtr, newFirst); scrollToColumn(bPtr, newFirst, True);
} }
break; break;
case WSIncrementLine: case WSIncrementLine:
if (LAST_VISIBLE_COLUMN < bPtr->columnCount) { if (LAST_VISIBLE_COLUMN < bPtr->usedColumnCount) {
scrollToColumn(bPtr, bPtr->firstVisibleColumn+1); scrollToColumn(bPtr, bPtr->firstVisibleColumn+1, True);
} }
break; break;
case WSIncrementPage: case WSIncrementPage:
if (LAST_VISIBLE_COLUMN < bPtr->columnCount) { if (LAST_VISIBLE_COLUMN < bPtr->usedColumnCount) {
newFirst = bPtr->firstVisibleColumn + bPtr->maxVisibleColumns; newFirst = bPtr->firstVisibleColumn + bPtr->maxVisibleColumns;
if (newFirst+bPtr->maxVisibleColumns >= bPtr->columnCount) if (newFirst+bPtr->maxVisibleColumns >= bPtr->columnCount)
newFirst = bPtr->columnCount - bPtr->maxVisibleColumns; newFirst = bPtr->columnCount - bPtr->maxVisibleColumns;
scrollToColumn(bPtr, newFirst); scrollToColumn(bPtr, newFirst, True);
} }
break; break;
case WSKnob: case WSKnob:
{ {
float floatValue; double floatValue;
float value = bPtr->columnCount - bPtr->maxVisibleColumns; double value = bPtr->columnCount - bPtr->maxVisibleColumns;
floatValue = WMGetScrollerValue(bPtr->scroller); floatValue = WMGetScrollerValue(bPtr->scroller);
floatValue = (floatValue*value)/value; floatValue = (floatValue*value)/value;
newFirst = floatValue*(float)(bPtr->columnCount - bPtr->maxVisibleColumns); newFirst = rint(floatValue*(float)(bPtr->columnCount - bPtr->maxVisibleColumns));
if (bPtr->firstVisibleColumn != newFirst) if (bPtr->firstVisibleColumn != newFirst)
scrollToColumn(bPtr, newFirst); scrollToColumn(bPtr, newFirst, False);
else /* else
WMSetScrollerParameters(bPtr->scroller, floatValue, WMSetScrollerParameters(bPtr->scroller, floatValue,
bPtr->maxVisibleColumns/(float)bPtr->columnCount); bPtr->maxVisibleColumns/(float)bPtr->columnCount);
*/
} }
break; break;
@@ -597,6 +651,14 @@ WMSetBrowserAction(WMBrowser *bPtr, WMAction *action, void *clientData)
} }
void
WMSetBrowserDoubleAction(WMBrowser *bPtr, WMAction *action, void *clientData)
{
bPtr->doubleAction = action;
bPtr->doubleClientData = clientData;
}
void void
WMSetBrowserHasScroller(WMBrowser *bPtr, int hasScroller) WMSetBrowserHasScroller(WMBrowser *bPtr, int hasScroller)
{ {
@@ -605,16 +667,20 @@ WMSetBrowserHasScroller(WMBrowser *bPtr, int hasScroller)
Bool char*
WMSetBrowserPath(WMBrowser *bPtr, char *path) WMSetBrowserPath(WMBrowser *bPtr, char *path)
{ {
int i; int i;
char *str = wstrdup(path); char *str = wstrdup(path);
char *tmp; char *tmp, *retPtr = NULL;
int item; int item;
Bool ok = True;
WMListItem *listItem; WMListItem *listItem;
/* WMLoadBrowserColumnZero must be call first */
if (!bPtr->flags.loaded) {
return False;
}
removeColumn(bPtr, 1); removeColumn(bPtr, 1);
i = 0; i = 0;
@@ -623,7 +689,7 @@ WMSetBrowserPath(WMBrowser *bPtr, char *path)
/* select it in the column */ /* select it in the column */
item = WMFindRowOfListItemWithTitle(bPtr->columns[i], tmp); item = WMFindRowOfListItemWithTitle(bPtr->columns[i], tmp);
if (item<0) { if (item<0) {
ok = False; retPtr = &path[(int)(tmp - str)];
break; break;
} }
WMSelectListItem(bPtr->columns[i], item); WMSelectListItem(bPtr->columns[i], item);
@@ -645,11 +711,25 @@ WMSetBrowserPath(WMBrowser *bPtr, char *path)
} }
free(str); free(str);
bPtr->selectedColumn = bPtr->usedColumnCount - 1; for (i = bPtr->usedColumnCount - 1;
(i > -1) && !WMGetListSelectedItem(bPtr->columns[i]);
i--);
scrollToColumn(bPtr, bPtr->columnCount-bPtr->maxVisibleColumns); bPtr->selectedColumn = i;
return ok; 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;
} }
@@ -670,6 +750,10 @@ WMGetBrowserPathToColumn(WMBrowser *bPtr, int column)
if (column >= bPtr->usedColumnCount) if (column >= bPtr->usedColumnCount)
column = bPtr->usedColumnCount-1; column = bPtr->usedColumnCount-1;
if (column < 0) {
return wstrdup(bPtr->pathSeparator);
}
/* calculate size of buffer */ /* calculate size of buffer */
size = 0; size = 0;
for (i = 0; i <= column; i++) { for (i = 0; i <= column; i++) {
@@ -749,7 +833,7 @@ handleEvents(XEvent *event, void *data)
static void static void
scrollToColumn(WMBrowser *bPtr, int column) scrollToColumn(WMBrowser *bPtr, int column, Bool updateScroller)
{ {
int i; int i;
int x; int x;
@@ -764,7 +848,7 @@ scrollToColumn(WMBrowser *bPtr, int column)
x = 0; x = 0;
bPtr->firstVisibleColumn = column; bPtr->firstVisibleColumn = column;
for (i = 0; i < bPtr->usedColumnCount; i++) { for (i = 0; i < bPtr->columnCount; i++) {
if (COLUMN_IS_VISIBLE(bPtr, i)) { if (COLUMN_IS_VISIBLE(bPtr, i)) {
WMMoveWidget(bPtr->columns[i], x, WMMoveWidget(bPtr->columns[i], x,
WMWidgetView(bPtr->columns[i])->pos.y); WMWidgetView(bPtr->columns[i])->pos.y);
@@ -778,6 +862,7 @@ scrollToColumn(WMBrowser *bPtr, int column)
} }
/* update the scroller */ /* update the scroller */
if (updateScroller) {
if (bPtr->columnCount > bPtr->maxVisibleColumns) { if (bPtr->columnCount > bPtr->maxVisibleColumns) {
float value, proportion; float value, proportion;
@@ -788,6 +873,7 @@ scrollToColumn(WMBrowser *bPtr, int column)
} else { } else {
WMSetScrollerParameters(bPtr->scroller, 0, 1); WMSetScrollerParameters(bPtr->scroller, 0, 1);
} }
}
if (bPtr->view->flags.mapped) if (bPtr->view->flags.mapped)
paintBrowser(bPtr); paintBrowser(bPtr);
@@ -803,10 +889,11 @@ listCallback(void *self, void *clientData)
WMBrowser *bPtr = (WMBrowser*)clientData; WMBrowser *bPtr = (WMBrowser*)clientData;
WMList *lPtr = (WMList*)self; WMList *lPtr = (WMList*)self;
WMListItem *item; WMListItem *item;
static WMListItem *oldItem = NULL;
int i; int i;
item = WMGetListSelectedItem(lPtr); item = WMGetListSelectedItem(lPtr);
if (!item) if (!item || oldItem == item)
return; return;
for (i=0; i<bPtr->columnCount; i++) { for (i=0; i<bPtr->columnCount; i++) {
@@ -815,8 +902,6 @@ listCallback(void *self, void *clientData)
} }
assert(i<bPtr->columnCount); assert(i<bPtr->columnCount);
bPtr->selectedColumn = i;
/* columns at right must be cleared */ /* columns at right must be cleared */
removeColumn(bPtr, i+1); removeColumn(bPtr, i+1);
/* open directory */ /* open directory */
@@ -828,11 +913,30 @@ listCallback(void *self, void *clientData)
i = 0; i = 0;
else else
i = bPtr->usedColumnCount-bPtr->maxVisibleColumns; i = bPtr->usedColumnCount-bPtr->maxVisibleColumns;
scrollToColumn(bPtr, i); scrollToColumn(bPtr, i, True);
/* call callback for click */ /* call callback for click */
if (bPtr->action) if (bPtr->action)
(*bPtr->action)(bPtr, bPtr->clientData); (*bPtr->action)(bPtr, bPtr->clientData);
oldItem = item;
}
static void
listDoubleCallback(void *self, void *clientData)
{
WMBrowser *bPtr = (WMBrowser*)clientData;
WMList *lPtr = (WMList*)self;
WMListItem *item;
item = WMGetListSelectedItem(lPtr);
if (!item)
return;
/* call callback for double click */
if (bPtr->doubleAction)
(*bPtr->doubleAction)(bPtr, bPtr->doubleClientData);
} }
@@ -846,7 +950,7 @@ WMLoadBrowserColumnZero(WMBrowser *bPtr)
loadColumn(bPtr, 0); loadColumn(bPtr, 0);
/* make column 0 visible */ /* make column 0 visible */
scrollToColumn(bPtr, 0); scrollToColumn(bPtr, 0, True);
bPtr->flags.loaded = 1; bPtr->flags.loaded = 1;
} }
@@ -868,14 +972,39 @@ WMRemoveBrowserItem(WMBrowser *bPtr, int column, int row)
removeColumn(bPtr, column+1); removeColumn(bPtr, column+1);
if (bPtr->usedColumnCount < bPtr->maxVisibleColumns) if (bPtr->usedColumnCount < bPtr->maxVisibleColumns)
scrollToColumn(bPtr, 0); scrollToColumn(bPtr, 0, True);
else else
scrollToColumn(bPtr, bPtr->usedColumnCount-bPtr->maxVisibleColumns); scrollToColumn(bPtr, bPtr->usedColumnCount-bPtr->maxVisibleColumns,
True);
WMRemoveListItem(list, row); WMRemoveListItem(list, row);
} }
static void
listSelectionObserver(void *observerData, WMNotification *notification)
{
WMBrowser *bPtr = (WMBrowser*)observerData;
int column, item = (int)WMGetNotificationClientData(notification);
WMList *lPtr = (WMList*)WMGetNotificationObject(notification);
for (column=0; 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 (item < 0)
column--;
bPtr->selectedColumn = column;
}
int int
WMAddBrowserColumn(WMBrowser *bPtr) WMAddBrowserColumn(WMBrowser *bPtr)
{ {
@@ -915,7 +1044,11 @@ WMAddBrowserColumn(WMBrowser *bPtr)
list = WMCreateList(bPtr); list = WMCreateList(bPtr);
WMSetListAction(list, listCallback, bPtr); WMSetListAction(list, listCallback, bPtr);
WMSetListDoubleAction(list, listDoubleCallback, bPtr);
WMSetListUserDrawProc(list, paintItem); WMSetListUserDrawProc(list, paintItem);
WMAddNotificationObserver(listSelectionObserver, bPtr,
WMListSelectionDidChangeNotification, list);
bPtr->columns[index] = list; bPtr->columns[index] = list;
WMResizeWidget(list, bPtr->columnSize.width, bPtr->columnSize.height); WMResizeWidget(list, bPtr->columnSize.width, bPtr->columnSize.height);
@@ -951,7 +1084,37 @@ destroyBrowser(WMBrowser *bPtr)
free(bPtr->pathSeparator); free(bPtr->pathSeparator);
WMRemoveNotificationObserver(bPtr);
free(bPtr); free(bPtr);
} }
static char*
createTruncatedString(WMFont *font, char *text, int *textLen, int width)
{
int dLen = WMWidthOfString(font, ".", 1);
char *textBuf = (char*)wmalloc((*textLen)+4);
if (width >= 3*dLen) {
int dddLen = 3*dLen;
int tmpTextLen = *textLen;
strcpy(textBuf, text);
while (tmpTextLen
&& (WMWidthOfString(font, textBuf, tmpTextLen)+dddLen > width))
tmpTextLen--;
strcpy(textBuf+tmpTextLen, "...");
*textLen = tmpTextLen+3;
} else if (width >= 2*dLen) {
strcpy(textBuf, "..");
*textLen = 2;
} else if (width >= dLen) {
strcpy(textBuf, ".");
*textLen = 1;
} else {
*textBuf = '\0';
*textLen = 0;
}
return textBuf;
}

File diff suppressed because it is too large Load Diff

View File

@@ -328,8 +328,10 @@ checkIdleHandlers()
{ {
IdleHandler *handler, *tmp; IdleHandler *handler, *tmp;
if (!idleHandler) if (!idleHandler) {
W_FlushIdleNotificationQueue();
return; return;
}
handler = idleHandler; handler = idleHandler;
@@ -344,6 +346,7 @@ checkIdleHandlers()
handler = tmp; handler = tmp;
} }
W_FlushIdleNotificationQueue();
} }
@@ -363,6 +366,8 @@ checkTimerHandlers()
(*handler->callback)(handler->clientData); (*handler->callback)(handler->clientData);
free(handler); free(handler);
} }
W_FlushASAPNotificationQueue();
} }
@@ -798,6 +803,8 @@ W_WaitForEvent(Display *dpy, unsigned long xeventmask)
retval = fds[0].revents & (POLLIN|POLLRDNORM|POLLRDBAND|POLLPRI); retval = fds[0].revents & (POLLIN|POLLRDNORM|POLLRDBAND|POLLPRI);
free(fds); free(fds);
W_FlushASAPNotificationQueue();
return retval; return retval;
#else /* not HAVE_POLL */ #else /* not HAVE_POLL */
#ifdef HAVE_SELECT #ifdef HAVE_SELECT
@@ -883,6 +890,8 @@ W_WaitForEvent(Display *dpy, unsigned long xeventmask)
} }
} }
W_FlushASAPNotificationQueue();
return FD_ISSET(ConnectionNumber(dpy), &rset); return FD_ISSET(ConnectionNumber(dpy), &rset);
#else /* not HAVE_SELECT, not HAVE_POLL */ #else /* not HAVE_SELECT, not HAVE_POLL */
Neither select nor poll. You lose. Neither select nor poll. You lose.
@@ -890,6 +899,7 @@ Neither select nor poll. You lose.
#endif /* HAVE_POLL */ #endif /* HAVE_POLL */
} }
void void
WMNextEvent(Display *dpy, XEvent *event) WMNextEvent(Display *dpy, XEvent *event)
{ {

View File

@@ -1,7 +1,4 @@
#include "WINGsP.h" #include "WINGsP.h"
#include <sys/types.h> #include <sys/types.h>
@@ -47,15 +44,24 @@ typedef struct W_FilePanel {
unsigned int showAllFiles:1; unsigned int showAllFiles:1;
unsigned int canFreeFileTypes:1; unsigned int canFreeFileTypes:1;
unsigned int fileMustExist:1; unsigned int fileMustExist:1;
unsigned int panelType:1;
/**/
unsigned int ignoreTextChangeNotification:1;
} flags; } flags;
} W_FilePanel; } W_FilePanel;
/* Type of panel */
#define WP_OPEN 0
#define WP_SAVE 1
#define PWIDTH 320 #define PWIDTH 320
#define PHEIGHT 360 #define PHEIGHT 360
static void listDirectoryOnColumn(WMFilePanel *panel, int column, char *path); static void listDirectoryOnColumn(WMFilePanel *panel, int column, char *path);
static void browserClick(); static void browserClick();
static void browserDClick();
static void fillColumn(WMBrowser *bPtr, int column); static void fillColumn(WMBrowser *bPtr, int column);
@@ -65,6 +71,7 @@ static void buttonClick();
static char *getCurrentFileName(WMFilePanel *panel); static char *getCurrentFileName(WMFilePanel *panel);
static void handleEvents(XEvent *event, void *data);
static int static int
@@ -94,14 +101,24 @@ static void
textChangedObserver(void *observerData, WMNotification *notification) textChangedObserver(void *observerData, WMNotification *notification)
{ {
W_FilePanel *panel = (W_FilePanel*)observerData; W_FilePanel *panel = (W_FilePanel*)observerData;
char *text, *text1; char *text;
WMList *list; WMList *list;
int col = WMGetBrowserNumberOfColumns(panel->browser) - 1; int col = WMGetBrowserNumberOfColumns(panel->browser) - 1;
int i, j, textEvent = (int)WMGetNotificationClientData(notification); int i, j, textEvent = (int)WMGetNotificationClientData(notification);
static int running = 0;
if (running)
return;
running = 1;
if (panel->flags.ignoreTextChangeNotification)
return;
list = WMGetBrowserListInColumn(panel->browser, col); list = WMGetBrowserListInColumn(panel->browser, col);
if (!list) if (!list)
return; return;
text = WMGetTextFieldText(panel->fileField); text = WMGetTextFieldText(panel->fileField);
if (panel->flags.autoCompletion && textEvent!=WMDeleteTextEvent) if (panel->flags.autoCompletion && textEvent!=WMDeleteTextEvent)
@@ -110,22 +127,15 @@ textChangedObserver(void *observerData, WMNotification *notification)
i = closestListItem(list, text, True); i = closestListItem(list, text, True);
WMSelectListItem(list, i); WMSelectListItem(list, i);
if (i>=0) { if (i>=0 && panel->flags.autoCompletion) {
WMListItem *item = WMGetListItem(list, i); WMListItem *item = WMGetListItem(list, i);
int textLen = strlen(text), itemTextLen = strlen(item->text); int textLen = strlen(text), itemTextLen = strlen(item->text);
int visibleItems = WMWidgetHeight(list)/WMGetListItemHeight(list);
WMSetListPosition(list, i); if (textEvent!=WMSetTextEvent || textLen<itemTextLen)
WMSetListPosition(list, i - visibleItems/2);
if (panel->flags.autoCompletion) { if (textEvent!=WMDeleteTextEvent && textLen<itemTextLen) {
/* Be careful with the '<' condition below. Changing it can drop
* you into an endless loop. We call here, inside a function
* called from a notification observer, to a function that
* generates notification events. So make sure we do not call it
* recursively for ever.
* '<' means we only update text field if it is really not yet
* complete. -Dan
*/
if (textLen < itemTextLen && textEvent!=WMDeleteTextEvent) {
WMRange range; WMRange range;
WMInsertTextFieldText(panel->fileField, &item->text[textLen], WMInsertTextFieldText(panel->fileField, &item->text[textLen],
@@ -135,20 +145,10 @@ textChangedObserver(void *observerData, WMNotification *notification)
range.count = itemTextLen - textLen; range.count = itemTextLen - textLen;
WMSelectTextFieldRange(panel->fileField, range); WMSelectTextFieldRange(panel->fileField, range);
} }
text1 = WMGetTextFieldText(panel->fileField);
j = closestListItem(list, text1, True);
if (i != j) {
WMSelectListItem(list, j);
if (j>=0) {
WMSetListPosition(list, j);
}
}
free(text1);
}
} }
free(text); free(text);
running = 0;
} }
@@ -178,6 +178,11 @@ makeFilePanel(WMScreen *scrPtr, char *name, char *title)
WMResizeWidget(fPtr->win, PWIDTH, PHEIGHT); WMResizeWidget(fPtr->win, PWIDTH, PHEIGHT);
WMSetWindowTitle(fPtr->win, ""); WMSetWindowTitle(fPtr->win, "");
WMCreateEventHandler(WMWidgetView(fPtr->win), StructureNotifyMask,
handleEvents, fPtr);
WMSetWindowMinSize(fPtr->win, PWIDTH, PHEIGHT);
fPtr->iconLabel = WMCreateLabel(fPtr->win); fPtr->iconLabel = WMCreateLabel(fPtr->win);
WMResizeWidget(fPtr->iconLabel, 64, 64); WMResizeWidget(fPtr->iconLabel, 64, 64);
WMMoveWidget(fPtr->iconLabel, 0, 0); WMMoveWidget(fPtr->iconLabel, 0, 0);
@@ -200,6 +205,7 @@ makeFilePanel(WMScreen *scrPtr, char *name, char *title)
fPtr->browser = WMCreateBrowser(fPtr->win); fPtr->browser = WMCreateBrowser(fPtr->win);
WMSetBrowserFillColumnProc(fPtr->browser, fillColumn); WMSetBrowserFillColumnProc(fPtr->browser, fillColumn);
WMSetBrowserAction(fPtr->browser, browserClick, fPtr); WMSetBrowserAction(fPtr->browser, browserClick, fPtr);
WMSetBrowserDoubleAction(fPtr->browser, browserDClick, fPtr);
WMMoveWidget(fPtr->browser, 7, 72); WMMoveWidget(fPtr->browser, 7, 72);
WMHangData(fPtr->browser, fPtr); WMHangData(fPtr->browser, fPtr);
@@ -238,12 +244,15 @@ makeFilePanel(WMScreen *scrPtr, char *name, char *title)
WMResizeWidget(fPtr->homeButton, 28, 28); WMResizeWidget(fPtr->homeButton, 28, 28);
WMSetButtonImagePosition(fPtr->homeButton, WIPImageOnly); WMSetButtonImagePosition(fPtr->homeButton, WIPImageOnly);
WMSetButtonImage(fPtr->homeButton, scrPtr->homeIcon); WMSetButtonImage(fPtr->homeButton, scrPtr->homeIcon);
WMSetButtonAltImage(fPtr->homeButton, scrPtr->homeAltIcon); WMSetButtonAltImage(fPtr->homeButton, scrPtr->altHomeIcon);
WMSetButtonAction(fPtr->homeButton, goHome, fPtr); WMSetButtonAction(fPtr->homeButton, goHome, fPtr);
WMRealizeWidget(fPtr->win); WMRealizeWidget(fPtr->win);
WMMapSubwidgets(fPtr->win); WMMapSubwidgets(fPtr->win);
WMSetFocusToWidget(fPtr->fileField);
WMSetTextFieldCursorPosition(fPtr->fileField, 0);
WMLoadBrowserColumnZero(fPtr->browser); WMLoadBrowserColumnZero(fPtr->browser);
fPtr->flags.canChooseFiles = 1; fPtr->flags.canChooseFiles = 1;
@@ -264,6 +273,7 @@ WMGetOpenPanel(WMScreen *scrPtr)
panel = makeFilePanel(scrPtr, "openFilePanel", "Open"); panel = makeFilePanel(scrPtr, "openFilePanel", "Open");
panel->flags.fileMustExist = 1; panel->flags.fileMustExist = 1;
panel->flags.panelType = WP_OPEN;
scrPtr->sharedOpenPanel = panel; scrPtr->sharedOpenPanel = panel;
@@ -281,6 +291,7 @@ WMGetSavePanel(WMScreen *scrPtr)
panel = makeFilePanel(scrPtr, "saveFilePanel", "Save"); panel = makeFilePanel(scrPtr, "saveFilePanel", "Save");
panel->flags.fileMustExist = 0; panel->flags.fileMustExist = 0;
panel->flags.panelType = WP_SAVE;
scrPtr->sharedSavePanel = panel; scrPtr->sharedSavePanel = panel;
@@ -305,20 +316,40 @@ WMFreeFilePanel(WMFilePanel *panel)
int int
WMRunModalSavePanelForDirectory(WMFilePanel *panel, WMWindow *owner, WMRunModalFilePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
char *path, char *name) char *path, char *name, char **fileTypes)
{ {
WMScreen *scr = WMWidgetScreen(panel->win); WMScreen *scr = WMWidgetScreen(panel->win);
XEvent event; XEvent event;
WMChangePanelOwner(panel->win, owner); WMChangePanelOwner(panel->win, owner);
if (name && !owner) {
WMSetWindowTitle(panel->win, name);
}
WMSetFilePanelDirectory(panel, path); WMSetFilePanelDirectory(panel, path);
panel->flags.done = 0; panel->flags.done = 0;
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->fileTypes = NULL;
panel->flags.filtered = 0; panel->flags.filtered = 0;
if (name == NULL)
name = "Save";
break;
default:
break;
}
WMSetLabelText(panel->titleLabel, name);
WMMapWidget(panel->win); WMMapWidget(panel->win);
@@ -337,35 +368,6 @@ WMRunModalSavePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
int
WMRunModalOpenPanelForDirectory(WMFilePanel *panel, WMWindow *owner,
char *path, char *name, char **fileTypes)
{
WMScreen *scr = WMWidgetScreen(panel->win);
XEvent event;
WMChangePanelOwner(panel->win, owner);
WMSetFilePanelDirectory(panel, path);
panel->flags.done = 0;
if (fileTypes)
panel->flags.filtered = 1;
panel->fileTypes = fileTypes;
WMMapWidget(panel->win);
while (!panel->flags.done) {
WMNextEvent(scr->display, &event);
WMHandleEvent(&event);
}
WMCloseWindow(panel->win);
return (panel->flags.canceled ? False : True);
}
void void
WMSetFilePanelDirectory(WMFilePanel *panel, char *path) WMSetFilePanelDirectory(WMFilePanel *panel, char *path)
@@ -373,18 +375,22 @@ WMSetFilePanelDirectory(WMFilePanel *panel, char *path)
WMList *list; WMList *list;
WMListItem *item; WMListItem *item;
int col; int col;
char *rest;
WMSetBrowserPath(panel->browser, path); rest = WMSetBrowserPath(panel->browser, path);
col = WMGetBrowserNumberOfColumns(panel->browser) - 1; if (strcmp(path, "/")==0)
rest = NULL;
col = WMGetBrowserSelectedColumn(panel->browser);
list = WMGetBrowserListInColumn(panel->browser, col); list = WMGetBrowserListInColumn(panel->browser, col);
if (list && (item = WMGetListSelectedItem(list))) { if (list && (item = WMGetListSelectedItem(list))) {
if (item->isBranch) { if (item->isBranch) {
WMSetTextFieldText(panel->fileField, NULL); WMSetTextFieldText(panel->fileField, rest);
} else { } else {
WMSetTextFieldText(panel->fileField, item->text); WMSetTextFieldText(panel->fileField, item->text);
} }
} else { } else {
WMSetTextFieldText(panel->fileField, path); WMSetTextFieldText(panel->fileField, rest);
} }
} }
@@ -425,7 +431,7 @@ WMSetFilePanelAccessoryView(WMFilePanel *panel, WMView *view)
v = WMWidgetView(panel->win); v = WMWidgetView(panel->win);
W_ReparentView(view, v); W_ReparentView(view, v, 0, 0);
W_MoveView(view, (v->size.width - v->size.width)/2, 300); W_MoveView(view, (v->size.width - v->size.width)/2, 300);
} }
@@ -541,6 +547,11 @@ fillColumn(WMBrowser *bPtr, int column)
} }
static void
browserDClick(WMBrowser *bPtr, WMFilePanel *panel)
{
WMPerformButtonClick(panel->okButton);
}
static void static void
browserClick(WMBrowser *bPtr, WMFilePanel *panel) browserClick(WMBrowser *bPtr, WMFilePanel *panel)
@@ -548,11 +559,15 @@ browserClick(WMBrowser *bPtr, WMFilePanel *panel)
int col = WMGetBrowserSelectedColumn(bPtr); int col = WMGetBrowserSelectedColumn(bPtr);
WMListItem *item = WMGetBrowserSelectedItemInColumn(bPtr, col); WMListItem *item = WMGetBrowserSelectedItemInColumn(bPtr, col);
panel->flags.ignoreTextChangeNotification = 1;
if (!item || item->isBranch) if (!item || item->isBranch)
WMSetTextFieldText(panel->fileField, NULL); WMSetTextFieldText(panel->fileField, NULL);
else { else {
WMSetTextFieldText(panel->fileField, item->text); WMSetTextFieldText(panel->fileField, item->text);
} }
panel->flags.ignoreTextChangeNotification = 0;
} }
@@ -570,6 +585,39 @@ goHome(WMButton *bPtr, WMFilePanel *panel)
} }
static void
handleEvents(XEvent *event, void *data)
{
W_FilePanel *pPtr = (W_FilePanel*)data;
W_View *view = WMWidgetView(pPtr->win);
if (event->type == ConfigureNotify) {
if (event->xconfigure.width != view->size.width
|| event->xconfigure.height != view->size.height) {
unsigned int newWidth = event->xconfigure.width;
unsigned int newHeight = event->xconfigure.height;
int newColumnCount;
W_ResizeView(view, newWidth, newHeight);
WMResizeWidget(pPtr->line, newWidth, 2);
WMResizeWidget(pPtr->browser, newWidth-14,
newHeight-(PHEIGHT-200));
WMResizeWidget(pPtr->fileField, newWidth-60-10, 24);
WMMoveWidget(pPtr->nameLabel, 7, newHeight-(PHEIGHT-282));
WMMoveWidget(pPtr->fileField, 60, newHeight-(PHEIGHT-278));
WMMoveWidget(pPtr->okButton, newWidth-(PWIDTH-230),
newHeight-(PHEIGHT-325));
WMMoveWidget(pPtr->cancelButton, newWidth-(PWIDTH-140),
newHeight-(PHEIGHT-325));
WMMoveWidget(pPtr->homeButton, 55, newHeight-(PHEIGHT-325));
newColumnCount = (newWidth - 14) / 140;
WMSetBrowserMaxVisibleColumns(pPtr->browser, newColumnCount);
}
}
}
static char* static char*
getCurrentFileName(WMFilePanel *panel) getCurrentFileName(WMFilePanel *panel)
{ {
@@ -604,35 +652,44 @@ static Bool
validOpenFile(WMFilePanel *panel) validOpenFile(WMFilePanel *panel)
{ {
WMListItem *item; WMListItem *item;
int col; int col, haveFile = 0;
char *file = WMGetTextFieldText(panel->fileField);
/*col = WMGetBrowserSelectedColumn(panel->browser);*/ if (file[0] != '\0')
col = WMGetBrowserNumberOfColumns(panel->browser) - 1; haveFile = 1;
free(file);
col = WMGetBrowserSelectedColumn(panel->browser);
item = WMGetBrowserSelectedItemInColumn(panel->browser, col); item = WMGetBrowserSelectedItemInColumn(panel->browser, col);
if (item) { if (item) {
if (item->isBranch && !panel->flags.canChooseDirectories) if (item->isBranch && !panel->flags.canChooseDirectories && !haveFile)
return False; return False;
else if (!item->isBranch && !panel->flags.canChooseFiles) else if (!item->isBranch && !panel->flags.canChooseFiles)
return False; return False;
else else
return True; return True;
} } else {
if (!panel->flags.canChooseDirectories) /* we compute for / here */
if (!panel->flags.canChooseDirectories && !haveFile)
return False; return False;
else else
return True; return True;
} }
return True;
}
static void static void
buttonClick(WMButton *bPtr, WMFilePanel *panel) buttonClick(WMButton *bPtr, WMFilePanel *panel)
{ {
WMRange range;
if (bPtr == panel->okButton) { if (bPtr == panel->okButton) {
if (panel->flags.fileMustExist) {
char *file;
if (!validOpenFile(panel)) if (!validOpenFile(panel))
return; return;
if (panel->flags.fileMustExist) {
char *file;
file = getCurrentFileName(panel); file = getCurrentFileName(panel);
if (access(file, F_OK)!=0) { if (access(file, F_OK)!=0) {
@@ -648,6 +705,8 @@ buttonClick(WMButton *bPtr, WMFilePanel *panel)
} else } else
panel->flags.canceled = 1; panel->flags.canceled = 1;
range.count = range.position = 0;
WMSelectTextFieldRange(panel->fileField, range);
panel->flags.done = 1; panel->flags.done = 1;
} }

View File

@@ -140,6 +140,9 @@ WMSystemFontOfSize(WMScreen *scrPtr, int size)
if (!font) { if (!font) {
wwarning("could not load font set %s. Trying fixed.", fontSpec); wwarning("could not load font set %s. Trying fixed.", fontSpec);
font = WMCreateFont(scrPtr, "fixed"); font = WMCreateFont(scrPtr, "fixed");
if (!font) {
font = WMCreateFont(scrPtr, "-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*");
}
if (!font) { if (!font) {
wwarning("could not load fixed font!"); wwarning("could not load fixed font!");
free(fontSpec); free(fontSpec);
@@ -165,6 +168,9 @@ WMBoldSystemFontOfSize(WMScreen *scrPtr, int size)
if (!font) { if (!font) {
wwarning("could not load font set %s. Trying fixed.", fontSpec); wwarning("could not load font set %s. Trying fixed.", fontSpec);
font = WMCreateFont(scrPtr, "fixed"); font = WMCreateFont(scrPtr, "fixed");
if (!font) {
font = WMCreateFont(scrPtr, "-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*");
}
if (!font) { if (!font) {
wwarning("could not load fixed font!"); wwarning("could not load fixed font!");
free(fontSpec); free(fontSpec);

View File

@@ -421,196 +421,96 @@ makePixmap(W_Screen *sPtr, char **data, int width, int height, int masked)
sPtr->depth); sPtr->depth);
} }
#ifdef USE_TIFF
#define WINGS_IMAGES_FILE RESOURCE_PATH"/Images.tiff" #define T_WINGS_IMAGES_FILE RESOURCE_PATH"/Images.tiff"
#define DEFAULT_OBJECT_ICON_FILE RESOURCE_PATH"/defaultIcon.tiff" #define T_DEFAULT_OBJECT_ICON_FILE RESOURCE_PATH"/defaultIcon.tiff"
#else
#define WINGS_IMAGES_FILE RESOURCE_PATH"/Images.xpm" #define X_WINGS_IMAGES_FILE RESOURCE_PATH"/Images.xpm"
#define DEFAULT_OBJECT_ICON_FILE RESOURCE_PATH"/defaultIcon.xpm" #define X_DEFAULT_OBJECT_ICON_FILE RESOURCE_PATH"/defaultIcon.xpm"
#endif
static Bool static Bool
loadPixmaps(WMScreen *scr) loadPixmaps(WMScreen *scr)
{ {
RImage *image, *tmp; RImage *image, *tmp;
Pixmap pixmap;
RColor gray; RColor gray;
RColor white;
image = RLoadImage(scr->rcontext, WINGS_IMAGES_FILE, 0);
if (!image) {
wwarning("WINGs: could not load widget images file: %s",
RMessageForError(RErrorCode));
return False;
}
/* make it have a gray background */
gray.red = 0xae; gray.red = 0xae;
gray.green = 0xaa; gray.green = 0xaa;
gray.blue = 0xae; gray.blue = 0xae;
RCombineImageWithColor(image, &gray);
tmp = RGetSubImage(image, 0, 0, 24, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
scr->homeIcon = NULL;
} else {
scr->homeIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 24, 24,
scr->depth);
}
RDestroyImage(tmp);
/* Magnifying Glass Icon for ColorPanel */
tmp = RGetSubImage(image, 24, 0, 40, 32);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
scr->magnifyIcon = NULL;
} else {
scr->magnifyIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 32, scr->depth);
}
RDestroyImage(tmp);
/* ColorWheel Icon for ColorPanel */
tmp = RGetSubImage(image, 0, 25, 24, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
scr->wheelIcon = NULL;
} else {
scr->wheelIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 24, 24, scr->depth);
}
RDestroyImage(tmp);
/* GrayScale Icon for ColorPanel */
tmp = RGetSubImage(image, 65, 0, 40, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
scr->grayIcon = NULL;
} else {
scr->grayIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
}
RDestroyImage(tmp);
/* RGB Icon for ColorPanel */
tmp = RGetSubImage(image, 25, 33, 40, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
scr->rgbIcon = NULL;
} else {
scr->rgbIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
}
RDestroyImage(tmp);
/* CMYK Icon for ColorPanel */
tmp = RGetSubImage(image, 65, 25, 40, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
scr->cmykIcon = NULL;
} else {
scr->cmykIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
}
RDestroyImage(tmp);
/* HSB Icon for ColorPanel */
tmp = RGetSubImage(image, 0, 57, 40, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
scr->hsbIcon = NULL;
} else {
scr->hsbIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
}
RDestroyImage(tmp);
/* CustomColorPalette Icon for ColorPanel */
tmp = RGetSubImage(image, 81, 57, 40, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
scr->customPaletteIcon = NULL;
} else {
scr->customPaletteIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
}
RDestroyImage(tmp);
/* ColorList Icon for ColorPanel */
tmp = RGetSubImage(image, 41, 57, 40, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
scr->colorListIcon = NULL;
} else {
scr->colorListIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
}
RDestroyImage(tmp);
RDestroyImage(image); white.red = 0xff;
white.green = 0xff;
white.blue = 0xff;
image = RLoadImage(scr->rcontext, WINGS_IMAGES_FILE, 0); image = RLoadImage(scr->rcontext, T_WINGS_IMAGES_FILE, 0);
if (!image)
image = RLoadImage(scr->rcontext, X_WINGS_IMAGES_FILE, 0);
if (!image) { if (!image) {
wwarning("WINGs: could not load widget images file: %s", wwarning("WINGs: could not load widget images file: %s",
RMessageForError(RErrorCode)); RMessageForError(RErrorCode));
return False; return False;
} }
/* make it have a white background */ /* home icon */
gray.red = 0xff; /* make it have a gray background */
gray.green = 0xff;
gray.blue = 0xff;
RCombineImageWithColor(image, &gray);
tmp = RGetSubImage(image, 0, 0, 24, 24); tmp = RGetSubImage(image, 0, 0, 24, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { RCombineImageWithColor(tmp, &gray);
scr->homeAltIcon = NULL; scr->homeIcon = WMCreatePixmapFromRImage(scr, tmp, 128);
} else {
scr->homeAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 24, 24,
scr->depth);
}
RDestroyImage(tmp); RDestroyImage(tmp);
/* make it have a white background */
tmp = RGetSubImage(image, 0, 0, 24, 24);
RCombineImageWithColor(tmp, &white);
scr->altHomeIcon = WMCreatePixmapFromRImage(scr, tmp, 128);
RDestroyImage(tmp);
/* Magnifying Glass Icon for ColorPanel */ /* Magnifying Glass Icon for ColorPanel */
tmp = RGetSubImage(image, 25, 0, 40, 32); tmp = RGetSubImage(image, 24, 0, 40, 32);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { RCombineImageWithColor(tmp, &gray);
scr->magnifyAltIcon = NULL; scr->magnifyIcon = WMCreatePixmapFromRImage(scr, tmp, 128);
} else { RDestroyImage(tmp);
scr->magnifyAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 32, scr->depth); tmp = RGetSubImage(image, 24, 0, 40, 32);
} RCombineImageWithColor(tmp, &white);
scr->altMagnifyIcon = WMCreatePixmapFromRImage(scr, tmp, 128);
RDestroyImage(tmp); RDestroyImage(tmp);
/* ColorWheel Icon for ColorPanel */ /* ColorWheel Icon for ColorPanel */
tmp = RGetSubImage(image, 0, 25, 24, 24); tmp = RGetSubImage(image, 0, 25, 24, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { scr->wheelIcon = WMCreatePixmapFromRImage(scr, tmp, 128);
scr->wheelAltIcon = NULL;
} else {
scr->wheelAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 24, 24, scr->depth);
}
RDestroyImage(tmp); RDestroyImage(tmp);
/* GrayScale Icon for ColorPanel */ /* GrayScale Icon for ColorPanel */
tmp = RGetSubImage(image, 65, 0, 40, 24); tmp = RGetSubImage(image, 65, 0, 40, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { scr->grayIcon = WMCreatePixmapFromRImage(scr, tmp, 128);
scr->grayAltIcon = NULL;
} else {
scr->grayAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
}
RDestroyImage(tmp); RDestroyImage(tmp);
/* RGB Icon for ColorPanel */ /* RGB Icon for ColorPanel */
tmp = RGetSubImage(image, 25, 33, 40, 24); tmp = RGetSubImage(image, 25, 33, 40, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { scr->rgbIcon = WMCreatePixmapFromRImage(scr, tmp, 128);
scr->rgbAltIcon = NULL;
} else {
scr->rgbAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
}
RDestroyImage(tmp); RDestroyImage(tmp);
/* CMYK Icon for ColorPanel */ /* CMYK Icon for ColorPanel */
tmp = RGetSubImage(image, 65, 25, 40, 24); tmp = RGetSubImage(image, 65, 25, 40, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { scr->cmykIcon = WMCreatePixmapFromRImage(scr, tmp, 128);
scr->cmykAltIcon = NULL;
} else {
scr->cmykAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
}
RDestroyImage(tmp); RDestroyImage(tmp);
/* HSB Icon for ColorPanel */ /* HSB Icon for ColorPanel */
tmp = RGetSubImage(image, 0, 57, 40, 24); tmp = RGetSubImage(image, 0, 57, 40, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { scr->hsbIcon = WMCreatePixmapFromRImage(scr, tmp, 128);
scr->hsbAltIcon = NULL;
} else {
scr->hsbAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
}
RDestroyImage(tmp); RDestroyImage(tmp);
/* CustomColorPalette Icon for ColorPanel */ /* CustomColorPalette Icon for ColorPanel */
tmp = RGetSubImage(image, 81, 57, 40, 24); tmp = RGetSubImage(image, 81, 57, 40, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { scr->customPaletteIcon = WMCreatePixmapFromRImage(scr, tmp, 128);
scr->customPaletteAltIcon = NULL;
} else {
scr->customPaletteAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
}
RDestroyImage(tmp); RDestroyImage(tmp);
/* ColorList Icon for ColorPanel */ /* ColorList Icon for ColorPanel */
tmp = RGetSubImage(image, 41, 57, 40, 24); tmp = RGetSubImage(image, 41, 57, 40, 24);
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) { scr->colorListIcon = WMCreatePixmapFromRImage(scr, tmp, 128);
scr->colorListAltIcon = NULL;
} else {
scr->colorListAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
}
RDestroyImage(tmp); RDestroyImage(tmp);
RDestroyImage(image); RDestroyImage(image);
#if 0 #if 0
scr->defaultObjectIcon = scr->defaultObjectIcon =
WMCreatePixmapFromFile(scr, DEFAULT_OBJECT_ICON_FILE); WMCreatePixmapFromFile(scr, T_DEFAULT_OBJECT_ICON_FILE);
if (!scr->defaultObjectIcon) {
scr->defaultObjectIcon =
WMCreatePixmapFromFile(scr, X_DEFAULT_OBJECT_ICON_FILE);
}
if (!scr->defaultObjectIcon) { if (!scr->defaultObjectIcon) {
wwarning("WINGs: could not load default icon file"); wwarning("WINGs: could not load default icon file");
return False; return False;

View File

@@ -5,7 +5,7 @@
#include "WINGsP.h" #include "WINGsP.h"
char *WMListDidScrollNotification = "WMListDidScrollNotification"; char *WMListDidScrollNotification = "WMListDidScrollNotification";
char *WMListSelectionDidChangeNotification = "WMListSelectionDidChangeNotification";
typedef struct W_List { typedef struct W_List {
W_Class widgetClass; W_Class widgetClass;
@@ -227,16 +227,19 @@ WMRemoveListItem(WMList *lPtr, int row)
WMListItem *llist; WMListItem *llist;
WMListItem *tmp; WMListItem *tmp;
int topItem = lPtr->topItem; int topItem = lPtr->topItem;
int selNotify = 0;
CHECK_CLASS(lPtr, WC_List); CHECK_CLASS(lPtr, WC_List);
if (row < 0 || row >= lPtr->itemCount) if (row < 0 || row >= lPtr->itemCount)
return; return;
if (lPtr->selectedItem == row) if (lPtr->selectedItem == row) {
lPtr->selectedItem = -1; lPtr->selectedItem = -1;
else if (lPtr->selectedItem > row) selNotify = 1;
} else if (lPtr->selectedItem > row) {
lPtr->selectedItem--; lPtr->selectedItem--;
}
if (row <= lPtr->topItem+lPtr->fullFitLines+lPtr->flags.dontFitAll) if (row <= lPtr->topItem+lPtr->fullFitLines+lPtr->flags.dontFitAll)
lPtr->topItem--; lPtr->topItem--;
@@ -271,6 +274,9 @@ WMRemoveListItem(WMList *lPtr, int row)
} }
if (lPtr->topItem != topItem) if (lPtr->topItem != topItem)
WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL); WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL);
if (selNotify)
WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr,
(void*)((int)lPtr->selectedItem));
} }
@@ -312,6 +318,7 @@ void
WMClearList(WMList *lPtr) WMClearList(WMList *lPtr)
{ {
WMListItem *item, *tmp; WMListItem *item, *tmp;
int oldSelected = lPtr->selectedItem;
item = lPtr->items; item = lPtr->items;
while (item) { while (item) {
@@ -332,6 +339,9 @@ WMClearList(WMList *lPtr)
if (lPtr->view->flags.realized) { if (lPtr->view->flags.realized) {
updateScroller(lPtr); updateScroller(lPtr);
} }
if (oldSelected != -1)
WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr,
(void*)-1);
} }
@@ -654,11 +664,19 @@ void
WMSelectListItem(WMList *lPtr, int row) WMSelectListItem(WMList *lPtr, int row)
{ {
WMListItem *itemPtr; WMListItem *itemPtr;
int i; int i, notify = 0;
if (row >= lPtr->itemCount) if (row >= lPtr->itemCount)
return; return;
/* the check below must be changed when the multiple selection is
* implemented. -Dan
*/
if (!lPtr->flags.allowMultipleSelection && row == lPtr->selectedItem)
notify = 0;
else
notify = 1;
if (!lPtr->flags.allowMultipleSelection) { if (!lPtr->flags.allowMultipleSelection) {
/* unselect previous selected item */ /* unselect previous selected item */
if (lPtr->selectedItem >= 0) { if (lPtr->selectedItem >= 0) {
@@ -676,8 +694,12 @@ WMSelectListItem(WMList *lPtr, int row)
} }
if (row < 0) { if (row < 0) {
if (!lPtr->flags.allowMultipleSelection) if (!lPtr->flags.allowMultipleSelection) {
lPtr->selectedItem = -1; lPtr->selectedItem = -1;
if (notify)
WMPostNotificationName(WMListSelectionDidChangeNotification,
lPtr, (void*)((int)lPtr->selectedItem));
}
return; return;
} }
@@ -700,6 +722,9 @@ WMSelectListItem(WMList *lPtr, int row)
WRSunken); WRSunken);
} }
lPtr->selectedItem = row; lPtr->selectedItem = row;
if (notify)
WMPostNotificationName(WMListSelectionDidChangeNotification, lPtr,
(void*)((int)lPtr->selectedItem));
} }
@@ -732,7 +757,6 @@ handleActionEvents(XEvent *event, void *data)
tmp = getItemIndexAt(lPtr, event->xbutton.y); tmp = getItemIndexAt(lPtr, event->xbutton.y);
if (tmp == lPtr->selectedItem && tmp >= 0) { if (tmp == lPtr->selectedItem && tmp >= 0) {
if (lPtr->action) if (lPtr->action)
(*lPtr->action)(lPtr, lPtr->clientData); (*lPtr->action)(lPtr, lPtr->clientData);
} }
@@ -751,16 +775,16 @@ handleActionEvents(XEvent *event, void *data)
case ButtonPress: case ButtonPress:
if (event->xbutton.x > WMWidgetWidth(lPtr->vScroller)) { if (event->xbutton.x > WMWidgetWidth(lPtr->vScroller)) {
tmp = getItemIndexAt(lPtr, event->xbutton.y); tmp = getItemIndexAt(lPtr, event->xbutton.y);
lPtr->flags.buttonPressed = 1; lPtr->flags.buttonPressed = 1;
if (tmp >= 0) { if (tmp >= 0) {
WMSelectListItem(lPtr, tmp);
if (tmp == lPtr->selectedItem && WMIsDoubleClick(event)) { if (tmp == lPtr->selectedItem && WMIsDoubleClick(event)) {
WMSelectListItem(lPtr, tmp);
if (lPtr->doubleAction) if (lPtr->doubleAction)
(*lPtr->doubleAction)(lPtr, lPtr->doubleClientData); (*lPtr->doubleAction)(lPtr, lPtr->doubleClientData);
} else {
WMSelectListItem(lPtr, tmp);
} }
lPtr->selectedItem = tmp;
} }
} }
break; break;
@@ -770,7 +794,6 @@ handleActionEvents(XEvent *event, void *data)
tmp = getItemIndexAt(lPtr, event->xmotion.y); tmp = getItemIndexAt(lPtr, event->xmotion.y);
if (tmp>=0 && tmp != lPtr->selectedItem) { if (tmp>=0 && tmp != lPtr->selectedItem) {
WMSelectListItem(lPtr, tmp); WMSelectListItem(lPtr, tmp);
lPtr->selectedItem = tmp;
} }
} }
break; break;

View File

@@ -1,8 +1,17 @@
/* /*
* Author: Len Trigg <trigg@cs.waikato.ac.nz> * Author: Len Trigg <trigg@cs.waikato.ac.nz>
*/ */
/*
Update: Franck Wolff <frawolff@club-internet.fr>
-----------------------------------------------------------------------
List of updated functions :
- main :
add -s option for a save panel...
-----------------------------------------------------------------------
*/
#include "WINGs.h" #include "WINGs.h"
@@ -29,6 +38,7 @@ void usage(void)
"\t%s [-options]\n" "\t%s [-options]\n"
"\n" "\n"
"options:\n" "options:\n"
" -s\t\tSave panel (default open panel)\n"
" -i <str>\tInitial directory (default /)\n" " -i <str>\tInitial directory (default /)\n"
" -t <str>\tQuery window title (default none)\n" " -t <str>\tQuery window title (default none)\n"
"\n" "\n"
@@ -42,16 +52,21 @@ void usage(void)
exit(0); exit(0);
} }
#define OPEN_PANEL_TYPE 0
#define SAVE_PANEL_TYPE 1
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
Display *dpy = XOpenDisplay(""); Display *dpy = XOpenDisplay("");
WMScreen *scr; WMScreen *scr;
WMPixmap *pixmap; WMPixmap *pixmap;
WMOpenPanel *panel; WMOpenPanel *oPanel;
WMSavePanel *sPanel;
/* RImage *image;*/ /* RImage *image;*/
char *title = NULL; char *title = NULL;
char *initial = "/"; char *initial = "/";
int ch; int ch;
int panelType = OPEN_PANEL_TYPE;
extern char *optarg; extern char *optarg;
extern int optind; extern int optind;
@@ -63,9 +78,12 @@ int main(int argc, char **argv)
puts("could not open display"); puts("could not open display");
exit(1); exit(1);
} }
while((ch = getopt(argc, argv, "i:ht:")) != -1) while((ch = getopt(argc, argv, "si:ht:")) != -1)
switch(ch) switch(ch)
{ {
case 's':
panelType = SAVE_PANEL_TYPE;
break;
case 'i': case 'i':
initial = optarg; initial = optarg;
break; break;
@@ -84,16 +102,22 @@ int main(int argc, char **argv)
pixmap = WMCreatePixmapFromXPMData(scr, GNUSTEP_XPM); pixmap = WMCreatePixmapFromXPMData(scr, GNUSTEP_XPM);
WMSetApplicationIconImage(scr, pixmap); WMReleasePixmap(pixmap); WMSetApplicationIconImage(scr, pixmap);
panel = WMGetOpenPanel(scr); WMReleasePixmap(pixmap);
if (panelType == SAVE_PANEL_TYPE) {
/*WMSetFilePanelAutoCompletion(panel, False);*/ sPanel = WMGetSavePanel(scr);
if (WMRunModalFilePanelForDirectory(sPanel, NULL, initial,
/* The 3rd argument for this function is the initial name of the file, /*title*/ NULL, NULL) == True)
* not the name of the window, although it's not implemented yet */ printf("%s\n", WMGetFilePanelFileName(sPanel));
if (WMRunModalOpenPanelForDirectory(panel, NULL, initial, /*title*/ NULL, NULL) == True)
printf("%s\n", WMGetFilePanelFileName(panel));
else else
printf("\n"); 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; return 0;
} }

View File

@@ -338,11 +338,19 @@ WMSetPopUpButtonPullsDown(WMPopUpButton *bPtr, Bool flag)
{ {
bPtr->flags.pullsDown = flag; bPtr->flags.pullsDown = flag;
if (!flag) { if (!flag) {
/* This code causes bugs. It should not select any item,
* since it was not asked to. -Dan
bPtr->selectedItem = bPtr->items; bPtr->selectedItem = bPtr->items;
if (bPtr->selectedItem) if (bPtr->selectedItem)
bPtr->selectedItemIndex = 0; bPtr->selectedItemIndex = 0;
else else
bPtr->selectedItemIndex = -1; bPtr->selectedItemIndex = -1;
*/
bPtr->selectedItem = NULL;
/* the drawing routine, still draws things wrong if we put
* the index to -1 (i.e. not selected).
* Find out why. -Dan */
bPtr->selectedItemIndex = 0;
} else } else
bPtr->selectedItemIndex = -1; bPtr->selectedItemIndex = -1;

View File

@@ -398,7 +398,7 @@ WMSetScrollViewContentView(WMScrollView *sPtr, WMView *view)
sPtr->contentView = view; sPtr->contentView = view;
W_ReparentView(sPtr->contentView, sPtr->viewport); W_ReparentView(sPtr->contentView, sPtr->viewport, 0, 0);
if (sPtr->flags.hasHScroller) { if (sPtr->flags.hasHScroller) {
float prop; float prop;

View File

@@ -533,6 +533,8 @@ destroySlider(Slider *sPtr)
if (sPtr->backPixmap) if (sPtr->backPixmap)
WMReleasePixmap(sPtr->backPixmap); WMReleasePixmap(sPtr->backPixmap);
WMRemoveNotificationObserver(sPtr);
free(sPtr); free(sPtr);
} }

View File

@@ -144,7 +144,7 @@ WMAddSplitViewSubview(WMSplitView *sPtr, WMView *subview)
W_UnmapView(subview); W_UnmapView(subview);
} }
W_ReparentView(subview, sPtr->view); W_ReparentView(subview, sPtr->view, 0, 0);
#if 0 #if 0
if (sPtr->resizeSubviewsProc && subviewCount(sPtr)>1) { if (sPtr->resizeSubviewsProc && subviewCount(sPtr)>1) {

View File

@@ -46,10 +46,10 @@ testOpenFilePanel(WMScreen *scr)
/* get the shared Open File panel */ /* get the shared Open File panel */
panel = WMGetOpenPanel(scr); panel = WMGetOpenPanel(scr);
WMRunModalOpenPanelForDirectory(panel, NULL, "/usr/local", NULL, NULL); WMRunModalFilePanelForDirectory(panel, NULL, "/usr/local", NULL, NULL);
/* free the panel to save some memory. Not needed otherwise. */ /* free the panel to save some memory. Not needed otherwise. */
WMFreeFilePanel(panel); WMFreeFilePanel(WMGetOpenPanel(scr));
} }

View File

@@ -22,8 +22,10 @@ typedef struct W_TextField {
W_Class widgetClass; W_Class widgetClass;
W_View *view; W_View *view;
#if 0
struct W_TextField *nextField; /* next textfield in the chain */ struct W_TextField *nextField; /* next textfield in the chain */
struct W_TextField *prevField; struct W_TextField *prevField;
#endif
char *text; char *text;
int textLen; /* size of text */ int textLen; /* size of text */
@@ -39,6 +41,8 @@ typedef struct W_TextField {
WMRange selection; WMRange selection;
WMRange prevselection; WMRange prevselection;
WMFont *font;
#if 0 #if 0
WMHandlerID timerID; /* for cursor blinking */ WMHandlerID timerID; /* for cursor blinking */
#endif #endif
@@ -47,6 +51,8 @@ typedef struct W_TextField {
unsigned int bordered:1; unsigned int bordered:1;
unsigned int beveled:1;
unsigned int enabled:1; unsigned int enabled:1;
unsigned int focused:1; unsigned int focused:1;
@@ -97,10 +103,10 @@ struct W_ViewProcedureTable _TextFieldViewProcedures = {
}; };
#define TEXT_WIDTH(tPtr, start) (WMWidthOfString((tPtr)->view->screen->normalFont, \ #define TEXT_WIDTH(tPtr, start) (WMWidthOfString((tPtr)->font, \
&((tPtr)->text[(start)]), (tPtr)->textLen - (start) + 1)) &((tPtr)->text[(start)]), (tPtr)->textLen - (start) + 1))
#define TEXT_WIDTH2(tPtr, start, end) (WMWidthOfString((tPtr)->view->screen->normalFont, \ #define TEXT_WIDTH2(tPtr, start, end) (WMWidthOfString((tPtr)->font, \
&((tPtr)->text[(start)]), (end) - (start) + 1)) &((tPtr)->text[(start)]), (end) - (start) + 1))
@@ -163,7 +169,6 @@ WMCreateTextField(WMWidget *parent)
{ {
TextField *tPtr; TextField *tPtr;
tPtr = wmalloc(sizeof(TextField)); tPtr = wmalloc(sizeof(TextField));
memset(tPtr, 0, sizeof(TextField)); memset(tPtr, 0, sizeof(TextField));
@@ -192,10 +197,14 @@ WMCreateTextField(WMWidget *parent)
|FocusChangeMask, handleEvents, tPtr); |FocusChangeMask, handleEvents, tPtr);
W_ResizeView(tPtr->view, DEFAULT_WIDTH, DEFAULT_HEIGHT); W_ResizeView(tPtr->view, DEFAULT_WIDTH, DEFAULT_HEIGHT);
WMSetTextFieldBordered(tPtr, DEFAULT_BORDERED);
tPtr->font = WMRetainFont(tPtr->view->screen->normalFont);
tPtr->flags.bordered = DEFAULT_BORDERED;
tPtr->flags.beveled = True;
tPtr->flags.alignment = DEFAULT_ALIGNMENT; tPtr->flags.alignment = DEFAULT_ALIGNMENT;
tPtr->offsetWidth = (tPtr->view->size.height tPtr->offsetWidth =
- WMFontHeight(tPtr->view->screen->normalFont))/2; WMAX((tPtr->view->size.height - WMFontHeight(tPtr->font))/2, 1);
WMCreateEventHandler(tPtr->view, EnterWindowMask|LeaveWindowMask WMCreateEventHandler(tPtr->view, EnterWindowMask|LeaveWindowMask
|ButtonPressMask|KeyPressMask|Button1MotionMask, |ButtonPressMask|KeyPressMask|Button1MotionMask,
@@ -311,10 +320,6 @@ WMGetTextFieldText(WMTextField *tPtr)
void void
WMSetTextFieldText(WMTextField *tPtr, char *text) WMSetTextFieldText(WMTextField *tPtr, char *text)
{ {
/* We do not set text if it's the same. This will also help
* to avoid some infinite loops if this function is called from
* a function called by a notification observer. -Dan
*/
if ((text && strcmp(tPtr->text, text) == 0) || if ((text && strcmp(tPtr->text, text) == 0) ||
(!text && tPtr->textLen == 0)) (!text && tPtr->textLen == 0))
return; return;
@@ -347,6 +352,14 @@ WMSetTextFieldText(WMTextField *tPtr, char *text)
} }
void
WMSetTextFieldFont(WMTextField *tPtr, WMFont *font)
{
/* TODO: update font change after field is mapped */
WMReleaseFont(tPtr->font);
tPtr->font = WMRetainFont(font);
}
void void
WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment) WMSetTextFieldAlignment(WMTextField *tPtr, WMAlignment alignment)
{ {
@@ -373,6 +386,17 @@ WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered)
} }
void
WMSetTextFieldBeveled(WMTextField *tPtr, Bool flag)
{
tPtr->flags.beveled = flag;
if (tPtr->view->flags.realized) {
paintTextField(tPtr);
}
}
void void
WMSetTextFieldSecure(WMTextField *tPtr, Bool flag) WMSetTextFieldSecure(WMTextField *tPtr, Bool flag)
@@ -385,6 +409,13 @@ WMSetTextFieldSecure(WMTextField *tPtr, Bool flag)
} }
Bool
WMGetTextFieldEnabled(WMTextField *tPtr)
{
return tPtr->flags.enabled;
}
void void
WMSetTextFieldEnabled(WMTextField *tPtr, Bool flag) WMSetTextFieldEnabled(WMTextField *tPtr, Bool flag)
{ {
@@ -438,15 +469,61 @@ WMSetTextFieldCursorPosition(WMTextField *tPtr, unsigned int position)
} }
void
WMSetTextFieldNextTextField(WMTextField *tPtr, WMTextField *next)
{
CHECK_CLASS(tPtr, WC_TextField);
if (next == NULL) {
if (tPtr->view->nextFocusChain)
tPtr->view->nextFocusChain->prevFocusChain = NULL;
tPtr->view->nextFocusChain = NULL;
return;
}
CHECK_CLASS(next, WC_TextField);
if (tPtr->view->nextFocusChain)
tPtr->view->nextFocusChain->prevFocusChain = NULL;
if (next->view->prevFocusChain)
next->view->prevFocusChain->nextFocusChain = NULL;
tPtr->view->nextFocusChain = next->view;
next->view->prevFocusChain = tPtr->view;
}
void
WMSetTextFieldPrevTextField(WMTextField *tPtr, WMTextField *prev)
{
CHECK_CLASS(tPtr, WC_TextField);
if (prev == NULL) {
if (tPtr->view->prevFocusChain)
tPtr->view->prevFocusChain->nextFocusChain = NULL;
tPtr->view->prevFocusChain = NULL;
return;
}
CHECK_CLASS(prev, WC_TextField);
if (tPtr->view->prevFocusChain)
tPtr->view->prevFocusChain->nextFocusChain = NULL;
if (prev->view->nextFocusChain)
prev->view->nextFocusChain->prevFocusChain = NULL;
tPtr->view->prevFocusChain = prev->view;
prev->view->nextFocusChain = tPtr->view;
}
static void static void
resizeTextField(WMTextField *tPtr, unsigned int width, unsigned int height) resizeTextField(WMTextField *tPtr, unsigned int width, unsigned int height)
{ {
W_ResizeView(tPtr->view, width, height); W_ResizeView(tPtr->view, width, height);
tPtr->offsetWidth = (tPtr->view->size.height tPtr->offsetWidth =
- WMFontHeight(tPtr->view->screen->normalFont))/2; WMAX((tPtr->view->size.height - WMFontHeight(tPtr->font))/2, 1);
tPtr->usableWidth = tPtr->view->size.width - 2*tPtr->offsetWidth; tPtr->usableWidth = tPtr->view->size.width - 2*tPtr->offsetWidth + 2;
} }
@@ -457,27 +534,24 @@ paintCursor(TextField *tPtr)
WMScreen *screen = tPtr->view->screen; WMScreen *screen = tPtr->view->screen;
int textWidth; int textWidth;
cx = WMWidthOfString(screen->normalFont, cx = WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]),
&(tPtr->text[tPtr->viewPosition]),
tPtr->cursorPosition-tPtr->viewPosition); tPtr->cursorPosition-tPtr->viewPosition);
switch (tPtr->flags.alignment) { switch (tPtr->flags.alignment) {
case WARight: case WARight:
textWidth = WMWidthOfString(screen->normalFont, tPtr->text, textWidth = WMWidthOfString(tPtr->font, tPtr->text, tPtr->textLen);
tPtr->textLen);
if (textWidth < tPtr->usableWidth) if (textWidth < tPtr->usableWidth)
cx += tPtr->offsetWidth + tPtr->usableWidth - textWidth; cx += tPtr->offsetWidth + tPtr->usableWidth - textWidth + 1;
else else
cx += tPtr->offsetWidth; cx += tPtr->offsetWidth + 1;
break; break;
case WALeft: case WALeft:
cx += tPtr->offsetWidth; cx += tPtr->offsetWidth + 1;
break; break;
case WAJustified: case WAJustified:
/* not supported */ /* not supported */
case WACenter: case WACenter:
textWidth = WMWidthOfString(screen->normalFont, tPtr->text, textWidth = WMWidthOfString(tPtr->font, tPtr->text, tPtr->textLen);
tPtr->textLen);
if (textWidth < tPtr->usableWidth) if (textWidth < tPtr->usableWidth)
cx += tPtr->offsetWidth + (tPtr->usableWidth-textWidth)/2; cx += tPtr->offsetWidth + (tPtr->usableWidth-textWidth)/2;
else else
@@ -497,7 +571,7 @@ paintCursor(TextField *tPtr)
static void static void
drawRelief(WMView *view) drawRelief(WMView *view, Bool beveled)
{ {
WMScreen *scr = view->screen; WMScreen *scr = view->screen;
Display *dpy = scr->display; Display *dpy = scr->display;
@@ -507,8 +581,14 @@ drawRelief(WMView *view)
int width = view->size.width; int width = view->size.width;
int height = view->size.height; int height = view->size.height;
wgc = W_GC(scr->white);
dgc = W_GC(scr->darkGray); dgc = W_GC(scr->darkGray);
if (!beveled) {
XDrawRectangle(dpy, view->window, dgc, 0, 0, width-1, height-1);
return;
}
wgc = W_GC(scr->white);
lgc = W_GC(scr->gray); lgc = W_GC(scr->gray);
/* top left */ /* top left */
@@ -550,16 +630,15 @@ paintTextField(TextField *tPtr)
totalWidth = tPtr->view->size.width - 2*bd; totalWidth = tPtr->view->size.width - 2*bd;
if (tPtr->textLen > 0) { if (tPtr->textLen > 0) {
tw = WMWidthOfString(screen->normalFont, tw = WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]),
&(tPtr->text[tPtr->viewPosition]),
tPtr->textLen - tPtr->viewPosition); tPtr->textLen - tPtr->viewPosition);
th = WMFontHeight(screen->normalFont); th = WMFontHeight(tPtr->font);
ty = tPtr->offsetWidth; ty = tPtr->offsetWidth;
switch (tPtr->flags.alignment) { switch (tPtr->flags.alignment) {
case WALeft: case WALeft:
tx = tPtr->offsetWidth; tx = tPtr->offsetWidth + 1;
if (tw < tPtr->usableWidth) if (tw < tPtr->usableWidth)
XClearArea(screen->display, view->window, bd+tw, bd, XClearArea(screen->display, view->window, bd+tw, bd,
totalWidth-tw, view->size.height-2*bd, totalWidth-tw, view->size.height-2*bd,
@@ -575,7 +654,7 @@ paintTextField(TextField *tPtr)
default: default:
case WARight: case WARight:
tx = tPtr->offsetWidth + tPtr->usableWidth - tw; tx = tPtr->offsetWidth + tPtr->usableWidth - tw - 1;
if (tw < tPtr->usableWidth) if (tw < tPtr->usableWidth)
XClearArea(screen->display, view->window, bd, bd, XClearArea(screen->display, view->window, bd, bd,
totalWidth-tw, view->size.height-2*bd, False); totalWidth-tw, view->size.height-2*bd, False);
@@ -587,7 +666,7 @@ paintTextField(TextField *tPtr)
WMSetColorInGC(screen->darkGray, screen->textFieldGC); WMSetColorInGC(screen->darkGray, screen->textFieldGC);
WMDrawImageString(screen, view->window, screen->textFieldGC, WMDrawImageString(screen, view->window, screen->textFieldGC,
screen->normalFont, tx, ty, tPtr->font, tx, ty,
&(tPtr->text[tPtr->viewPosition]), &(tPtr->text[tPtr->viewPosition]),
tPtr->textLen - tPtr->viewPosition); tPtr->textLen - tPtr->viewPosition);
@@ -598,7 +677,7 @@ paintTextField(TextField *tPtr)
? tPtr->selection.position + tPtr->selection.count ? tPtr->selection.position + tPtr->selection.count
: tPtr->selection.position; : tPtr->selection.position;
rx = tx + WMWidthOfString(screen->normalFont, rx = tx + WMWidthOfString(tPtr->font,
&(tPtr->text[tPtr->viewPosition]), &(tPtr->text[tPtr->viewPosition]),
count); count);
@@ -606,8 +685,7 @@ paintTextField(TextField *tPtr)
screen->gray->color.pixel); screen->gray->color.pixel);
WMDrawImageString(screen, view->window, screen->textFieldGC, WMDrawImageString(screen, view->window, screen->textFieldGC,
screen->normalFont, rx, ty, tPtr->font, rx, ty, &(tPtr->text[count]),
&(tPtr->text[count]),
abs(tPtr->selection.count)); abs(tPtr->selection.count));
XSetBackground(screen->display, screen->textFieldGC, XSetBackground(screen->display, screen->textFieldGC,
@@ -630,7 +708,7 @@ paintTextField(TextField *tPtr)
/* draw relief */ /* draw relief */
if (tPtr->flags.bordered) { if (tPtr->flags.bordered) {
drawRelief(view); drawRelief(view, tPtr->flags.beveled);
} }
} }
@@ -715,7 +793,6 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
KeySym ksym; KeySym ksym;
int count, refresh = 0; int count, refresh = 0;
int control_pressed = 0; int control_pressed = 0;
WMScreen *scr = tPtr->view->screen;
if (((XKeyEvent *) event)->state & WM_EMACSKEYMASK) { if (((XKeyEvent *) event)->state & WM_EMACSKEYMASK) {
control_pressed = 1; control_pressed = 1;
@@ -733,9 +810,9 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
} }
/* Be careful in any case in this switch statement, never to call /* Be careful in any case in this switch statement, never to call
* to more than 2 functions at the same time, that can generate text * to more than a function that can generate text change notifications.
* change notifications. Only one text change notification should be sent * Only one text change notification should be sent in any case.
* in any case. Else hazardous things can happen. * Else hazardous things can happen.
* Maybe we need a better solution than the function wrapper to inform * Maybe we need a better solution than the function wrapper to inform
* functions that change text in text fields, if they need to send a * functions that change text in text fields, if they need to send a
* change notification or not. -Dan * change notification or not. -Dan
@@ -811,7 +888,7 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
} else { } else {
tPtr->cursorPosition++; tPtr->cursorPosition++;
} }
while (WMWidthOfString(scr->normalFont, while (WMWidthOfString(tPtr->font,
&(tPtr->text[tPtr->viewPosition]), &(tPtr->text[tPtr->viewPosition]),
tPtr->cursorPosition-tPtr->viewPosition) tPtr->cursorPosition-tPtr->viewPosition)
> tPtr->usableWidth) { > tPtr->usableWidth) {
@@ -851,7 +928,7 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
paintCursor(tPtr); paintCursor(tPtr);
tPtr->cursorPosition = tPtr->textLen; tPtr->cursorPosition = tPtr->textLen;
tPtr->viewPosition = 0; tPtr->viewPosition = 0;
while (WMWidthOfString(scr->normalFont, while (WMWidthOfString(tPtr->font,
&(tPtr->text[tPtr->viewPosition]), &(tPtr->text[tPtr->viewPosition]),
tPtr->textLen-tPtr->viewPosition) tPtr->textLen-tPtr->viewPosition)
> tPtr->usableWidth) { > tPtr->usableWidth) {
@@ -870,6 +947,7 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
case XK_BackSpace: case XK_BackSpace:
if (tPtr->cursorPosition > 0) { if (tPtr->cursorPosition > 0) {
WMRange range; WMRange range;
if (tPtr->prevselection.count) { if (tPtr->prevselection.count) {
range.position = tPtr->prevselection.count < 0 range.position = tPtr->prevselection.count < 0
? tPtr->prevselection.position + tPtr->prevselection.count ? tPtr->prevselection.position + tPtr->prevselection.count
@@ -892,6 +970,7 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
case XK_Delete: case XK_Delete:
if (tPtr->cursorPosition < tPtr->textLen || tPtr->prevselection.count) { if (tPtr->cursorPosition < tPtr->textLen || tPtr->prevselection.count) {
WMRange range; WMRange range;
if (tPtr->prevselection.count) { if (tPtr->prevselection.count) {
range.position = tPtr->prevselection.count < 0 range.position = tPtr->prevselection.count < 0
? tPtr->prevselection.position + tPtr->prevselection.count ? tPtr->prevselection.position + tPtr->prevselection.count
@@ -910,6 +989,7 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
default: default:
if (count > 0 && !iscntrl(buffer[0])) { if (count > 0 && !iscntrl(buffer[0])) {
WMRange range; WMRange range;
if (tPtr->prevselection.count) { if (tPtr->prevselection.count) {
range.position = tPtr->prevselection.count < 0 range.position = tPtr->prevselection.count < 0
? tPtr->prevselection.position + tPtr->prevselection.count ? tPtr->prevselection.position + tPtr->prevselection.count
@@ -944,7 +1024,6 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
static int static int
pointToCursorPosition(TextField *tPtr, int x) pointToCursorPosition(TextField *tPtr, int x)
{ {
WMFont *font = tPtr->view->screen->normalFont;
int a, b, mid; int a, b, mid;
int tw; int tw;
@@ -953,13 +1032,13 @@ pointToCursorPosition(TextField *tPtr, int x)
a = tPtr->viewPosition; a = tPtr->viewPosition;
b = tPtr->viewPosition + tPtr->textLen; b = tPtr->viewPosition + tPtr->textLen;
if (WMWidthOfString(font, &(tPtr->text[tPtr->viewPosition]), if (WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]),
tPtr->textLen-tPtr->viewPosition) < x) tPtr->textLen-tPtr->viewPosition) < x)
return tPtr->textLen; return tPtr->textLen;
while (a < b && b-a>1) { while (a < b && b-a>1) {
mid = (a+b)/2; mid = (a+b)/2;
tw = WMWidthOfString(font, &(tPtr->text[tPtr->viewPosition]), tw = WMWidthOfString(tPtr->font, &(tPtr->text[tPtr->viewPosition]),
mid - tPtr->viewPosition); mid - tPtr->viewPosition);
if (tw > x) if (tw > x)
b = mid; b = mid;
@@ -981,7 +1060,7 @@ handleTextFieldActionEvents(XEvent *event, void *data)
switch (event->type) { switch (event->type) {
case KeyPress: case KeyPress:
if (tPtr->flags.enabled) if (tPtr->flags.enabled && tPtr->flags.focused)
handleTextFieldKeyPress(tPtr, event); handleTextFieldKeyPress(tPtr, event);
break; break;
@@ -1046,6 +1125,8 @@ destroyTextField(TextField *tPtr)
WMDeleteTimerHandler(tPtr->timerID); WMDeleteTimerHandler(tPtr->timerID);
#endif #endif
WMReleaseFont(tPtr->font);
if (tPtr->text) if (tPtr->text)
free(tPtr->text); free(tPtr->text);

View File

@@ -102,6 +102,32 @@ adoptChildView(W_View *view, W_View *child)
} }
static void
getPosition(Display *dpy, Window win, int *x_ret, int *y_ret)
{
unsigned foo;
Window bar;
Window parent;
Window *childs;
int x, y;
XGetGeometry(dpy, win, &bar, &x, &y, &foo, &foo, &foo, &foo);
if (XQueryTree(dpy, win, &bar, &parent, &childs, &foo)) {
int px, py;
XFree(childs);
if (parent != bar) {
getPosition(dpy, parent, &px, &py);
x += px;
y += py;
}
}
*x_ret = x;
*y_ret = y;
}
static void static void
handleEvents(XEvent *event, void *data) handleEvents(XEvent *event, void *data)
@@ -113,13 +139,25 @@ handleEvents(XEvent *event, void *data)
if (event->xconfigure.width != view->size.width if (event->xconfigure.width != view->size.width
|| event->xconfigure.height != view->size.height) { || event->xconfigure.height != view->size.height) {
if (view->flags.notifySizeChanged) {
view->size.width = event->xconfigure.width; view->size.width = event->xconfigure.width;
view->size.height = event->xconfigure.height; view->size.height = event->xconfigure.height;
if (view->flags.notifySizeChanged) {
WMPostNotificationName(WMViewSizeDidChangeNotification, WMPostNotificationName(WMViewSizeDidChangeNotification,
view, NULL); view, NULL);
} }
} }
if (event->xconfigure.x != view->pos.x
|| event->xconfigure.y != view->pos.y) {
if (event->xconfigure.send_event) {
view->pos.x = event->xconfigure.x;
view->pos.y = event->xconfigure.y;
} else {
getPosition(view->screen->display, view->window,
&view->pos.x, &view->pos.y);
}
}
} }
} }
@@ -265,34 +303,26 @@ W_CheckInternalMessage(W_Screen *scr, XClientMessageEvent *cev, int event)
void void
W_ReparentView(W_View *view, W_View *newParent) W_ReparentView(W_View *view, W_View *newParent, int x, int y)
{ {
int wasMapped;
Display *dpy = view->screen->display; Display *dpy = view->screen->display;
assert(!view->flags.topLevel); assert(!view->flags.topLevel);
wasMapped = view->flags.mapped;
if (wasMapped)
W_UnmapView(view);
unparentView(view); unparentView(view);
adoptChildView(newParent, view); adoptChildView(newParent, view);
if (view->flags.realized) { if (view->flags.realized) {
if (newParent->flags.realized) { if (newParent->flags.realized) {
XReparentWindow(dpy, view->window, newParent->window, 0, 0); XReparentWindow(dpy, view->window, newParent->window, x, y);
} else { } else {
wwarning("trying to reparent realized view to unrealized parent"); wwarning("trying to reparent realized view to unrealized parent");
return; return;
} }
} }
view->pos.x = 0; view->pos.x = x;
view->pos.y = 0; view->pos.y = y;
if (wasMapped)
W_MapView(view);
} }
@@ -382,6 +412,11 @@ destroyView(W_View *view)
return; return;
view->flags.alreadyDead = 1; view->flags.alreadyDead = 1;
if (view->nextFocusChain)
view->nextFocusChain->prevFocusChain = view->prevFocusChain;
if (view->prevFocusChain)
view->prevFocusChain->nextFocusChain = view->nextFocusChain;
/* Do not leave focus in a inexisting control */ /* Do not leave focus in a inexisting control */
if (W_FocusedViewOfToplevel(W_TopLevelOfView(view))==view) if (W_FocusedViewOfToplevel(W_TopLevelOfView(view))==view)
W_SetFocusOfTopLevel(W_TopLevelOfView(view), NULL); W_SetFocusOfTopLevel(W_TopLevelOfView(view), NULL);

View File

@@ -69,6 +69,8 @@ showData(_Panel *panel)
char buffer[32]; char buffer[32];
str = GetStringForKey("FocusMode"); str = GetStringForKey("FocusMode");
if (!str)
str = "manual";
if (strcasecmp(str, "manual")==0 || strcasecmp(str, "clicktofocus")==0) if (strcasecmp(str, "manual")==0 || strcasecmp(str, "clicktofocus")==0)
WMSetPopUpButtonSelectedItem(panel->kfocP, 0); WMSetPopUpButtonSelectedItem(panel->kfocP, 0);
else if (strcasecmp(str, "auto")==0 || strcasecmp(str, "focusfollowsmouse")==0) else if (strcasecmp(str, "auto")==0 || strcasecmp(str, "focusfollowsmouse")==0)
@@ -84,12 +86,14 @@ showData(_Panel *panel)
/**/ /**/
str = GetStringForKey("ColormapMode"); str = GetStringForKey("ColormapMode");
if (!str)
str = "auto";
if (strcasecmp(str, "manual")==0 || strcasecmp(str, "clicktofocus")==0) { if (strcasecmp(str, "manual")==0 || strcasecmp(str, "clicktofocus")==0) {
WMPerformButtonClick(panel->manB); WMPerformButtonClick(panel->manB);
} else if (strcasecmp(str, "auto")==0 || strcasecmp(str, "focusfollowsmouse")==0) { } else if (strcasecmp(str, "auto")==0 || strcasecmp(str, "focusfollowsmouse")==0) {
WMPerformButtonClick(panel->autB); WMPerformButtonClick(panel->autB);
} else { } else {
wwarning(_("bad option value %s for option ColormapMode. Using default Manual"), wwarning(_("bad option value %s for option ColormapMode. Using default Auto"),
str); str);
WMPerformButtonClick(panel->manB); WMPerformButtonClick(panel->manB);
} }

View File

@@ -145,6 +145,8 @@ showData(_Panel *panel)
WMSetPopUpButtonSelectedItem(panel->sizeP, i); WMSetPopUpButtonSelectedItem(panel->sizeP, i);
str = GetStringForKey("IconificationStyle"); str = GetStringForKey("IconificationStyle");
if (!str)
str = "zoom";
if (strcasecmp(str, "none")==0) if (strcasecmp(str, "none")==0)
WMPerformButtonClick(panel->animB[3]); WMPerformButtonClick(panel->animB[3]);
else if (strcasecmp(str, "twist")==0) else if (strcasecmp(str, "twist")==0)

View File

@@ -1,7 +1,5 @@
SUBDIRS = xpm tiff po SUBDIRS = xpm tiff po
nlsdir = @NLSDIR@
AUTOMAKE_OPTIONS = no-dependencies AUTOMAKE_OPTIONS = no-dependencies
wpexecbindir = @wprefsdir@ wpexecbindir = @wprefsdir@
@@ -28,6 +26,7 @@ WPrefs_SOURCES = \
Menu.c \ Menu.c \
MenuPreferences.c \ MenuPreferences.c \
MouseSettings.c \ MouseSettings.c \
NoMenuAlert.c \
Paths.c \ Paths.c \
Preferences.c \ Preferences.c \
Text.c \ Text.c \
@@ -39,26 +38,25 @@ WPrefs_SOURCES = \
Workspace.c \ Workspace.c \
double.c \ double.c \
double.h \ double.h \
editmenu.c \
editmenu.h \
MenuGuru.c \ MenuGuru.c \
xmodifier.c xmodifier.c
CPPFLAGS = \ CPPFLAGS = @CPPFLAGS@ -DLOCALEDIR=\"$(NLSDIR)\"
@CPPFLAGS@
INCLUDES = \ INCLUDES = \
-I$(top_srcdir)/wrlib \ -I$(top_srcdir)/wrlib \
-I$(top_srcdir)/WINGs \ -I$(top_srcdir)/WINGs @HEADER_SEARCH_PATH@
@XCFLAGS@
WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a
WPrefs_LDADD = \ WPrefs_LDADD = \
$(top_builddir)/WINGs/libWINGs.a\ $(top_builddir)/WINGs/libWINGs.a\
$(top_builddir)/wrlib/libwraster.la \ $(top_builddir)/wrlib/libwraster.la \
@LIBRARY_SEARCH_PATH@ \
@LIBPL@ \ @LIBPL@ \
@GFXLFLAGS@ \
@XLFLAGS@ \
@GFXLIBS@ \ @GFXLIBS@ \
@XLIBS@ \ @XLIBS@ \
@X_EXTRA_LIBS@ \ @X_EXTRA_LIBS@ \

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@
@@ -89,8 +89,6 @@ wprefsdir = @wprefsdir@
SUBDIRS = xpm tiff po SUBDIRS = xpm tiff po
nlsdir = @NLSDIR@
AUTOMAKE_OPTIONS = no-dependencies AUTOMAKE_OPTIONS = no-dependencies
wpexecbindir = @wprefsdir@ wpexecbindir = @wprefsdir@
@@ -103,18 +101,17 @@ wpdata_DATA = WPrefs.tiff WPrefs.xpm
EXTRA_DIST = $(wpdata_DATA) TexturePanel.icons EXTRA_DIST = $(wpdata_DATA) TexturePanel.icons
WPrefs_SOURCES = main.c WPrefs.c WPrefs.h Appearance.c Configurations.c Expert.c Focus.c Icons.c KeyboardSettings.c KeyboardShortcuts.c Menu.c MenuPreferences.c MouseSettings.c Paths.c Preferences.c Text.c TextureAndColor.c TexturePanel.c TexturePanel.h Themes.c WindowHandling.c Workspace.c double.c double.h MenuGuru.c xmodifier.c WPrefs_SOURCES = main.c WPrefs.c WPrefs.h Appearance.c Configurations.c Expert.c Focus.c Icons.c KeyboardSettings.c KeyboardShortcuts.c Menu.c MenuPreferences.c MouseSettings.c NoMenuAlert.c Paths.c Preferences.c Text.c TextureAndColor.c TexturePanel.c TexturePanel.h Themes.c WindowHandling.c Workspace.c double.c double.h editmenu.c editmenu.h MenuGuru.c xmodifier.c
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@ -DLOCALEDIR=\"$(NLSDIR)\"
INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs @HEADER_SEARCH_PATH@
INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/WINGs @XCFLAGS@
WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a
WPrefs_LDADD = $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la @LIBPL@ @GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ @X_EXTRA_LIBS@ @INTLIBS@ -lm WPrefs_LDADD = $(top_builddir)/WINGs/libWINGs.a $(top_builddir)/wrlib/libwraster.la @LIBRARY_SEARCH_PATH@ @LIBPL@ @GFXLIBS@ @XLIBS@ @X_EXTRA_LIBS@ @INTLIBS@ -lm
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../src/config.h CONFIG_HEADER = ../src/config.h
@@ -130,9 +127,9 @@ X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@
WPrefs_OBJECTS = main.o WPrefs.o Appearance.o Configurations.o Expert.o \ WPrefs_OBJECTS = main.o WPrefs.o Appearance.o Configurations.o Expert.o \
Focus.o Icons.o KeyboardSettings.o KeyboardShortcuts.o Menu.o \ Focus.o Icons.o KeyboardSettings.o KeyboardShortcuts.o Menu.o \
MenuPreferences.o MouseSettings.o Paths.o Preferences.o Text.o \ MenuPreferences.o MouseSettings.o NoMenuAlert.o Paths.o Preferences.o \
TextureAndColor.o TexturePanel.o Themes.o WindowHandling.o Workspace.o \ Text.o TextureAndColor.o TexturePanel.o Themes.o WindowHandling.o \
double.o MenuGuru.o xmodifier.o Workspace.o double.o editmenu.o MenuGuru.o xmodifier.o
WPrefs_LDFLAGS = WPrefs_LDFLAGS =
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)

View File

@@ -83,7 +83,7 @@ typedef struct _Panel {
extern char *OpenMenuGuru(WMWindow *mainWindow); extern char *OpenMenuGuru(WMWindow *mainWindow);
extern Bool AskMenuCopy(WMWindow *wwin);
/* must match the indexes of the commands popup */ /* must match the indexes of the commands popup */
@@ -631,16 +631,21 @@ fillBrowserColumn(WMBrowser *bPtr, int column)
if (column > 0) { if (column > 0) {
menuList = getItemOfSelectedEntry(panel->browser); menuList = getItemOfSelectedEntry(panel->browser);
WMHangData(WMGetBrowserListInColumn(bPtr, column), menuList);
if (column > WMGetBrowserFirstVisibleColumn(bPtr)) if (column > WMGetBrowserFirstVisibleColumn(bPtr))
WMSetTextFieldText(panel->tit2T, getItemTitle(menuList)); WMSetTextFieldText(panel->tit2T, getItemTitle(menuList));
else else
WMSetTextFieldText(panel->tit1T, getItemTitle(menuList)); WMSetTextFieldText(panel->tit1T, getItemTitle(menuList));
} else { } else {
menuList = panel->menu; menuList = panel->menu;
WMHangData(WMGetBrowserListInColumn(bPtr, column), menuList);
WMSetTextFieldText(panel->tit1T, getItemTitle(panel->menu)); WMSetTextFieldText(panel->tit1T, getItemTitle(panel->menu));
} }
WMHangData(WMGetBrowserListInColumn(bPtr, column), menuList);
for (i=1; i<PLGetNumberOfElements(menuList); i++) { for (i=1; i<PLGetNumberOfElements(menuList); i++) {
menuItem = PLGetArrayElement(menuList, i); menuItem = PLGetArrayElement(menuList, i);
WMInsertBrowserItem(bPtr, column, -1, getItemTitle(menuItem), WMInsertBrowserItem(bPtr, column, -1, getItemTitle(menuItem),
@@ -1298,19 +1303,24 @@ getDefaultMenu(_Panel *panel, int *hasWSMenu)
wwarning("%s:could not read property list menu", menuPath); wwarning("%s:could not read property list menu", menuPath);
} }
if (!menu) { if (!menu) {
char buffer[512];
sprintf(buffer, _("Could not open default menu from '%s'"),
menuPath);
WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win, WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win,
_("Error"), _("Could not copy default plmenu file " _("Error"), buffer, _("OK"), NULL, NULL);
"from ~/GNUstep/Library/WindowMaker"),
_("OK"), NULL, NULL);
return NULL;
} }
} }
free(gspath); free(gspath);
free(menuPath); free(menuPath);
if (menu) {
pmenu = preProcessMenu(menu, hasWSMenu); pmenu = preProcessMenu(menu, hasWSMenu);
PLRelease(menu); PLRelease(menu);
} else {
pmenu = NULL;
}
return pmenu; return pmenu;
} }
@@ -1322,7 +1332,6 @@ showData(_Panel *panel)
char *gspath; char *gspath;
char *menuPath; char *menuPath;
proplist_t menu, pmenu, plPath; proplist_t menu, pmenu, plPath;
char buffer[512];
int hasWSMenu = 0; int hasWSMenu = 0;
gspath = wusergnusteppath(); gspath = wusergnusteppath();
@@ -1336,22 +1345,13 @@ showData(_Panel *panel)
pmenu = NULL; pmenu = NULL;
if (!menu || !PLIsArray(menu)) { if (!menu || !PLIsArray(menu)) {
sprintf(buffer, _("The format of the menu in ~/G/D/WMRootMenu is " if (AskMenuCopy(panel->win)) {
"not recognized by WPrefs. It might be in a format different "
"than the one supported by WPrefs or contain a syntax error. "
"Do you want to continue using the current menu to edit "
"it by hand later or replace it with a default menu in the new "
"format?"));
if (WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win,
_("Warning"), buffer, _("Keep current menu"),
_("Install default menu"), NULL)!=WAPRDefault) {
panel->dontSave = 0; panel->dontSave = 0;
pmenu = getDefaultMenu(panel, &hasWSMenu); pmenu = getDefaultMenu(panel, &hasWSMenu);
} else { } else {
WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win, WMSetPopUpButtonEnabled(panel->cmd1P, False);
_("Warning"), _("Any changes made in this section will not be saved"), WMSetPopUpButtonEnabled(panel->cmd2P, False);
_("OK"), NULL, NULL);
panel->dontSave = 1; panel->dontSave = 1;
} }
if (!pmenu) { if (!pmenu) {

View File

@@ -253,6 +253,8 @@ showData(_Panel *panel)
Display *dpy = WMScreenDisplay(WMWidgetScreen(panel->win)); Display *dpy = WMScreenDisplay(WMWidgetScreen(panel->win));
str = GetStringForKey("SelectWindowsMouseButton"); str = GetStringForKey("SelectWindowsMouseButton");
if (!str)
str = "left";
i = getbutton(str); i = getbutton(str);
if (i==-1) { if (i==-1) {
a = 0; a = 0;
@@ -264,6 +266,8 @@ showData(_Panel *panel)
} }
str = GetStringForKey("WindowListMouseButton"); str = GetStringForKey("WindowListMouseButton");
if (!str)
str = "middle";
i = getbutton(str); i = getbutton(str);
if (i==-1) { if (i==-1) {
b = 0; b = 0;
@@ -275,6 +279,8 @@ showData(_Panel *panel)
} }
str = GetStringForKey("ApplicationMenuMouseButton"); str = GetStringForKey("ApplicationMenuMouseButton");
if (!str)
str = "right";
i = getbutton(str); i = getbutton(str);
if (i==-1) { if (i==-1) {
c = 0; c = 0;
@@ -319,7 +325,8 @@ showData(_Panel *panel)
/**/ /**/
str = GetStringForKey("ModifierKey"); str = GetStringForKey("ModifierKey");
if (!str)
str = "mod1";
a = ModifierFromKey(dpy, str); a = ModifierFromKey(dpy, str);
if (a != -1) { if (a != -1) {
@@ -528,8 +535,8 @@ createPanel(Panel *p)
free(path); free(path);
} }
buf1 = wmalloc(strlen(SPEED_IMAGE)+1); buf1 = wmalloc(strlen(SPEED_IMAGE)+2);
buf2 = wmalloc(strlen(SPEED_IMAGE_S)+1); buf2 = wmalloc(strlen(SPEED_IMAGE_S)+2);
for (i = 0; i < 5; i++) { for (i = 0; i < 5; i++) {
panel->speedB[i] = WMCreateCustomButton(panel->speedF, panel->speedB[i] = WMCreateCustomButton(panel->speedF,
@@ -601,8 +608,8 @@ createPanel(Panel *p)
WMMoveWidget(panel->ddelaF, 15, 125); WMMoveWidget(panel->ddelaF, 15, 125);
WMSetFrameTitle(panel->ddelaF, _("Double-Click Delay")); WMSetFrameTitle(panel->ddelaF, _("Double-Click Delay"));
buf1 = wmalloc(strlen(DELAY_ICON)+1); buf1 = wmalloc(strlen(DELAY_ICON)+2);
buf2 = wmalloc(strlen(DELAY_ICON_S)+1); buf2 = wmalloc(strlen(DELAY_ICON_S)+2);
for (i = 0; i < 5; i++) { for (i = 0; i < 5; i++) {
panel->ddelaB[i] = WMCreateCustomButton(panel->ddelaF, panel->ddelaB[i] = WMCreateCustomButton(panel->ddelaF,
@@ -855,17 +862,21 @@ storeData(_Panel *panel)
int i; int i;
char *tmp, *p; char *tmp, *p;
static char *button[3] = {"left", "middle", "right"}; static char *button[3] = {"left", "middle", "right"};
WMUserDefaults *udb = WMGetStandardUserDefaults();
if (!WMGetUDBoolForKey(udb, "NoXSetStuff")) {
tmp = WMGetTextFieldText(panel->threT); tmp = WMGetTextFieldText(panel->threT);
if (strlen(tmp)==0) { if (strlen(tmp)==0) {
free(tmp); free(tmp);
tmp = wstrdup("0"); tmp = wstrdup("4");
} }
sprintf(buffer, XSET" m %i/%i %s\n", (int)(panel->acceleration*10),10, tmp); sprintf(buffer, XSET" m %i/%i %s\n", (int)(panel->acceleration*10),
10, tmp);
storeCommandInScript(XSET" m", buffer); storeCommandInScript(XSET" m", buffer);
free(tmp); free(tmp);
}
for (i=0; i<5; i++) { for (i=0; i<5; i++) {
if (WMGetButtonSelected(panel->ddelaB[i])) if (WMGetButtonSelected(panel->ddelaB[i]))

127
WPrefs.app/NoMenuAlert.c Normal file
View File

@@ -0,0 +1,127 @@
/* NoMenuAlert.c - warn user that menu can't be edited with WPrefs
*
* WPrefs - Window Maker Preferences Program
*
* Copyright (c) 1999 Alfredo K. Kojima
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#include "WPrefs.h"
typedef struct NoMenuPanel {
WMWindow *wwin;
WMLabel *text;
WMButton *copyBtn;
WMButton *keepBtn;
int finished;
int copy;
} NoMenuPanel;
#define MESSAGE_TEXT \
" The menu that is being used now could not be opened. "\
"This either means that there is a syntax error in it or that "\
"the menu is in a format not supported by WPrefs (WPrefs only "\
"supports property list menus).\n"\
" If you want to change the current menu, please read "\
"the '%s' file, press 'Keep Current Menu' and edit it with a "\
"text editor.\n"\
" If you want to use this editor, press 'Copy Default Menu'. "\
"It will copy the default menu and will instruct Window Maker "\
"to use it instead of the current one.\n"\
" If you want more flexibility, keep using the current one "\
"as it allows you to use C preprocessor (cpp) macros, while being "\
"easy to edit."
static void
closeCallback(WMWidget *self, void *data)
{
NoMenuPanel *panel = (NoMenuPanel*)data;
panel->finished = True;
}
static void
buttonCallback(WMWidget *self, void *data)
{
NoMenuPanel *panel = (NoMenuPanel*)data;
panel->finished = True;
if (self == panel->keepBtn)
panel->copy = False;
else
panel->copy = True;
}
Bool
AskMenuCopy(WMWindow *wwin)
{
NoMenuPanel panel;
char buffer[1024];
panel.wwin = WMCreatePanelForWindow(wwin, "noMenuAlert");
WMResizeWidget(panel.wwin, 430, 260);
WMSetWindowTitle(panel.wwin, "Warning");
WMSetWindowCloseAction(panel.wwin, closeCallback, &panel);
panel.text = WMCreateLabel(panel.wwin);
WMResizeWidget(panel.text, 370, 200);
WMMoveWidget(panel.text, 30, 20);
sprintf(buffer, _(MESSAGE_TEXT), "shit/ewq/ewq/rweq");
WMSetLabelText(panel.text, buffer);
panel.copyBtn = WMCreateCommandButton(panel.wwin);
WMResizeWidget(panel.copyBtn, 180, 24);
WMMoveWidget(panel.copyBtn, 30, 225);
WMSetButtonText(panel.copyBtn, _("Copy Default Menu"));
WMSetButtonAction(panel.copyBtn, buttonCallback, &panel);
panel.keepBtn = WMCreateCommandButton(panel.wwin);
WMResizeWidget(panel.keepBtn, 180, 24);
WMMoveWidget(panel.keepBtn, 225, 225);
WMSetButtonText(panel.keepBtn, _("Keep Current Menu"));
WMSetButtonAction(panel.keepBtn, buttonCallback, &panel);
WMMapSubwidgets(panel.wwin);
WMRealizeWidget(panel.wwin);
WMMapWidget(panel.wwin);
panel.finished = False;
panel.copy = False;
while (!panel.finished) {
XEvent event;
WMNextEvent(WMScreenDisplay(WMWidgetScreen(panel.wwin)), &event);
WMHandleEvent(&event);
}
WMDestroyWidget(panel.wwin);
return panel.copy;
}

View File

@@ -365,6 +365,9 @@ createPanel(Panel *p)
WMAddNotificationObserver(textBeginObserver, panel, WMAddNotificationObserver(textBeginObserver, panel,
WMTextDidBeginEditingNotification, panel->pixT); WMTextDidBeginEditingNotification, panel->pixT);
WMSetTextFieldNextTextField(panel->pixT, panel->icoT);
WMSetTextFieldPrevTextField(panel->pixT, panel->icoT);
WMMapSubwidgets(panel->pixF); WMMapSubwidgets(panel->pixF);
WMRealizeWidget(panel->frame); WMRealizeWidget(panel->frame);

View File

@@ -60,6 +60,8 @@ showData(_Panel *panel)
char *str; char *str;
str = GetStringForKey("ResizeDisplay"); str = GetStringForKey("ResizeDisplay");
if (!str)
str = "corner";
if (strcasecmp(str, "corner")==0) if (strcasecmp(str, "corner")==0)
WMSetPopUpButtonSelectedItem(panel->sizeP, 0); WMSetPopUpButtonSelectedItem(panel->sizeP, 0);
else if (strcasecmp(str, "center")==0) else if (strcasecmp(str, "center")==0)
@@ -70,6 +72,8 @@ showData(_Panel *panel)
WMSetPopUpButtonSelectedItem(panel->sizeP, 3); WMSetPopUpButtonSelectedItem(panel->sizeP, 3);
str = GetStringForKey("MoveDisplay"); str = GetStringForKey("MoveDisplay");
if (!str)
str = "corner";
if (strcasecmp(str, "corner")==0) if (strcasecmp(str, "corner")==0)
WMSetPopUpButtonSelectedItem(panel->posiP, 0); WMSetPopUpButtonSelectedItem(panel->posiP, 0);
else if (strcasecmp(str, "center")==0) else if (strcasecmp(str, "center")==0)

View File

@@ -37,12 +37,11 @@ License
------- -------
Like Window Maker, WPrefs is distributed with through the General Public Like Window Maker, WPrefs is distributed with through the General Public
License (as stated in the file COPYING). As an exception, the icons and License (as stated in the file COPYING).
original graphical artwork included with WPrefs has the additional
restriction that they must not be redistributed without the rest of the The graphical artwork included with WPrefs is NOT licensed through the GPL.
Window Maker distribution. In other words, you can use and distribute the It is licensed through the OpenContent License, instead. Please read the
WPrefs icons freely, as long as they are distributed for use with Window COPYING.OPL file for the detailed license.
Maker (ripping the icons and putting them in your program is prohibited).
Notes Notes

View File

@@ -245,9 +245,8 @@ buttonCallback(WMWidget *self, void *data)
/* Pixmap Panel Buttons */ /* Pixmap Panel Buttons */
} else if (self == panel->pbrowB) { } else if (self == panel->pbrowB) {
op = WMGetOpenPanel(WMWidgetScreen(panel->pbrowB)); op = WMGetOpenPanel(WMWidgetScreen(panel->pbrowB));
if (WMRunModalOpenPanelForDirectory(op, NULL, "/usr/local", NULL, NULL)) { if (WMRunModalFilePanelForDirectory(op, NULL, "/usr/local", NULL, NULL)) {
char *path; char *path;
path = WMGetFilePanelFileName(op); path = WMGetFilePanelFileName(op);
WMSetTextFieldText(panel->pimagT, path); WMSetTextFieldText(panel->pimagT, path);

View File

@@ -460,7 +460,6 @@ Initialize(WMScreen *scr)
break; break;
} }
} }
RFreeStringList(list);
if (TIFFOK) if (TIFFOK)
path = WMPathForResourceOfType("WPrefs.tiff", NULL); path = WMPathForResourceOfType("WPrefs.tiff", NULL);
@@ -495,7 +494,7 @@ Initialize(WMScreen *scr)
loadConfigurations(scr, WPrefs.win); loadConfigurations(scr, WPrefs.win);
WMSetLabelText(WPrefs.statusL, _("Initializing configuration panels...")); WMSetLabelText(WPrefs.statusL, _("Initializing configuration panels..."));
#if 1
InitWindowHandling(scr, WPrefs.win); InitWindowHandling(scr, WPrefs.win);
InitFocus(scr, WPrefs.win); InitFocus(scr, WPrefs.win);
InitMenuPreferences(scr, WPrefs.win); InitMenuPreferences(scr, WPrefs.win);
@@ -505,7 +504,9 @@ Initialize(WMScreen *scr)
InitPaths(scr, WPrefs.win); InitPaths(scr, WPrefs.win);
InitWorkspace(scr, WPrefs.win); InitWorkspace(scr, WPrefs.win);
InitConfigurations(scr, WPrefs.win); InitConfigurations(scr, WPrefs.win);
#endif
InitMenu(scr, WPrefs.win); InitMenu(scr, WPrefs.win);
#if 1
#ifdef not_yet_fully_implemented #ifdef not_yet_fully_implemented
InitKeyboardSettings(scr, WPrefs.win); InitKeyboardSettings(scr, WPrefs.win);
#endif #endif
@@ -518,15 +519,14 @@ Initialize(WMScreen *scr)
InitThemes(scr, WPrefs.win); InitThemes(scr, WPrefs.win);
#endif #endif
InitExpert(scr, WPrefs.win); InitExpert(scr, WPrefs.win);
#endif
WMRealizeWidget(WPrefs.scrollV); WMRealizeWidget(WPrefs.scrollV);
WMSetLabelText(WPrefs.statusL, WMSetLabelText(WPrefs.statusL,
_("WPrefs is free software and is distributed WITHOUT ANY " _("WPrefs is free software and is distributed WITHOUT ANY\n"
"WARRANTY under the terms of the GNU General Public License. " "WARRANTY under the terms of the GNU General Public License.\n"
"Redistribution of the icons in this program separately " "The icons in this program are licensed through the\n"
"from the program is prohibited.")); "OpenContent License."));
} }
@@ -580,8 +580,10 @@ loadConfigurations(WMScreen *scr, WMWindow *mainw)
if (sscanf(buffer, "Window Maker %i.%i.%i",&v1,&v2,&v3)!=3 if (sscanf(buffer, "Window Maker %i.%i.%i",&v1,&v2,&v3)!=3
&& sscanf(buffer, "WindowMaker %i.%i.%i",&v1,&v2,&v3)!=3) { && sscanf(buffer, "WindowMaker %i.%i.%i",&v1,&v2,&v3)!=3) {
WMRunAlertPanel(scr, mainw, _("Error"), WMRunAlertPanel(scr, mainw, _("Error"),
_("Could not extract version from Window Maker. Make sure it is correctly installed."), _("Could not extract version from Window Maker. "
_("OK"), NULL, NULL); "Make sure it is correctly installed and the path "
"where it installed is in the PATH environment "
"variable."), _("OK"), NULL, NULL);
exit(1); exit(1);
} }
if (v1 == 0 && (v2 < 18 || v3 < 0)) { if (v1 == 0 && (v2 < 18 || v3 < 0)) {
@@ -601,7 +603,14 @@ loadConfigurations(WMScreen *scr, WMWindow *mainw)
if (!file || !fgets(buffer, 1023, file)) { if (!file || !fgets(buffer, 1023, file)) {
wsyserror(_("could not run \"wmaker --global_defaults_path\".")); wsyserror(_("could not run \"wmaker --global_defaults_path\"."));
exit(1); exit(1);
} else {
char *ptr;
ptr = strchr(buffer, '\n');
if (ptr)
*ptr = 0;
strcat(buffer, "/WindowMaker");
} }
if (file) if (file)
pclose(file); pclose(file);
@@ -849,6 +858,9 @@ GetSpeedForKey(char *defaultName)
int i; int i;
str = GetStringForKey(defaultName); str = GetStringForKey(defaultName);
if (!str)
return 2;
if (strcasecmp(str, "ultraslow")==0) if (strcasecmp(str, "ultraslow")==0)
i = 0; i = 0;
else if (strcasecmp(str, "slow")==0) else if (strcasecmp(str, "slow")==0)

View File

@@ -42,8 +42,8 @@
/****/ /****/
#define WVERSION "0.10" #define WVERSION "0.11"
#define WMVERSION "0.50.x" #define WMVERSION "0.51.x"
typedef struct _Panel Panel; typedef struct _Panel Panel;

Binary file not shown.

View File

@@ -1,237 +1,426 @@
/* XPM */ /* XPM */
static char * image_name[] = { static char * WPrefs3D_xpm[] = {
"45 45 189 2", "48 48 375 2",
" c None", " c None",
". c #186175D60000", ". c #A3FF84",
"X c #000000000000", "+ c #77B563",
"o c #082004100820", "@ c #4A4A4A",
"O c #082008200820", "# c #39393B",
"+ c #4924A28930C2", "$ c #353537",
"@ c #514451445144", "% c #323234",
"# c #492449244924", "& c #2E2E31",
"$ c #49244D344924", "* c #2C2C2E",
"% c #208179E70820", "= c #29292B",
"& c #104010401040", "- c #262628",
"* c #28A22CB228A2", "; c #73B15F",
"= c #38E338E338E3", "> c #393939",
"- c #28A228A228A2", ", c #6C6C6C",
"; c #30C22CB230C2", "' c #626266",
": c #186114511861", ") c #83A479",
"> c #514455555965", "! c #808080",
", c #10400C301040", "~ c #6F6F70",
"< c #186118611861", "{ c #626263",
"1 c #208120812081", "] c #585859",
"2 c #2081249228A2", "^ c #4E4E4F",
"3 c #186171C60000", "/ c #444446",
"4 c #28A282071040", "( c #3C3C3D",
"5 c #28A27DF70820", "_ c #303031",
"6 c #28A2249228A2", ": c #4D6F42",
"7 c #30C230C230C2", "< c #242427",
"8 c #410341034103", "[ c #292929",
"9 c #30C292482081", "} c #1C1C1C",
"0 c #30C234D338E3", "| c #9A9A9B",
"q c #79E77DF78617", "1 c #9C9C9E",
"w c #C71BC71BC71B", "2 c #949495",
"e c #71C675D671C6", "3 c #878787",
"r c #965892489658", "4 c #88A67D",
"t c #FFFFFFFFFFFF", "5 c #6D6D6D",
"y c #EFBEEFBEEFBE", "6 c #606060",
"u c #5144AAAA38E3", "7 c #545454",
"i c #A699FFFF8E38", "8 c #3F3F3F",
"p c #596559656185", "9 c #353535",
"a c #AEBA10401040", "0 c #2C2C2C",
"s c #E79D14511861", "a c #1F1F1F",
"d c #208104100000", "b c #44633A",
"f c #FFFF61856185", "c c #0D0D0D",
"g c #F7DE2CB22081", "d c #030303",
"h c #C71BAAAAA699", "e c #000000",
"j c #DF7D14511861", "f c #7AB765",
"k c #71C608200820", "g c #96B88B",
"l c #FFFF30C230C2", "h c #A0BE97",
"z c #E79D20811861", "i c #9EBC94",
"x c #79E714511861", "j c #91AF87",
"c c #28A204100000", "k c #84A37A",
"v c #EFBE18611861", "l c #7D9B73",
"b c #79E70C300820", "m c #75936B",
"n c #FFFFE38DE79D", "n c #6C8B62",
"m c #FFFF28A228A2", "o c #66845B",
"M c #E79D18611861", "p c #607E55",
"N c #8E381C711861", "q c #59774F",
"B c #596559655965", "r c #537149",
"V c #861749240820", "s c #4E6C43",
"C c #D75C24921040", "t c #46653C",
"Z c #B6DA10401040", "u c #405F36",
"A c #B6DA14511040", "v c #3B5931",
"S c #10403CF30000", "w c #35542B",
"D c #69A6C30B5144", "x c #538144",
"F c #CF3C96585144", "y c #70AD5B",
"G c #EFBE38E328A2", "z c #1C1C1D",
"H c #BEFB18611861", "A c #8F8F91",
"J c #410375D638E3", "B c #ADADAD",
"K c #30C28E381861", "C c #9A9A9A",
"L c #38E33CF34103", "D c #888888",
"P c #A69910401040", "E c #777777",
"I c #8E380C300820", "F c #666666",
"U c #CF3C14511040", "G c #749269",
"Y c #FFFF59655965", "H c #525252",
"T c #D75C41034103", "I c #474747",
"R c #965820811861", "J c #373737",
"E c #DF7D20812081", "K c #2D2D2D",
"W c #596508200820", "L c #262626",
"Q c #38E304100820", "M c #1D1D1D",
"! c #FFFF34D338E3", "N c #141414",
"~ c #8E3838E338E3", "O c #3D5B33",
"^ c #6185492428A2", "P c #020202",
"/ c #F7DE20812081", "Q c #050505",
"( c #8E388A288E38", "R c #9F9FA3",
") c #30C204100000", "S c #A9A9A9",
"_ c #104000000000", "T c #9D9D9D",
"` c #FFFFD34CD75C", "U c #828282",
"' c #FFFF20812081", "V c #727272",
"] c #28A220812081", "W c #5B5B5B",
"[ c #69A6A2895965", "X c #6D8B63",
"{ c #F7DE24922081", "Y c #414141",
"} c #492414511040", "Z c #303030",
"| c #AEBAAEBAAEBA", "` c #272727",
" . c #86170C300820", " . c #171717",
".. c #69A608200820", ".. c #39572F",
"X. c #104059650000", "+. c #040404",
"o. c #FFFF8A288E38", "@. c #060606",
"O. c #F7DE38E338E3", "#. c #070707",
"+. c #9E79EFBE8617", "$. c #080808",
"@. c #71C614511040", "%. c #111111",
"#. c #861786178617", "&. c #29292D",
"$. c #965810401040", "*. c #506E48",
"%. c #208151441040", "=. c #28282C",
"&. c #FFFF45144103", "-. c #28282B",
"*. c #D75C34D338E3", ";. c #1F1F22",
"=. c #FFFF49244924", ">. c #050506",
"-. c #9E791C712081", ",. c #79B765",
";. c #618565956185", "'. c #939393",
":. c #492404100820", "). c #A5A5A5",
">. c #38E35D7528A2", "!. c #999999",
",. c #C71BC30BC71B", "~. c #737373",
"<. c #8617E38D69A6", "{. c #696969",
"1. c #FFFF249228A2", "]. c #565656",
"2. c #69A628A228A2", "^. c #6A885F",
"3. c #FFFF65956185", "/. c #464646",
"4. c #C71B20812081", "(. c #3C3C3C",
"5. c #28A26DB60000", "_. c #232323",
"6. c #FFFF18611861", ":. c #1B1B1B",
"7. c #E79D1C711861", "<. c #090909",
"8. c #30C2492428A2", "[. c #37552C",
"9. c #FFFFF3CEEFBE", "}. c #181818",
"0. c #B6DAB6DAB6DA", "|. c #797979",
"q. c #FFFFA2899E79", "1. c #757575",
"w. c #E79D20812081", "2. c #6B6B6B",
"e. c #51445D750820", "3. c #6F6F6F",
"r. c #F7DE1C711861", "4. c #0F0F0F",
"t. c #618549240820", "5. c #1E1E1E",
"y. c #18616DB60000", "6. c #98B98C",
"u. c #9E7941031040", "7. c #ABABAB",
"i. c #A69934D31040", "8. c #8B8B8B",
"p. c #186120811040", "9. c #FF1818",
"a. c #BEFBC71B69A6", "0. c #5C5C5C",
"s. c #AEBA92485144", "a. c #67855D",
"d. c #D75C7DF74924", "b. c #424242",
"f. c #CF3C618538E3", "c. c #313131",
"g. c #AEBAF3CE8617", "d. c #202020",
"h. c #104018610820", "e. c #505050",
"j. c #F7DE1C712081", "f. c #DFDFDF",
"k. c #18610C300820", "g. c #F4F4F4",
"l. c #AEBAA289A699", "h. c #F1F1F1",
"z. c #BEFB45144103", "i. c #ECECEC",
"x. c #618561856185", "j. c #BFBFBF",
"c. c #104004100820", "k. c #454546",
"v. c #EFBE28A228A2", "l. c #A6C49C",
"b. c #69A610401040", "m. c #9F9F9F",
"n. c #79E718611861", "n. c #7D7D7D",
"m. c #51442CB228A2", "o. c #717171",
"M. c #79E779E779E7", "p. c #4C0000",
"N. c #F7DE30C230C2", "q. c #4D4D4D",
"B. c #F7DE18611861", "r. c #64835A",
"V. c #410304100820", "s. c #3D3D3D",
"C. c #E79D34D330C2", "t. c #343434",
"Z. c #C71B18611861", "u. c #242424",
"A. c #F7DE28A22081", "v. c #1A1A1A",
"S. c #DF7DA289A699", "w. c #131313",
"D. c #F7DE28A228A2", "x. c #0A0A0A",
"F. c #E79D30C230C2", "y. c #585858",
"G. c #D75CD34CD75C", "z. c #EAEAEA",
"H. c #EFBE41034103", "A. c #FFFFFF",
"J. c #C71B14511040", "B. c #FEFEFE",
"K. c #000014510000", "C. c #FBFBFB",
"L. c #514408200820", "D. c #E9E9E9",
"P. c #C71B59655965", "E. c #A0BE96",
"I. c #B6DA249228A2", "F. c #919191",
"U. c #492410401040", "G. c #818181",
"Y. c #208110401040", "H. c #494949",
"T. c #082010400820", "I. c #617F57",
"R. c #FFFF7DF779E7", "J. c #282828",
"E. c #618514511040", "K. c #E6E6E6",
"W. c #AEBA45144103", "L. c #F5F5F5",
"Q. c #000008200000", "M. c #E8E8E8",
"!. c #DF7D2CB22081", "N. c #D8D8D8",
"~. c #59655D755965", "O. c #4E4E51",
"^. c #71C671C671C6", "P. c #A3A3A3",
"/. c #AEBAAAAAAEBA", "Q. c #9BBA91",
"(. c #69A66DB671C6", "R. c #8A8A8A",
"). c #28A282070820", "S. c #7B7B7B",
"_. c #71C6CB2B5965", "T. c #707070",
"`. c #A699FBEE8E38", "U. c #5E7D54",
"'. c #69A6C71B5144", "V. c #363636",
"]. c #E79DE79DE79D", "W. c #555555",
"[. c #FFFFFBEEFFFF", "X. c #E4E4E4",
"{. c #BEFBBEFBBEFB", "Y. c #D9D9D9",
"}. c #8E388E389658", "Z. c #CECECE",
"|. c #A699A699A699", "`. c #747474",
" X c #9E79A2899E79", " + c #94B38A",
".X c #DF7DDF7DDF7D", ".+ c #5C7A51",
"XX c #F7DEF7DEF7DE", "++ c #0E0E0E",
"oX c #861782078617", "@+ c #E1E1E1",
"OX c #71C6D34C5965", "#+ c #FAFAFA",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "$+ c #D0D0D0",
"%+ c #77B463",
"&+ c #92B387",
"*+ c #9BB991",
"=+ c #92B188",
"-+ c #89A77F",
";+ c #809E75",
">+ c #7B9971",
",+ c #547249",
"'+ c #4D6B43",
")+ c #47663D",
"!+ c #436139",
"~+ c #3C5B32",
"{+ c #37562D",
"]+ c #CAE8C0",
"^+ c #D9F8CF",
"/+ c #C9E7BF",
"(+ c #BDDCB3",
"_+ c #6CAA58",
":+ c #484849",
"<+ c #929292",
"[+ c #8EAD84",
"}+ c #646464",
"|+ c #56754C",
"1+ c #515151",
"2+ c #EEEEEE",
"3+ c #D6D6D6",
"4+ c #C5C5C5",
"5+ c #9FBD95",
"6+ c #404040",
"7+ c #8D8D8D",
"8+ c #8AA87F",
"9+ c #676767",
"0+ c #5F5F5F",
"a+ c #506E45",
"b+ c #D3D3D3",
"c+ c #E7E7E7",
"d+ c #BDBDBD",
"e+ c #9EBD94",
"f+ c #898989",
"g+ c #86A57C",
"h+ c #636363",
"i+ c #48673E",
"j+ c #161616",
"k+ c #101010",
"l+ c #4E4E4E",
"m+ c #CCCCCC",
"n+ c #E0E0E0",
"o+ c #C8C8C8",
"p+ c #9AB990",
"q+ c #868686",
"r+ c #858585",
"s+ c #84A279",
"t+ c #3B3B3B",
"u+ c #0C0C0C",
"v+ c #010101",
"w+ c #4F4F4F",
"x+ c #C3C3C3",
"y+ c #96B58C",
"z+ c #333333",
"A+ c #809F76",
"B+ c #5A5A5A",
"C+ c #3A3A3A",
"D+ c #3E3E3E",
"E+ c #5B7951",
"F+ c #484848",
"G+ c #DEDEDE",
"H+ c #BABABA",
"I+ c #989898",
"J+ c #92B088",
"K+ c #7E9C73",
"L+ c #CACACA",
"M+ c #D1D1D1",
"N+ c #CBCBCB",
"O+ c #D7D7D7",
"P+ c #C9C9C9",
"Q+ c #BEDCB4",
"R+ c #EDEDED",
"S+ c #E5E5E5",
"T+ c #8EAC84",
"U+ c #7C7C7C",
"V+ c #2B2B2B",
"W+ c #DBF9D0",
"X+ c #F2F2F2",
"Y+ c #B3B3B3",
"Z+ c #86A47B",
"`+ c #2F2F30",
" @ c #191919",
".@ c #F3F3F3",
"+@ c #FCFCFC",
"@@ c #F9F9F9",
"#@ c #EBEBEB",
"$@ c #C7E6BD",
"%@ c #A8A8A8",
"&@ c #5C7A52",
"*@ c #54724A",
"=@ c #4D6B42",
"-@ c #44623A",
";@ c #79976F",
">@ c #6B8961",
",@ c #2A2A2A",
"'@ c #2E2E2F",
")@ c #535353",
"!@ c #EFEFEF",
"~@ c #D5D5D5",
"{@ c #CDCDCD",
"]@ c #C6C6C6",
"^@ c #AFCDA4",
"/@ c #A4A4A4",
"(@ c #9C9C9C",
"_@ c #626262",
":@ c #66845C",
"<@ c #4B4B4C",
"[@ c #323232",
"}@ c #212121",
"|@ c #CFCFCF",
"1@ c #C0C0C0",
"2@ c #B6B6B6",
"3@ c #ABC9A0",
"4@ c #A7A7A7",
"5@ c #9E9E9E",
"6@ c #969696",
"7@ c #8F8F8F",
"8@ c #6E6E6E",
"9@ c #58764E",
"0@ c #5E7C53",
"a@ c #121212",
"b@ c #F8F8F8",
"c@ c #E3E3E3",
"d@ c #C2C2C2",
"e@ c #B1B1B1",
"f@ c #A7C59C",
"g@ c #A1A1A1",
"h@ c #7E7E7E",
"i@ c #416037",
"j@ c #679C56",
"k@ c #87A57D",
"l@ c #DBDBDB",
"m@ c #AAAAAA",
"n@ c #A2C098",
"o@ c #7F7F7F",
"p@ c #679457",
"q@ c #222222",
"r@ c #BCBCBC",
"s@ c #B5B5B5",
"t@ c #949494",
"u@ c #656565",
"v@ c #2A2A2B",
"w@ c #6D6D6E",
"x@ c #B7B7B7",
"y@ c #D2F0C8",
"z@ c #AFAFAF",
"A@ c #98B78E",
"B@ c #575757",
"C@ c #4C4C4C",
"D@ c #F6F6F6",
"E@ c #D7F6CD",
"F@ c #B8B8B8",
"G@ c #B0B0B0",
"H@ c #8E8E8E",
"I@ c #616161",
"J@ c #669356",
"K@ c #6C8A61",
"L@ c #628058",
"M@ c #5A784F",
"N@ c #527148",
"O@ c #4C6B42",
"P@ c #45643B",
"Q@ c #3E5C34",
"R@ c #4F6E45",
"S@ c #739169",
"T@ c #AECCA4",
"U@ c #ADCCA3",
"V@ c #A0BF96",
"W@ c #9CBA92",
"X@ c #97B68D",
"Y@ c #78966D",
"Z@ c #638159",
"`@ c #537249",
" # c #506F46",
".# c #787878",
"+# c #5C7B52",
"@# c #0B0B0B",
"## c #252525",
"$# c #3A5930",
"%# c #517E41",
" ",
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . ", " . . . . . . ",
" . . . . . . ", " . . . . . . ",
" . . . . . . ", " . . . . . . ",
". . o X O + @ # # # # # # $ % X . . ", " . . . . . . ",
". . & * $ = - . X X X X X X X X . ; ; o . . ", " . . . . . . ",
". . : > - , X X . X X X X X X X X . X o O , X . . ", " . . + @ # $ % & * = - ; . . ",
". . < 1 , X X X X . X X X X X X X X . X X X o X 2 . . ", " . . > , ' ) ! ~ { ] ^ / ( _ : < [ . . ",
". . . . . . . . 3 % 4 . . . . . . . . . . . . . . . . . . . . . % 5 . . . . . . . . . . . ", " . . } | 1 2 3 4 5 6 7 @ 8 9 0 a b c d e e . . ",
". % 2 X X X X X X X . X X X X X X X X . X 6 7 ; 7 ; = 8 9 0 0 0 0 . ", " . . . . . . . . . . . . f g h i j k l m n o p q r s t u v w w w x y . . . . . . . . . . . . ",
". < % X X X X X X X X . X X X X X X X X . X q w w w w w e % X X X X . ", " . . z A B C D E F G H I 8 J K L M N O d e e e P Q e . . ",
". < 6 . X X X X X X X X . X X X X X X X X . X r t t t t t y u X X X X . ", " . . a R S T U V F W X @ Y > Z ` a .c ..e e +.@.#.$.%.&.*.=.-.;.>. . ",
". X o X . X X X X X X X X . X X X X X X X X . X r t t t t t t i p X X X . ", " . ,.'.).!.D ~.{.6 ].^./.(.9 K _.:.N <.[.e }.W |.1.2.3.4.w e e e e . ",
". O : X . X X X X a s d X . X X X X X X X X . X r t t t t t f g h : X X . ", " . 5.6.7.T 8.|.9.9.0.H a.b.> c.[ d. .4.@.w e e.f.g.h.i.j.9.9.e e e e . ",
". X < X X . X X X X s j k X . X X X X X X X X . X r t t t t t l z x > X X . ", " . k.l.m.8.n.o.9.9.p.q.r.s.t.0 u.v.w.x.P w e y.z.A.B.C.D.9.9.p.e e e . ",
". X O X X . X X X c v j b X . X X X X X X X X . X r t t t t n m M N B & X . ", " . 1 E.F.G.1.5 9.9.p.H.I.> Z J.d. .4.#.e w e ].K.A.L.M.N.9.9.p.e e e . ",
". . . . . . . . . . . . V C Z A S . . . . . . . . . . . D i i i i F G A H J K . . . . . . ", " . O.P.Q.R.S.T.{.9.9.9./.U.V.0 u.} w.x.d e w e W.X.A.z.Y.Z.9.9.9.e e e . ",
". L X X X . X X X Z P I U X . X X X X X X X X . X r t t t t Y T R E 8 @ X . ", " . `.!. +U `., 9.9.9.9.p..+Z ` a .++@.e e w e 7 @+#+@+$+9.9.9.9.p.e e . ",
". : X X X . X X X j W Q v X . X X X X X X X X . X r t t t t ! ~ ^ / ; ( , . ", " . . . . . . %+&+*+=+-+;+>+9.p.p.9.p.q ,+'+)+!+~+{+w w w w n ]+^+/+(+9.p.p.9.p.w _+. . . . . ",
". X X X X . X X ) v _ X v Q . X X X X X X X X . X r t t t ` ' ] [ { } | : . ", " . :+C <+[+E , }+9.p.@ 9.p.|+[ d. .4.@.e e e w e 1+Y.2+3+4+9.p.5+9.p.e e . ",
". X X X X . X X .U X X j ..X.X X X X X X X X . X r t t t o.O., +.! @.#.: . ", " . 6+7+R.8+o.9+0+9.p./.9.p.a+d.}.%.<.P e e e w e e.b+c+Z.d+9.p.e+9.p.5.e . ",
". X X X X . X X U Z X X U $.%.; * ; * * ; ; - K ; | t t t &.*.; i =.-.;.< . ", " . J 3 f+g+5 h+9.9.p.Y 9.9.i+j+k+x.+.e e e e w e l+m+n+o+9.9.p.p+9.9.} e . ",
". X X X X . X X v :.X X a H >.w ,.w w w w w w <.w y t t t 1.2.$ i 3.4.# : . ", " . t.q+r+s+{.0+9.p.p.t+9.9.p.u+$.+.v+e e e e w e w+b+f.x+9.p.p.y+9.9.p.e . ",
". X X X ) 5.X ) 6.X X X ..7.8.t t t t t t t t i t ` 9.t ` 6., 0.i q.w.7 : . ", " . z+r+! A+}+B+9.p.8 c.a 9.p.C+Y D+C+D+z+/.c.E+F+m.D.G+H+9.p.I+J+~.9.p.e . ",
". . . . % . e.r.t.y.u.i.X . . 5.r.p.i i i i i i i i i a.{ s.+.d.f.X i i g.r.h.5 . . . . . ", " . t.U S.K+6 9.9.p.t+K M 9.p.L+$+$+M+m+N+O+P+Q+G+R+S+o+9.9.p.<+T+3.9.p.e . ",
". = X v v s _ U .X X X X j.k.t t t t t t t t i m ' s l.&.z.x.t i t ' c.X . ", " . z+U+9.>+0.9.9.p.J V+} 9.p.g.B.B.B.B.B.B.C.W+X+9.L+Y+9.9.p.8.Z+}+9.p.e . ",
". 6 W 6.Q 6...s c X X X X v.b.y t t t t t t t i 6.} 6.n.m m.M.t i t N...X . ", " . `+9.9.9.y.9.p.p.z+L @9.p..@B.B.+@@@X+#@n+$@9.9.9.%@9.p.p.G.l y.9.p.e . ",
"r.B.6.6.6.6.V.X 7.v U X X X X X C.Z.6.1.m m m ' { { A.S.X D.v F.: G.t i t H.J.6.v v v v . ", " . 9.9.9.9.9.9.9.p.9.p.9.p.&@*@=@-@9.p.9.9.9.9.9.9.9.9.9.9.p.9.p.9.p.j Z+;@>@9.p.9.9.9.9.9.. ",
"K.X X X X X X X u.v L.X X X X X P.v I.L.U.} } Y., & T.: ,.R.v E.7 t t i y W.v P L.Q Q Q Q.", " . p.p.p.p.p.p.p.p.9.9.9.p.V.,@d.N 9.9.9.p.p.p.p.p.p.p.p.p.p.9.9.9.p.G.3.G C+9.9.9.p.p.p.p.. ",
". & , X . X X X X X X X r !., ~.t t t t t t i t t t ^.& /.t t i ,.: U X X X X X X.", " . '@)@n 9.p.p.Z L :.k+k+9.p.p.!@f.~@{@]@d+^@B /@(@9.p.p.E _@:@a e 9.p.p. . ",
". o < X . X X X X X X X r i 7 t t t t t t t i t t t t t t t t i (.X X X . ", " . <@a.I p.[@,@}@}.++4.-+p.C.M.Y.|@o+1@2@3@4@5@6@7@p.S.8@W.9@$.e e p. . ",
". X X . X X X X X X X r i t t t t t t t t i t t t t t t t t D , X X X . ", " . } 0@s.t.[ d. @a@x.++4 h.b@c@b+P+d@H+e@f@g@I+F.D h@T.0.t.i@P e e e . ",
". . . . 3 3 3 . . % ).).).).).)._.i i i i i i i i i i i i i i i i `.'.% . . . . . . . . . ", " . j@(.V+ @%.u+<.Q u+k@h.X+l@m+x+H+Y+m@n@C F.f+o@T.F H } [.e e e e . ",
". X X X X . - r | | | | | ].i t t t t t t t t i t t t t t [.{.7 . X X X X . ", " . @9 c.p@t+` } %.%.k+4.q@e+b@X+3+]@r@s@B P.i t@R.! 3.W e.K x.w e e e e . ",
". X X X X . , $ w t t t t t i t t t t t t t t i t t t t t }.7 X . X X X X . ", " . [@u@0.>@s.v@w@m@Y+).m.x@y@B.S+{@1@2@z@4@5@A@8.n.8@B+V.q@<.e w e e e e . ",
". X X X X . X X 1 |.t t t t i t t t t t t t t i t t t ].}., X X . X X X X . ", " . 0 B@C@I.t.L }., |@K.g.D@E@G+x+F@G@4@m.I+H@8+`.I@W.Z @.e e e w e e e e . ",
". X X X X . X X X X 6 X.XXXi t t t t t t t t i XX.X X6 X X X X . X X X X . ", " . . . . . . J@K@L@M@N@O@P@Q@R@S@5+T@U@3@V@W@X@=+T+8+s+Y@S@Z@`@Q@w w w w w w w w _+. . . . . ",
". X X X X . X X X X X X = oXOXw w t t t t w w OXoX= X X X X X X . X X X X . ", " . J.@ V. #d. @w.u+Q #.v.C@A+U ! U+.#o.2.F W +#Z .@.v+e e e e w e e e e . ",
". X X X X . X X X X X X X X % 7 ; ;.;.;.;.; ; % X X X X X X X X . X X X X . ", " . v.0 }.i@++@##.+.v+e e e w @} q@` ##_.M .$#e e e e e e e e w e e e e . ",
". X X X X 3 X X X X X X X X . X X X X X X X X . X X X X X X X X . X X X X . ", " . P P e %#e e e e e e e e %#e e e e e e e e %#e e e e e e e e %#e e e e . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . ", " . . . . . . ",
" . . . . . . ", " . . . . . . ",
" . . . . . . ", " . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; " . . . . . . ",
" . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
" "};

View File

@@ -42,6 +42,10 @@ typedef struct _Panel {
WMSlider *vsli; WMSlider *vsli;
WMSlider *hsli; WMSlider *hsli;
WMFrame *resF;
WMSlider *resS;
WMLabel *resL;
WMFrame *maxiF; WMFrame *maxiF;
WMButton *miconB; WMButton *miconB;
WMButton *mdockB; WMButton *mdockB;
@@ -93,9 +97,31 @@ sliderCallback(WMWidget *w, void *data)
} }
static void
resistanceCallback(WMWidget *w, void *data)
{
_Panel *panel = (_Panel*)data;
char buffer[64];
int i;
i = WMGetSliderValue(panel->resS);
if (i == 0)
WMSetLabelText(panel->resL, "OFF");
else {
sprintf(buffer, "%i", i);
WMSetLabelText(panel->resL, buffer);
}
}
static int static int
getPlacement(char *str) getPlacement(char *str)
{ {
if (!str)
return 0;
if (strcasecmp(str, "auto")==0 || strcasecmp(str, "smart")==0) if (strcasecmp(str, "auto")==0 || strcasecmp(str, "smart")==0)
return 0; return 0;
else if (strcasecmp(str, "random")==0) else if (strcasecmp(str, "random")==0)
@@ -140,6 +166,10 @@ showData(_Panel *panel)
sliderCallback(NULL, panel); sliderCallback(NULL, panel);
x = GetIntegerForKey("EdgeResistance");
WMSetSliderValue(panel->resS, x);
resistanceCallback(NULL, panel);
WMSetButtonSelected(panel->tranB, GetBoolForKey("OpenTransientOnOwnerWorkspace")); WMSetButtonSelected(panel->tranB, GetBoolForKey("OpenTransientOnOwnerWorkspace"));
WMSetButtonSelected(panel->opaqB, GetBoolForKey("OpaqueMove")); WMSetButtonSelected(panel->opaqB, GetBoolForKey("OpaqueMove"));
@@ -166,6 +196,7 @@ storeData(_Panel *panel)
sprintf(y, "%i", WMGetSliderValue(panel->vsli)); sprintf(y, "%i", WMGetSliderValue(panel->vsli));
arr = PLMakeArrayFromElements(PLMakeString(x), PLMakeString(y), NULL); arr = PLMakeArrayFromElements(PLMakeString(x), PLMakeString(y), NULL);
SetObjectForKey(arr, "WindowPlaceOrigin"); SetObjectForKey(arr, "WindowPlaceOrigin");
SetIntegerForKey(WMGetSliderValue(panel->resS), "EdgeResistance");
PLRelease(arr); PLRelease(arr);
} }
@@ -187,27 +218,27 @@ createPanel(Panel *p)
/************** Window Placement ***************/ /************** Window Placement ***************/
panel->placF = WMCreateFrame(panel->frame); panel->placF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->placF, 270, 150); WMResizeWidget(panel->placF, 270, 110);
WMMoveWidget(panel->placF, 20, 15); WMMoveWidget(panel->placF, 20, 10);
WMSetFrameTitle(panel->placF, _("Window Placement")); WMSetFrameTitle(panel->placF, _("Window Placement"));
panel->placP = WMCreatePopUpButton(panel->placF); panel->placP = WMCreatePopUpButton(panel->placF);
WMResizeWidget(panel->placP, 195, 20); WMResizeWidget(panel->placP, 120, 20);
WMMoveWidget(panel->placP, 35, 20); WMMoveWidget(panel->placP, 15, 20);
WMAddPopUpButtonItem(panel->placP, _("Automatic")); WMAddPopUpButtonItem(panel->placP, _("Automatic"));
WMAddPopUpButtonItem(panel->placP, _("Random")); WMAddPopUpButtonItem(panel->placP, _("Random"));
WMAddPopUpButtonItem(panel->placP, _("Manual")); WMAddPopUpButtonItem(panel->placP, _("Manual"));
WMAddPopUpButtonItem(panel->placP, _("Cascade")); WMAddPopUpButtonItem(panel->placP, _("Cascade"));
panel->porigL = WMCreateLabel(panel->placF); panel->porigL = WMCreateLabel(panel->placF);
WMResizeWidget(panel->porigL, 118, 32); WMResizeWidget(panel->porigL, 138, 32);
WMMoveWidget(panel->porigL, 5, 60); WMMoveWidget(panel->porigL, 5, 45);
WMSetLabelTextAlignment(panel->porigL, WACenter); WMSetLabelTextAlignment(panel->porigL, WACenter);
WMSetLabelText(panel->porigL, _("Placement Origin")); WMSetLabelText(panel->porigL, _("Placement Origin"));
panel->porigvL = WMCreateLabel(panel->placF); panel->porigvL = WMCreateLabel(panel->placF);
WMResizeWidget(panel->porigvL, 70, 20); WMResizeWidget(panel->porigvL, 80, 20);
WMMoveWidget(panel->porigvL, 25, 95); WMMoveWidget(panel->porigvL, 30, 75);
WMSetLabelTextAlignment(panel->porigvL, WACenter); WMSetLabelTextAlignment(panel->porigvL, WACenter);
color = WMCreateRGBColor(scr, 0x5100, 0x5100, 0x7100, True); color = WMCreateRGBColor(scr, 0x5100, 0x5100, 0x7100, True);
@@ -219,15 +250,15 @@ createPanel(Panel *p)
swidth = WidthOfScreen(DefaultScreenOfDisplay(WMScreenDisplay(scr))); swidth = WidthOfScreen(DefaultScreenOfDisplay(WMScreenDisplay(scr)));
sheight = HeightOfScreen(DefaultScreenOfDisplay(WMScreenDisplay(scr))); sheight = HeightOfScreen(DefaultScreenOfDisplay(WMScreenDisplay(scr)));
if (120*sheight/swidth < 80*swidth/sheight) { if (120*sheight/swidth < 70*swidth/sheight) {
width = 80*swidth/sheight; width = 70*swidth/sheight;
height = 80; height = 70;
} else { } else {
height = 120*sheight/swidth; height = 120*sheight/swidth;
width = 120; width = 120;
} }
WMResizeWidget(panel->porigF, width, height); WMResizeWidget(panel->porigF, width, height);
WMMoveWidget(panel->porigF, 125+(120-width)/2, 45+(80-height)/2); WMMoveWidget(panel->porigF, 135+(120-width)/2, 20+(70-height)/2);
panel->porigW = WMCreateLabel(panel->porigF); panel->porigW = WMCreateLabel(panel->porigF);
WMResizeWidget(panel->porigW, THUMB_SIZE, THUMB_SIZE); WMResizeWidget(panel->porigW, THUMB_SIZE, THUMB_SIZE);
@@ -237,14 +268,14 @@ createPanel(Panel *p)
panel->hsli = WMCreateSlider(panel->placF); panel->hsli = WMCreateSlider(panel->placF);
WMResizeWidget(panel->hsli, width, 12); WMResizeWidget(panel->hsli, width, 12);
WMMoveWidget(panel->hsli, 125+(120-width)/2, 45+(80-height)/2+height+2); WMMoveWidget(panel->hsli, 135+(120-width)/2, 20+(70-height)/2+height+2);
WMSetSliderAction(panel->hsli, sliderCallback, panel); WMSetSliderAction(panel->hsli, sliderCallback, panel);
WMSetSliderMinValue(panel->hsli, 0); WMSetSliderMinValue(panel->hsli, 0);
WMSetSliderMaxValue(panel->hsli, swidth); WMSetSliderMaxValue(panel->hsli, swidth);
panel->vsli = WMCreateSlider(panel->placF); panel->vsli = WMCreateSlider(panel->placF);
WMResizeWidget(panel->vsli, 12, height); WMResizeWidget(panel->vsli, 12, height);
WMMoveWidget(panel->vsli, 125+(120-width)/2+width+2, 45+(80-height)/2); WMMoveWidget(panel->vsli, 135+(120-width)/2+width+2, 20+(70-height)/2);
WMSetSliderAction(panel->vsli, sliderCallback, panel); WMSetSliderAction(panel->vsli, sliderCallback, panel);
WMSetSliderMinValue(panel->vsli, 0); WMSetSliderMinValue(panel->vsli, 0);
WMSetSliderMaxValue(panel->vsli, sheight); WMSetSliderMaxValue(panel->vsli, sheight);
@@ -255,13 +286,13 @@ createPanel(Panel *p)
/************** Opaque Move ***************/ /************** Opaque Move ***************/
panel->opaqF = WMCreateFrame(panel->frame); panel->opaqF = WMCreateFrame(panel->frame);
WMMoveWidget(panel->opaqF, 300, 15); WMResizeWidget(panel->opaqF, 205, 110);
WMResizeWidget(panel->opaqF, 205, 125); WMMoveWidget(panel->opaqF, 300, 10);
WMSetFrameTitle(panel->opaqF, _("Opaque Move")); WMSetFrameTitle(panel->opaqF, _("Opaque Move"));
panel->opaqB = WMCreateButton(panel->opaqF, WBTToggle); panel->opaqB = WMCreateButton(panel->opaqF, WBTToggle);
WMResizeWidget(panel->opaqB, 64, 64); WMResizeWidget(panel->opaqB, 64, 64);
WMMoveWidget(panel->opaqB, 70, 35); WMMoveWidget(panel->opaqB, 70, 25);
WMSetButtonImagePosition(panel->opaqB, WIPImageOnly); WMSetButtonImagePosition(panel->opaqB, WIPImageOnly);
path = LocateImage(NON_OPAQUE_MOVE_PIXMAP); path = LocateImage(NON_OPAQUE_MOVE_PIXMAP);
@@ -291,33 +322,53 @@ createPanel(Panel *p)
/**************** Account for Icon/Dock ***************/ /**************** Account for Icon/Dock ***************/
panel->maxiF = WMCreateFrame(panel->frame); panel->maxiF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->maxiF, 205, 70); WMResizeWidget(panel->maxiF, 205, 95);
WMMoveWidget(panel->maxiF, 300, 145); WMMoveWidget(panel->maxiF, 300, 125);
WMSetFrameTitle(panel->maxiF, _("When maximizing...")); WMSetFrameTitle(panel->maxiF, _("When maximizing..."));
panel->miconB = WMCreateSwitchButton(panel->maxiF); panel->miconB = WMCreateSwitchButton(panel->maxiF);
WMResizeWidget(panel->miconB, 185, 20); WMResizeWidget(panel->miconB, 185, 30);
WMMoveWidget(panel->miconB, 10, 15); WMMoveWidget(panel->miconB, 10, 18);
WMSetButtonText(panel->miconB, _("...do not resize over icons")); WMSetButtonText(panel->miconB, _("...do not cover icons"));
panel->mdockB = WMCreateSwitchButton(panel->maxiF); panel->mdockB = WMCreateSwitchButton(panel->maxiF);
WMResizeWidget(panel->mdockB, 185, 20); WMResizeWidget(panel->mdockB, 185, 30);
WMMoveWidget(panel->mdockB, 10, 40); WMMoveWidget(panel->mdockB, 10, 53);
WMSetButtonText(panel->mdockB, _("...do not resize over dock")); WMSetButtonText(panel->mdockB, _("...do not cover dock"));
WMMapSubwidgets(panel->maxiF); WMMapSubwidgets(panel->maxiF);
/**************** Transients On Top ****************/ /**************** Edge Resistance ****************/
panel->resF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->resF, 270, 45);
WMMoveWidget(panel->resF, 20, 125);
WMSetFrameTitle(panel->resF, _("Edge Resistance"));
panel->resS = WMCreateSlider(panel->resF);
WMResizeWidget(panel->resS, 200, 15);
WMMoveWidget(panel->resS, 10, 20);
WMSetSliderMinValue(panel->resS, 0);
WMSetSliderMaxValue(panel->resS, 200);
WMSetSliderAction(panel->resS, resistanceCallback, panel);
panel->resL = WMCreateLabel(panel->resF);
WMResizeWidget(panel->resL, 40, 15);
WMMoveWidget(panel->resL, 220, 20);
WMMapSubwidgets(panel->resF);
/**************** Transients on Parent Workspace ****************/
panel->tranF = WMCreateFrame(panel->frame); panel->tranF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->tranF, 270, 40); WMResizeWidget(panel->tranF, 270, 40);
WMMoveWidget(panel->tranF, 20, 175); WMMoveWidget(panel->tranF, 20, 180);
panel->tranB = WMCreateSwitchButton(panel->tranF); panel->tranB = WMCreateSwitchButton(panel->tranF);
WMMoveWidget(panel->tranB, 10, 5); WMMoveWidget(panel->tranB, 10, 5);
WMResizeWidget(panel->tranB, 250, 30); WMResizeWidget(panel->tranB, 250, 30);
WMSetButtonText(panel->tranB, _("Open transients in same workspace as their owners")); WMSetButtonText(panel->tranB, _("Open dialogs in same workspace as their owners"));
WMMapSubwidgets(panel->tranF); WMMapSubwidgets(panel->tranF);

668
WPrefs.app/editmenu.c Normal file
View File

@@ -0,0 +1,668 @@
/* editmenu.c - editable menus
*
* WPrefs - Window Maker Preferences Program
*
* Copyright (c) 1999 Alfredo K. Kojima
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#include <WINGsP.h>
#include <WUtil.h>
#include <stdlib.h>
#include <assert.h>
#include <ctype.h>
#include "editmenu.h"
typedef struct W_EditMenuItem {
W_Class widgetClass;
WMView *view;
struct W_EditMenu *menu;
char *label;
WMTextField *textField;
struct W_EditMenu *submenu; /* if it's a cascade, NULL otherwise */
} EditMenuItem;
typedef struct W_EditMenu {
W_Class widgetClass;
WMView *view;
struct W_EditMenu *parent;
char *label;
int itemCount;
int itemsAlloced;
struct W_EditMenuItem **items;
int titleHeight;
int itemHeight;
struct W_EditMenu *next;
struct W_EditMenu *prev;
/* item dragging */
int draggedItem;
int dragX, dragY;
} EditMenu;
/******************** WEditMenuItem ********************/
static void destroyEditMenuItem(WEditMenuItem *iPtr);
static void paintEditMenuItem(WEditMenuItem *iPtr);
static void handleItemEvents(XEvent *event, void *data);
static void handleItemActionEvents(XEvent *event, void *data);
static W_ViewProcedureTable WEditMenuItemViewProcedures = {
NULL,
NULL,
NULL
};
static W_Class EditMenuItemClass = 0;
W_Class
InitEditMenuItem(WMScreen *scr)
{
/* register our widget with WINGs and get our widget class ID */
if (!EditMenuItemClass) {
EditMenuItemClass = W_RegisterUserWidget(&WEditMenuItemViewProcedures);
}
return EditMenuItemClass;
}
WEditMenuItem*
WCreateEditMenuItem(WMWidget *parent, char *title)
{
WEditMenuItem *iPtr;
if (!EditMenuItemClass)
InitEditMenuItem(WMWidgetScreen(parent));
iPtr = wmalloc(sizeof(WEditMenuItem));
memset(iPtr, 0, sizeof(WEditMenuItem));
iPtr->widgetClass = EditMenuItemClass;
iPtr->view = W_CreateView(W_VIEW(parent));
if (!iPtr->view) {
free(iPtr);
return NULL;
}
iPtr->view->self = iPtr;
iPtr->label = wstrdup(title);
WMCreateEventHandler(iPtr->view, ExposureMask|StructureNotifyMask,
handleItemEvents, iPtr);
WMCreateEventHandler(iPtr->view, ButtonPressMask, handleItemActionEvents,
iPtr);
return iPtr;
}
static void
paintEditMenuItem(WEditMenuItem *iPtr)
{
WMScreen *scr = WMWidgetScreen(iPtr);
WMColor *black = scr->black;
Window win = W_VIEW(iPtr)->window;
int w = W_VIEW(iPtr)->size.width;
int h = WMFontHeight(scr->normalFont) + 6;
if (!iPtr->view->flags.realized)
return;
XClearWindow(scr->display, win);
W_DrawRelief(scr, win, 0, 0, w+1, h, WRRaised);
WMDrawString(scr, win, W_GC(black), scr->normalFont, 5, 3, iPtr->label,
strlen(iPtr->label));
}
static void
handleItemEvents(XEvent *event, void *data)
{
WEditMenuItem *iPtr = (WEditMenuItem*)data;
switch (event->type) {
case Expose:
if (event->xexpose.count!=0)
break;
paintEditMenuItem(iPtr);
break;
case DestroyNotify:
destroyEditMenuItem(iPtr);
break;
}
}
static void
handleItemActionEvents(XEvent *event, void *data)
{
WEditMenuItem *iPtr = (WEditMenuItem*)data;
switch (event->type) {
case ButtonPress:
break;
}
}
static void
destroyEditMenuItem(WEditMenuItem *iPtr)
{
if (iPtr->label)
free(iPtr->label);
free(iPtr);
}
/******************** WEditMenu *******************/
static WEditMenu *EditMenuList = NULL;
static void destroyEditMenu(WEditMenu *mPtr);
static void paintEditMenu(WEditMenu *mPtr, int y);
static void updateMenuContents(WEditMenu *mPtr);
static void handleEvents(XEvent *event, void *data);
static void handleActionEvents(XEvent *event, void *data);
static void handleItemDrag(XEvent *event, void *data);
static W_ViewProcedureTable WEditMenuViewProcedures = {
NULL,
NULL,
NULL
};
static W_Class EditMenuClass = 0;
W_Class
InitEditMenu(WMScreen *scr)
{
/* register our widget with WINGs and get our widget class ID */
if (!EditMenuClass) {
EditMenuClass = W_RegisterUserWidget(&WEditMenuViewProcedures);
}
return EditMenuClass;
}
typedef struct {
int flags;
int window_style;
int window_level;
int reserved;
Pixmap miniaturize_pixmap; /* pixmap for miniaturize button */
Pixmap close_pixmap; /* pixmap for close button */
Pixmap miniaturize_mask; /* miniaturize pixmap mask */
Pixmap close_mask; /* close pixmap mask */
int extra_flags;
} GNUstepWMAttributes;
#define GSWindowStyleAttr (1<<0)
#define GSWindowLevelAttr (1<<1)
static void
writeGNUstepWMAttr(WMScreen *scr, Window window, GNUstepWMAttributes *attr)
{
unsigned long data[9];
/* handle idiot compilers where array of CARD32 != struct of CARD32 */
data[0] = attr->flags;
data[1] = attr->window_style;
data[2] = attr->window_level;
data[3] = 0; /* reserved */
/* The X protocol says XIDs are 32bit */
data[4] = attr->miniaturize_pixmap;
data[5] = attr->close_pixmap;
data[6] = attr->miniaturize_mask;
data[7] = attr->close_mask;
data[8] = attr->extra_flags;
XChangeProperty(scr->display, window, scr->attribsAtom, scr->attribsAtom,
32, PropModeReplace, (unsigned char *)data, 9);
}
static void
realizeObserver(void *self, WMNotification *not)
{
WEditMenu *menu = (WEditMenu*)self;
GNUstepWMAttributes attribs;
memset(&attribs, 0, sizeof(GNUstepWMAttributes));
attribs.flags = GSWindowStyleAttr|GSWindowLevelAttr;
attribs.window_style = WMBorderlessWindowMask;
attribs.window_level = WMSubmenuWindowLevel;
writeGNUstepWMAttr(WMWidgetScreen(menu), menu->view->window, &attribs);
}
WEditMenu*
WCreateEditMenu(WMScreen *scr, char *title)
{
WEditMenu *mPtr;
if (!EditMenuClass)
InitEditMenu(scr);
mPtr = wmalloc(sizeof(WEditMenu));
memset(mPtr, 0, sizeof(WEditMenu));
mPtr->widgetClass = EditMenuClass;
mPtr->view = W_CreateTopView(scr);
if (!mPtr->view) {
free(mPtr);
return NULL;
}
mPtr->view->self = mPtr;
WMAddNotificationObserver(realizeObserver, mPtr,
WMViewRealizedNotification, mPtr->view);
W_SetViewBackgroundColor(mPtr->view, mPtr->view->screen->darkGray);
mPtr->label = wstrdup(title);
mPtr->itemsAlloced = 10;
mPtr->items = wmalloc(sizeof(WEditMenuItem*)*mPtr->itemsAlloced);
WMCreateEventHandler(mPtr->view, ExposureMask|StructureNotifyMask,
handleEvents, mPtr);
WMCreateEventHandler(mPtr->view, ButtonPressMask,handleActionEvents, mPtr);
updateMenuContents(mPtr);
mPtr->itemHeight = WMFontHeight(scr->normalFont) + 6;
mPtr->titleHeight = WMFontHeight(scr->boldFont) + 8;
mPtr->draggedItem = -1;
mPtr->next = EditMenuList;
if (EditMenuList)
EditMenuList->prev = mPtr;
EditMenuList = mPtr;
return mPtr;
}
WEditMenuItem*
WInsertMenuItemWithTitle(WEditMenu *mPtr, char *title, int index)
{
WEditMenuItem *item;
item = WCreateEditMenuItem(mPtr, title);
item->menu = mPtr;
WMCreateEventHandler(item->view, ButtonPressMask|ButtonReleaseMask
|Button1MotionMask, handleItemDrag, item);
WMMapWidget(item);
if (index < 0)
index = 0;
else if (index > mPtr->itemCount)
index = mPtr->itemCount;
if (mPtr->itemCount == mPtr->itemsAlloced) {
WEditMenuItem *newList;
newList = wmalloc(sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10));
memset(newList, 0, sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10));
memcpy(newList, mPtr->items, mPtr->itemsAlloced*sizeof(WEditMenuItem*));
mPtr->itemsAlloced += 10;
free(mPtr->items);
mPtr->items = newList;
}
if (index < mPtr->itemCount) {
memmove(&mPtr->items[index+1], &mPtr->items[index],
sizeof(WEditMenuItem*));
mPtr->items[index] = item;
mPtr->itemCount++;
} else {
mPtr->items[mPtr->itemCount++] = item;
}
updateMenuContents(mPtr);
return item;
}
void
WSetMenuSubmenu(WEditMenu *mPtr, WEditMenu *submenu, WEditMenuItem *item)
{
item->submenu = submenu;
submenu->parent = mPtr;
paintEditMenuItem(item);
}
void
WRemoveMenuItem(WEditMenu *mPtr, WEditMenuItem *item)
{
}
static void
updateMenuContents(WEditMenu *mPtr)
{
WMScreen *scr = WMWidgetScreen(mPtr);
int i;
int newW, newH;
int w;
int iheight = mPtr->itemHeight;
newW = WMWidthOfString(scr->boldFont, mPtr->label,
strlen(mPtr->label)) + 12 + iheight;
newH = mPtr->titleHeight;
for (i = 0; i < mPtr->itemCount; i++) {
w = WMWidthOfString(scr->normalFont, mPtr->items[i]->label,
strlen(mPtr->items[i]->label)) + 5;
if (w > newW)
newW = w;
W_MoveView(mPtr->items[i]->view, 0, newH);
newH += iheight;
}
newH--;
W_ResizeView(mPtr->view, newW, newH);
for (i = 0; i < mPtr->itemCount; i++) {
W_ResizeView(mPtr->items[i]->view, newW, iheight);
}
paintEditMenu(mPtr, -1);
}
static void
paintMenuTitle(WEditMenu *mPtr)
{
WMScreen *scr = WMWidgetScreen(mPtr);
WMColor *black = scr->black;
WMColor *white = scr->white;
Window win = W_VIEW(mPtr)->window;
int w = W_VIEW(mPtr)->size.width;
int h = mPtr->titleHeight;
XFillRectangle(scr->display, win, W_GC(black), 0, 0, w, h);
W_DrawRelief(scr, win, 0, 0, w+1, h, WRRaised);
WMDrawString(scr, win, W_GC(white), scr->boldFont, 5, 4, mPtr->label,
strlen(mPtr->label));
}
static void
paintEditMenu(WEditMenu *mPtr, int y)
{
if (!mPtr->view->flags.realized)
return;
if (y < mPtr->titleHeight || y < 0)
paintMenuTitle(mPtr);
}
static void
handleEvents(XEvent *event, void *data)
{
WEditMenu *mPtr = (WEditMenu*)data;
switch (event->type) {
case Expose:
paintEditMenu(mPtr, event->xexpose.y);
break;
case DestroyNotify:
destroyEditMenu(mPtr);
break;
}
}
static void
handleActionEvents(XEvent *event, void *data)
{
WEditMenu *mPtr = (WEditMenu*)data;
switch (event->type) {
case ButtonPress:
break;
}
}
static void
editItemLabel(WEditMenuItem *iPtr)
{
WMTextField *tPtr;
tPtr = WMCreateTextField(iPtr);
WMResizeWidget(tPtr, iPtr->view->size.width - 20,
iPtr->view->size.height - 3);
WMMoveWidget(tPtr, 4, 1);
WMSetTextFieldBeveled(tPtr, False);
WMMapWidget(tPtr);
WMRealizeWidget(tPtr);
iPtr->textField = tPtr;
}
static void
handleItemDrag(XEvent *event, void *data)
{
WEditMenuItem *iPtr = (WEditMenuItem*)data;
WEditMenu *mPtr = iPtr->menu;
WMScreen *scr = WMWidgetScreen(mPtr);
Bool done = False;
int y;
int i;
int newIdx, oldIdx;
int newY;
switch (event->type) {
case ButtonPress:
if (WMIsDoubleClick(event)) {
editItemLabel(iPtr);
} else if (event->xbutton.button == Button1) {
mPtr->draggedItem = 1;
mPtr->dragX = event->xbutton.x;
mPtr->dragY = event->xbutton.y;
}
return;
case ButtonRelease:
if (event->xbutton.button == Button1) {
mPtr->draggedItem = -1;
}
return;
case MotionNotify:
if (mPtr->draggedItem >= 0) {
if (abs(event->xmotion.y - mPtr->dragY) > 3
|| abs(event->xmotion.x - mPtr->dragX) > 3) {
mPtr->draggedItem = -1;
} else {
return;
}
} else {
return;
}
break;
default:
return;
}
XRaiseWindow(scr->display, iPtr->view->window);
XGrabPointer(scr->display, mPtr->view->window, False,
PointerMotionMask|ButtonReleaseMask|ButtonPressMask
|ButtonPressMask,
GrabModeAsync, GrabModeAsync, None, None, CurrentTime);
y = iPtr->view->pos.y;
while (!done) {
XEvent ev;
WMMaskEvent(scr->display, ButtonReleaseMask|PointerMotionMask
|ExposureMask, &ev);
switch (ev.type) {
case ButtonRelease:
if (ev.xbutton.button == Button1)
done = True;
break;
case MotionNotify:
y = ev.xbutton.y - mPtr->dragY;
if (y < mPtr->titleHeight)
y = mPtr->titleHeight;
else if (y > mPtr->view->size.height - mPtr->itemHeight + 1)
y = mPtr->view->size.height - mPtr->itemHeight + 1;
W_MoveView(iPtr->view, 0, y);
break;
default:
WMHandleEvent(&ev);
break;
}
}
XUngrabPointer(scr->display, CurrentTime);
for (oldIdx = 0; oldIdx < mPtr->itemCount; oldIdx++) {
if (mPtr->items[oldIdx] == iPtr) {
break;
}
}
assert(oldIdx < mPtr->itemCount);
newIdx = (y - mPtr->titleHeight + mPtr->itemHeight/2) / mPtr->itemHeight;
if (newIdx < 0)
newIdx = 0;
else if (newIdx >= mPtr->itemCount)
newIdx = mPtr->itemCount - 1;
newY = mPtr->titleHeight + newIdx * mPtr->itemHeight;
for (i = 0; i <= 15; i++) {
W_MoveView(iPtr->view, 0, ((newY*i)/15 + (y - (y*i)/15)));
XFlush(scr->display);
}
if (oldIdx != newIdx) {
WEditMenuItem *item;
item = mPtr->items[oldIdx];
mPtr->items[oldIdx] = mPtr->items[newIdx];
mPtr->items[newIdx] = item;
updateMenuContents(mPtr);
}
}
static void
destroyEditMenu(WEditMenu *mPtr)
{
WMRemoveNotificationObserver(mPtr);
if (mPtr->next)
mPtr->next->prev = mPtr->prev;
if (mPtr->prev)
mPtr->prev->next = mPtr->next;
if (EditMenuList == mPtr)
EditMenuList = mPtr->next;
if (mPtr->label)
free(mPtr->label);
if (mPtr->items)
free(mPtr->items);
free(mPtr);
}

40
WPrefs.app/editmenu.h Normal file
View File

@@ -0,0 +1,40 @@
/* editmenu.h - editable menus
*
* WPrefs - Window Maker Preferences Program
*
* Copyright (c) 1999 Alfredo K. Kojima
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
typedef struct W_EditMenu WEditMenu;
typedef struct W_EditMenuItem WEditMenuItem;
WEditMenuItem *WCreateEditMenuItem(WMWidget *parent, char *title);
WEditMenu *WCreateEditMenu(WMScreen *scr, char *title);
WEditMenuItem *WInsertMenuItemWithTitle(WEditMenu *mPtr, char *title,
int index);
void WSetMenuSubmenu(WEditMenu *mPtr, WEditMenu *submenu, WEditMenuItem *item);
void WRemoveMenuItem(WEditMenu *mPtr, WEditMenuItem *item);

View File

@@ -149,7 +149,7 @@ main(int argc, char **argv)
if (getenv("NLSPATH")) if (getenv("NLSPATH"))
bindtextdomain("WPrefs", getenv("NLSPATH")); bindtextdomain("WPrefs", getenv("NLSPATH"));
else else
bindtextdomain("WPrefs", NLSDIR); bindtextdomain("WPrefs", LOCALEDIR);
textdomain("WPrefs"); textdomain("WPrefs");
if (!XSupportsLocale()) { if (!XSupportsLocale()) {
@@ -165,7 +165,7 @@ main(int argc, char **argv)
wfatal(_("could not open display %s"), XDisplayName(display_name)); wfatal(_("could not open display %s"), XDisplayName(display_name));
exit(0); exit(0);
} }
#if 0 #if 1
XSynchronize(dpy, 1); XSynchronize(dpy, 1);
#endif #endif
scr = WMCreateScreen(dpy, DefaultScreen(dpy)); scr = WMCreateScreen(dpy, DefaultScreen(dpy));

View File

@@ -1,10 +1,10 @@
nlsdir = @NLSDIR@
CATALOGS = @WPMOFILES@ CATALOGS = @WPMOFILES@
nlsdir = $(DESTDIR)$(NLSDIR)
CLEANFILES = $(CATALOGS) CLEANFILES = $(CATALOGS)
EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po zh_TW.Big5.po
POTFILES = \ POTFILES = \
$(top_builddir)/WPrefs.app/Configurations.c \ $(top_builddir)/WPrefs.app/Configurations.c \
@@ -45,15 +45,15 @@ WPrefs.pot: $(POTFILES)
install-data-local: $(CATALOGS) install-data-local: $(CATALOGS)
$(mkinstalldirs) $(DESTDIR)$(nlsdir) $(mkinstalldirs) $(nlsdir)
chmod 755 $(DESTDIR)$(nlsdir) chmod 755 $(nlsdir)
for n in $(CATALOGS) __DuMmY ; do \ for n in $(CATALOGS) __DuMmY ; do \
if test "$$n" -a "$$n" != "__DuMmY" ; then \ if test "$$n" -a "$$n" != "__DuMmY" ; then \
l=`basename $$n .mo`; \ l=`basename $$n .mo`; \
$(mkinstalldirs) $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES; \ $(mkinstalldirs) $(nlsdir)/$$l/LC_MESSAGES; \
chmod 755 $(DESTDIR)$(nlsdir)/$$l; \ chmod 755 $(nlsdir)/$$l; \
chmod 755 $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES; \ chmod 755 $(nlsdir)/$$l/LC_MESSAGES; \
$(INSTALL) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/WPrefs.mo; \ $(INSTALL_DATA) -m 644 $$n $(nlsdir)/$$l/LC_MESSAGES/WPrefs.mo; \
fi; \ fi; \
done done

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@
@@ -87,13 +87,13 @@ XLIBS = @XLIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
wprefsdir = @wprefsdir@ wprefsdir = @wprefsdir@
nlsdir = @NLSDIR@
CATALOGS = @WPMOFILES@ CATALOGS = @WPMOFILES@
nlsdir = $(DESTDIR)$(NLSDIR)
CLEANFILES = $(CATALOGS) CLEANFILES = $(CATALOGS)
EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po zh_TW.Big5.po
POTFILES = $(top_builddir)/WPrefs.app/Configurations.c $(top_builddir)/WPrefs.app/Expert.c $(top_builddir)/WPrefs.app/Focus.c $(top_builddir)/WPrefs.app/Icons.c $(top_builddir)/WPrefs.app/KeyboardSettings.c $(top_builddir)/WPrefs.app/KeyboardShortcuts.c $(top_builddir)/WPrefs.app/Menu.c $(top_builddir)/WPrefs.app/MenuGuru.c $(top_builddir)/WPrefs.app/MenuPreferences.c $(top_builddir)/WPrefs.app/MouseSettings.c $(top_builddir)/WPrefs.app/Paths.c $(top_builddir)/WPrefs.app/Preferences.c $(top_builddir)/WPrefs.app/Text.c $(top_builddir)/WPrefs.app/TextureAndColor.c $(top_builddir)/WPrefs.app/Themes.c $(top_builddir)/WPrefs.app/WPrefs.c $(top_builddir)/WPrefs.app/WindowHandling.c $(top_builddir)/WPrefs.app/Workspace.c $(top_builddir)/WPrefs.app/main.c $(top_builddir)/WPrefs.app/xmodifier.c POTFILES = $(top_builddir)/WPrefs.app/Configurations.c $(top_builddir)/WPrefs.app/Expert.c $(top_builddir)/WPrefs.app/Focus.c $(top_builddir)/WPrefs.app/Icons.c $(top_builddir)/WPrefs.app/KeyboardSettings.c $(top_builddir)/WPrefs.app/KeyboardShortcuts.c $(top_builddir)/WPrefs.app/Menu.c $(top_builddir)/WPrefs.app/MenuGuru.c $(top_builddir)/WPrefs.app/MenuPreferences.c $(top_builddir)/WPrefs.app/MouseSettings.c $(top_builddir)/WPrefs.app/Paths.c $(top_builddir)/WPrefs.app/Preferences.c $(top_builddir)/WPrefs.app/Text.c $(top_builddir)/WPrefs.app/TextureAndColor.c $(top_builddir)/WPrefs.app/Themes.c $(top_builddir)/WPrefs.app/WPrefs.c $(top_builddir)/WPrefs.app/WindowHandling.c $(top_builddir)/WPrefs.app/Workspace.c $(top_builddir)/WPrefs.app/main.c $(top_builddir)/WPrefs.app/xmodifier.c
@@ -219,15 +219,15 @@ WPrefs.pot: $(POTFILES)
fi fi
install-data-local: $(CATALOGS) install-data-local: $(CATALOGS)
$(mkinstalldirs) $(DESTDIR)$(nlsdir) $(mkinstalldirs) $(nlsdir)
chmod 755 $(DESTDIR)$(nlsdir) chmod 755 $(nlsdir)
for n in $(CATALOGS) __DuMmY ; do \ for n in $(CATALOGS) __DuMmY ; do \
if test "$$n" -a "$$n" != "__DuMmY" ; then \ if test "$$n" -a "$$n" != "__DuMmY" ; then \
l=`basename $$n .mo`; \ l=`basename $$n .mo`; \
$(mkinstalldirs) $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES; \ $(mkinstalldirs) $(nlsdir)/$$l/LC_MESSAGES; \
chmod 755 $(DESTDIR)$(nlsdir)/$$l; \ chmod 755 $(nlsdir)/$$l; \
chmod 755 $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES; \ chmod 755 $(nlsdir)/$$l/LC_MESSAGES; \
$(INSTALL) -m 644 $$n $(DESTDIR)$(nlsdir)/$$l/LC_MESSAGES/WPrefs.mo; \ $(INSTALL_DATA) -m 644 $$n $(nlsdir)/$$l/LC_MESSAGES/WPrefs.mo; \
fi; \ fi; \
done done

View File

@@ -10,3 +10,4 @@ fr.po French Bastien NOCERA <hadess@writeme.com>
ko.po Korean Byeong-Chan, Kim <redhands@linux.sarang.net> ko.po Korean Byeong-Chan, Kim <redhands@linux.sarang.net>
cs.po Czech David ©auer <xsauer@hwlab.felk.cvut.cz> cs.po Czech David ©auer <xsauer@hwlab.felk.cvut.cz>
ja.po Japanese Kazuhide Takahashi <kazu@dgra.ne.jp> ja.po Japanese Kazuhide Takahashi <kazu@dgra.ne.jp>
zh_TW.Big5.po Chinese Li Wei Jih <lwj83@cs.ccu.edu.tw>

View File

@@ -5,8 +5,8 @@
# Èt pro 3 20:38:36 CET 1998 David Sauer # Èt pro 3 20:38:36 CET 1998 David Sauer
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WPrefs 0.9 (WindowMaker 0.50.x)\n" "Project-Id-Version: WPrefs 0.10 (WindowMaker 0.51.0)\n"
"POT-Creation-Date: 1999-01-11 07:20+0100\n" "POT-Creation-Date: 1999-01-29 06:48+0100\n"
"PO-Revision-Date: 1999-01-11 07:37+01:00\n" "PO-Revision-Date: 1999-01-11 07:37+01:00\n"
"Last-Translator: David Sauer <xsauer@fel.cvut.cz>\n" "Last-Translator: David Sauer <xsauer@fel.cvut.cz>\n"
"Language-Team: czech <cs@li.org>\n" "Language-Team: czech <cs@li.org>\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Transfer-Encoding: unknown\n" "Content-Transfer-Encoding: unknown\n"
#: ../../WPrefs.app/Configurations.c:142 ../../WPrefs.app/Configurations.c:148 #: ../../WPrefs.app/Configurations.c:142 ../../WPrefs.app/Configurations.c:148
#: ../../WPrefs.app/MouseSettings.c:510 ../../WPrefs.app/WindowHandling.c:274 #: ../../WPrefs.app/MouseSettings.c:526 ../../WPrefs.app/WindowHandling.c:274
#: ../../WPrefs.app/WindowHandling.c:286 ../../WPrefs.app/Workspace.c:71 #: ../../WPrefs.app/WindowHandling.c:286 ../../WPrefs.app/Workspace.c:71
#: ../../WPrefs.app/Workspace.c:77 #: ../../WPrefs.app/Workspace.c:77
#, c-format #, c-format
@@ -45,10 +45,10 @@ msgstr "Rychlost zm
#: ../../WPrefs.app/MenuPreferences.c:135 #: ../../WPrefs.app/MenuPreferences.c:135
#: ../../WPrefs.app/MenuPreferences.c:146 #: ../../WPrefs.app/MenuPreferences.c:146
#: ../../WPrefs.app/MenuPreferences.c:174 #: ../../WPrefs.app/MenuPreferences.c:174
#: ../../WPrefs.app/MenuPreferences.c:189 ../../WPrefs.app/MouseSettings.c:538 #: ../../WPrefs.app/MenuPreferences.c:189 ../../WPrefs.app/MouseSettings.c:554
#: ../../WPrefs.app/MouseSettings.c:549 ../../WPrefs.app/MouseSettings.c:604 #: ../../WPrefs.app/MouseSettings.c:565 ../../WPrefs.app/MouseSettings.c:627
#: ../../WPrefs.app/MouseSettings.c:615 ../../WPrefs.app/MouseSettings.c:651 #: ../../WPrefs.app/MouseSettings.c:638 ../../WPrefs.app/MouseSettings.c:674
#: ../../WPrefs.app/MouseSettings.c:666 ../../WPrefs.app/MouseSettings.c:682 #: ../../WPrefs.app/MouseSettings.c:689 ../../WPrefs.app/MouseSettings.c:705
#: ../../WPrefs.app/WPrefs.c:403 ../../WPrefs.app/WPrefs.c:421 #: ../../WPrefs.app/WPrefs.c:403 ../../WPrefs.app/WPrefs.c:421
#, c-format #, c-format
msgid "could not load icon file %s" msgid "could not load icon file %s"
@@ -84,7 +84,7 @@ msgstr "Ditherovat na 8bpp"
#: ../../WPrefs.app/Configurations.c:369 #: ../../WPrefs.app/Configurations.c:369
msgid "Disable dithering in any visual/depth" msgid "Disable dithering in any visual/depth"
msgstr "Zak jakékoli ditherování" msgstr "Zakázat jakékoli ditherování"
#: ../../WPrefs.app/Configurations.c:390 #: ../../WPrefs.app/Configurations.c:390
msgid "More colors for applications" msgid "More colors for applications"
@@ -112,7 +112,7 @@ msgstr "Pou
#: ../../WPrefs.app/Expert.c:73 #: ../../WPrefs.app/Expert.c:73
msgid "Disable cycling color highlighting of icons." msgid "Disable cycling color highlighting of icons."
msgstr "Zak rotaci barev pøi zvýraznìní ikon" msgstr "Zakázat rotaci barev pro zvýraznìní ikon"
#: ../../WPrefs.app/Expert.c:103 #: ../../WPrefs.app/Expert.c:103
msgid "Expert User Preferences" msgid "Expert User Preferences"
@@ -132,9 +132,7 @@ msgstr "chybn
msgid "" msgid ""
"Click on the window to set\n" "Click on the window to set\n"
"keyboard input focus." "keyboard input focus."
msgstr "" msgstr "«uk my¹í zamìøí okno."
"Click on the window to set\n"
"keyboard input focus."
#: ../../WPrefs.app/Focus.c:194 #: ../../WPrefs.app/Focus.c:194
msgid "" msgid ""
@@ -142,7 +140,7 @@ msgid ""
"the window under the mouse pointer,\n" "the window under the mouse pointer,\n"
"including the root window." "including the root window."
msgstr "" msgstr ""
"Nastav zamìøení vstupu\n" "Nastaví zamìøení vstupu\n"
"na okno pod ukazatelem my¹i.\n" "na okno pod ukazatelem my¹i.\n"
"(vèetnì hlavního okna)" "(vèetnì hlavního okna)"
@@ -152,7 +150,7 @@ msgid ""
"the window under the mouse pointer,\n" "the window under the mouse pointer,\n"
"except the root window." "except the root window."
msgstr "" msgstr ""
"Nastav zamìøení vstupu\n" "Nastaví zamìøení vstupu\n"
"na okno pod ukazatelem my¹i.\n" "na okno pod ukazatelem my¹i.\n"
"(mimo hlavního okna)" "(mimo hlavního okna)"
@@ -222,7 +220,7 @@ msgstr "V
#: ../../WPrefs.app/Icons.c:238 #: ../../WPrefs.app/Icons.c:238
msgid "3D-flipping" msgid "3D-flipping"
msgstr "3D-salta" msgstr "3D salta"
#: ../../WPrefs.app/Icons.c:239 #: ../../WPrefs.app/Icons.c:239
msgid "None" msgid "None"
@@ -230,7 +228,7 @@ msgstr "
#: ../../WPrefs.app/Icons.c:247 #: ../../WPrefs.app/Icons.c:247
msgid "Icon Display" msgid "Icon Display"
msgstr "Zobrazení Ikony" msgstr "Zobrazení ikon"
#: ../../WPrefs.app/Icons.c:252 #: ../../WPrefs.app/Icons.c:252
msgid "Auto-arrange icons" msgid "Auto-arrange icons"
@@ -258,14 +256,14 @@ msgstr "Rychlost opakov
#: ../../WPrefs.app/KeyboardSettings.c:153 #: ../../WPrefs.app/KeyboardSettings.c:153
msgid "Type here to test" msgid "Type here to test"
msgstr "Zkuste klávesnici zde" msgstr "Zkuste zde"
#: ../../WPrefs.app/KeyboardSettings.c:172 #: ../../WPrefs.app/KeyboardSettings.c:172
msgid "Keyboard Preferences" msgid "Keyboard Preferences"
msgstr "Nastavení klávesnice" msgstr "Nastavení klávesnice"
#: ../../WPrefs.app/KeyboardShortcuts.c:183 ../../WPrefs.app/Menu.c:932 #: ../../WPrefs.app/KeyboardShortcuts.c:183 ../../WPrefs.app/Menu.c:934
#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/MenuGuru.c:263 #: ../../WPrefs.app/MenuGuru.c:263
msgid "Cancel" msgid "Cancel"
msgstr "Nic" msgstr "Nic"
@@ -274,8 +272,8 @@ msgid "Press the desired shortcut key(s) or click Cancel to stop capturing."
msgstr "Stisknìte po¾adované klávesy nebo pou¾ijete \"Nic\"." msgstr "Stisknìte po¾adované klávesy nebo pou¾ijete \"Nic\"."
#: ../../WPrefs.app/KeyboardShortcuts.c:204 #: ../../WPrefs.app/KeyboardShortcuts.c:204
#: ../../WPrefs.app/KeyboardShortcuts.c:444 ../../WPrefs.app/Menu.c:944 #: ../../WPrefs.app/KeyboardShortcuts.c:444 ../../WPrefs.app/Menu.c:946
#: ../../WPrefs.app/Menu.c:1166 #: ../../WPrefs.app/Menu.c:1168
msgid "Capture" msgid "Capture"
msgstr "Snímat" msgstr "Snímat"
@@ -342,7 +340,7 @@ msgstr "P
#: ../../WPrefs.app/KeyboardShortcuts.c:388 #: ../../WPrefs.app/KeyboardShortcuts.c:388
msgid "Select active window" msgid "Select active window"
msgstr "Vyber okno" msgstr "Vybrat okno"
#: ../../WPrefs.app/KeyboardShortcuts.c:389 #: ../../WPrefs.app/KeyboardShortcuts.c:389
msgid "Focus next window" msgid "Focus next window"
@@ -370,43 +368,43 @@ msgstr "P
#: ../../WPrefs.app/KeyboardShortcuts.c:395 #: ../../WPrefs.app/KeyboardShortcuts.c:395
msgid "Switch to workspace 1" msgid "Switch to workspace 1"
msgstr "Pøepni na plochu 1" msgstr "Pøepnout na plochu 1"
#: ../../WPrefs.app/KeyboardShortcuts.c:396 #: ../../WPrefs.app/KeyboardShortcuts.c:396
msgid "Switch to workspace 2" msgid "Switch to workspace 2"
msgstr "Pøepni na plochu 2" msgstr "Pøepnout na plochu 2"
#: ../../WPrefs.app/KeyboardShortcuts.c:397 #: ../../WPrefs.app/KeyboardShortcuts.c:397
msgid "Switch to workspace 3" msgid "Switch to workspace 3"
msgstr "Pøepni na plochu 3" msgstr "Pøepnout na plochu 3"
#: ../../WPrefs.app/KeyboardShortcuts.c:398 #: ../../WPrefs.app/KeyboardShortcuts.c:398
msgid "Switch to workspace 4" msgid "Switch to workspace 4"
msgstr "Pøepni na plochu 4" msgstr "Pøepnout na plochu 4"
#: ../../WPrefs.app/KeyboardShortcuts.c:399 #: ../../WPrefs.app/KeyboardShortcuts.c:399
msgid "Switch to workspace 5" msgid "Switch to workspace 5"
msgstr "Pøepni na plochu 5" msgstr "Pøepnout na plochu 5"
#: ../../WPrefs.app/KeyboardShortcuts.c:400 #: ../../WPrefs.app/KeyboardShortcuts.c:400
msgid "Switch to workspace 6" msgid "Switch to workspace 6"
msgstr "Pøepni na plochu 6" msgstr "Pøepnout na plochu 6"
#: ../../WPrefs.app/KeyboardShortcuts.c:401 #: ../../WPrefs.app/KeyboardShortcuts.c:401
msgid "Switch to workspace 7" msgid "Switch to workspace 7"
msgstr "Pøepni na plochu 7" msgstr "Pøepnout na plochu 7"
#: ../../WPrefs.app/KeyboardShortcuts.c:402 #: ../../WPrefs.app/KeyboardShortcuts.c:402
msgid "Switch to workspace 8" msgid "Switch to workspace 8"
msgstr "Pøepni na plochu 8" msgstr "Pøepnout na plochu 8"
#: ../../WPrefs.app/KeyboardShortcuts.c:403 #: ../../WPrefs.app/KeyboardShortcuts.c:403
msgid "Switch to workspace 9" msgid "Switch to workspace 9"
msgstr "Pøepni na plochu 9" msgstr "Pøepnout na plochu 9"
#: ../../WPrefs.app/KeyboardShortcuts.c:404 #: ../../WPrefs.app/KeyboardShortcuts.c:404
msgid "Switch to workspace 10" msgid "Switch to workspace 10"
msgstr "Pøepni na plochu 10" msgstr "Pøepnout na plochu 10"
#: ../../WPrefs.app/KeyboardShortcuts.c:405 #: ../../WPrefs.app/KeyboardShortcuts.c:405
msgid "Shortcut for window 1" msgid "Shortcut for window 1"
@@ -438,15 +436,15 @@ msgstr "Sponku v
#: ../../WPrefs.app/KeyboardShortcuts.c:413 #: ../../WPrefs.app/KeyboardShortcuts.c:413
msgid "Toggle keyboard language" msgid "Toggle keyboard language"
msgstr "Nastavit jazyk pro klávesnici" msgstr "Zmìnit klávesnici"
#: ../../WPrefs.app/KeyboardShortcuts.c:427 ../../WPrefs.app/Menu.c:1155 #: ../../WPrefs.app/KeyboardShortcuts.c:427 ../../WPrefs.app/Menu.c:1157
msgid "Shortcut" msgid "Shortcut"
msgstr "Zkratka" msgstr "Zkratka"
#: ../../WPrefs.app/KeyboardShortcuts.c:438 #: ../../WPrefs.app/KeyboardShortcuts.c:438
msgid "Clear" msgid "Clear"
msgstr "Vyma¾" msgstr "Vymazat"
#: ../../WPrefs.app/KeyboardShortcuts.c:499 #: ../../WPrefs.app/KeyboardShortcuts.c:499
msgid "Keyboard Shortcut Preferences" msgid "Keyboard Shortcut Preferences"
@@ -460,7 +458,7 @@ msgstr "Mana
msgid "Program to open files" msgid "Program to open files"
msgstr "Program na otvírání souborù" msgstr "Program na otvírání souborù"
#: ../../WPrefs.app/Menu.c:377 ../../WPrefs.app/Menu.c:1142 #: ../../WPrefs.app/Menu.c:377 ../../WPrefs.app/Menu.c:1144
msgid "Program to Run" msgid "Program to Run"
msgstr "Spustit program" msgstr "Spustit program"
@@ -481,150 +479,175 @@ msgstr "Extern
msgid "Workspaces" msgid "Workspaces"
msgstr "Pracovní plochy" msgstr "Pracovní plochy"
#: ../../WPrefs.app/Menu.c:1026 ../../WPrefs.app/Menu.c:1041 #: ../../WPrefs.app/Menu.c:1028 ../../WPrefs.app/Menu.c:1043
msgid "Commands" msgid "Commands"
msgstr "Pøíkazy" msgstr "Pøíkazy"
#: ../../WPrefs.app/Menu.c:1027 ../../WPrefs.app/Menu.c:1042 #: ../../WPrefs.app/Menu.c:1029 ../../WPrefs.app/Menu.c:1044
msgid "Add Command" msgid "Add Command"
msgstr "Pøidat pøíkaz" msgstr "Pøidat pøíkaz"
#: ../../WPrefs.app/Menu.c:1028 ../../WPrefs.app/Menu.c:1043 #: ../../WPrefs.app/Menu.c:1030 ../../WPrefs.app/Menu.c:1045
msgid "Add Submenu" msgid "Add Submenu"
msgstr "Pøidat podmenu" msgstr "Pøidat podmenu"
#: ../../WPrefs.app/Menu.c:1029 ../../WPrefs.app/Menu.c:1044 #: ../../WPrefs.app/Menu.c:1031 ../../WPrefs.app/Menu.c:1046
msgid "Add External Menu" msgid "Add External Menu"
msgstr "Pøidat externí menu" msgstr "Pøidat externí menu"
#: ../../WPrefs.app/Menu.c:1030 ../../WPrefs.app/Menu.c:1045 #: ../../WPrefs.app/Menu.c:1032 ../../WPrefs.app/Menu.c:1047
msgid "Add Workspace Menu" msgid "Add Workspace Menu"
msgstr "Pøidat menu ploch" msgstr "Pøidat menu ploch"
#: ../../WPrefs.app/Menu.c:1031 ../../WPrefs.app/Menu.c:1046
msgid "Remove Item"
msgstr "Odstraò polo¾ku"
#: ../../WPrefs.app/Menu.c:1032 ../../WPrefs.app/Menu.c:1047
msgid "Cut Item"
msgstr "Vyøízni polo¾ku"
#: ../../WPrefs.app/Menu.c:1033 ../../WPrefs.app/Menu.c:1048 #: ../../WPrefs.app/Menu.c:1033 ../../WPrefs.app/Menu.c:1048
msgid "Copy Item" msgid "Remove Item"
msgstr "Zkopíruj polo¾ku" msgstr "Odstranit polo¾ku"
#: ../../WPrefs.app/Menu.c:1034 ../../WPrefs.app/Menu.c:1049 #: ../../WPrefs.app/Menu.c:1034 ../../WPrefs.app/Menu.c:1049
msgid "Paste Item" msgid "Cut Item"
msgstr "Vlo¾ polo¾ku" msgstr "Vyøíznout polo¾ku"
#: ../../WPrefs.app/Menu.c:1078 #: ../../WPrefs.app/Menu.c:1035 ../../WPrefs.app/Menu.c:1050
msgid "Copy Item"
msgstr "Zkopírovat polo¾ku"
#: ../../WPrefs.app/Menu.c:1036 ../../WPrefs.app/Menu.c:1051
msgid "Paste Item"
msgstr "Vlo¾it polo¾ku"
#: ../../WPrefs.app/Menu.c:1080
msgid "Label" msgid "Label"
msgstr "Oznaèení" msgstr "Oznaèení"
#: ../../WPrefs.app/Menu.c:1091 #: ../../WPrefs.app/Menu.c:1093
msgid "Command" msgid "Command"
msgstr "Pøíkaz" msgstr "Pøíkaz"
#: ../../WPrefs.app/Menu.c:1096
msgid "Run Program"
msgstr "Spus» program"
#: ../../WPrefs.app/Menu.c:1097
msgid "Arrange Icons"
msgstr "Srovnej ikony"
#: ../../WPrefs.app/Menu.c:1098 #: ../../WPrefs.app/Menu.c:1098
msgid "Hide Others" msgid "Run Program"
msgstr "Skryj ostatní" msgstr "Spustit program"
#: ../../WPrefs.app/Menu.c:1099 #: ../../WPrefs.app/Menu.c:1099
msgid "Show All Windows" msgid "Arrange Icons"
msgstr "Uka¾ v¹echna okna" msgstr "Srovnat ikony"
#: ../../WPrefs.app/Menu.c:1100 #: ../../WPrefs.app/Menu.c:1100
msgid "Hide Others"
msgstr "Skrýt ostatní"
#: ../../WPrefs.app/Menu.c:1101
msgid "Show All Windows"
msgstr "Ukázat v¹echna okna"
#: ../../WPrefs.app/Menu.c:1102
msgid "Exit WindowMaker" msgid "Exit WindowMaker"
msgstr "Ukonèit mana¾era oken" msgstr "Ukonèit mana¾era oken"
#: ../../WPrefs.app/Menu.c:1101 #: ../../WPrefs.app/Menu.c:1103
msgid "Exit X Session" msgid "Exit X Session"
msgstr "Ukonèit sezení X" msgstr "Ukonèit sezení X"
#: ../../WPrefs.app/Menu.c:1102 #: ../../WPrefs.app/Menu.c:1104
msgid "Start window manager" msgid "Start window manager"
msgstr "Odstartovat mana¾er oken" msgstr "Odstartovat jiný mana¾er"
#: ../../WPrefs.app/Menu.c:1103 #: ../../WPrefs.app/Menu.c:1105
msgid "Restart WindowMaker" msgid "Restart WindowMaker"
msgstr "Restart WindowMakeru" msgstr "Restart WindowMakeru"
#: ../../WPrefs.app/Menu.c:1104 #: ../../WPrefs.app/Menu.c:1106
msgid "Save Session" msgid "Save Session"
msgstr "Ulo¾it stav sezení" msgstr "Ulo¾it stav sezení"
#: ../../WPrefs.app/Menu.c:1105 #: ../../WPrefs.app/Menu.c:1107
msgid "Clear Session" msgid "Clear Session"
msgstr "Vymazat sezení" msgstr "Vymazat sezení"
#: ../../WPrefs.app/Menu.c:1106 #: ../../WPrefs.app/Menu.c:1108
msgid "Refresh Screen" msgid "Refresh Screen"
msgstr "Obnovit obrazovku" msgstr "Obnovit obrazovku"
#: ../../WPrefs.app/Menu.c:1107 #: ../../WPrefs.app/Menu.c:1109
msgid "Info Panel" msgid "Info Panel"
msgstr "Informace" msgstr "Informace"
#: ../../WPrefs.app/Menu.c:1108 #: ../../WPrefs.app/Menu.c:1110
msgid "Legal Panel" msgid "Legal Panel"
msgstr "Copyright" msgstr "Copyright"
#: ../../WPrefs.app/Menu.c:1116 #: ../../WPrefs.app/Menu.c:1118
msgid "Open workspace menu" msgid "Open workspace menu"
msgstr "Otevøít menu ploch" msgstr "Otevøít menu ploch"
#: ../../WPrefs.app/Menu.c:1123 #: ../../WPrefs.app/Menu.c:1125
msgid "No confirmation panel" msgid "No confirmation panel"
msgstr "Bez ukonèovacího dialogu" msgstr "Bez ukonèovacího dialogu"
#: ../../WPrefs.app/Menu.c:1129 #: ../../WPrefs.app/Menu.c:1131
msgid "Menu Path/Directory List" msgid "Menu Path/Directory List"
msgstr "Cesta k menu/adresáø" msgstr "Cesta k menu/adresáø"
#: ../../WPrefs.app/Menu.c:1174 #: ../../WPrefs.app/Menu.c:1176
msgid "Ask help to the Guru" msgid "Ask help to the Guru"
msgstr "Zeptat se Mistra" msgstr "Zeptat se Mistra"
#: ../../WPrefs.app/Menu.c:1294 #. if there is a localized plmenu for the tongue put it's filename here
msgid "" #: ../../WPrefs.app/Menu.c:1287 ../../WPrefs.app/Menu.c:1294
"The format of the current menu in ~/G/D/WMRootMenu is not supported by " #, c-format
"WPrefs. A new menu will be created.\n" msgid "%s/Library/WindowMaker/plmenu"
"You can also replace ~/G/D/WMRootMenu with ~/G/L/W/plmenu to get the default " msgstr "%s/Library/WindowMaker/plmenu"
"menu."
msgstr ""
"Aktuální formát menu v ~/G/D/WMRootMenu není podporován programem WPrefs. "
"Bude vytvoøeno nové menu.\n"
"Standardní menu získáte pøíkazem \"cp ~/G/L/W/plmenu ~/G/D/WMRootMenu\"."
#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/Menu.c:1304 #: ../../WPrefs.app/Menu.c:1302 ../../WPrefs.app/MouseSettings.c:146
#: ../../WPrefs.app/MouseSettings.c:169 ../../WPrefs.app/Text.c:181
#: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:558
#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:572
#: ../../WPrefs.app/WPrefs.c:582 ../../WPrefs.app/WPrefs.c:590
#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619
msgid "Error"
msgstr "Chyba"
#: ../../WPrefs.app/Menu.c:1302
msgid "Could not copy default plmenu file from ~/GNUstep/Library/WindowMaker"
msgstr "Standardní menu nelze ze souboru plmenu z adresáøe ~/GNUstep/Library/WindowMaker nainstalovat"
#: ../../WPrefs.app/Menu.c:1304 ../../WPrefs.app/Menu.c:1354
#: ../../WPrefs.app/MenuGuru.c:119 ../../WPrefs.app/MenuGuru.c:126
#: ../../WPrefs.app/MenuGuru.c:140 ../../WPrefs.app/MouseSettings.c:148
#: ../../WPrefs.app/MouseSettings.c:171 ../../WPrefs.app/Text.c:181
#: ../../WPrefs.app/Themes.c:98 ../../WPrefs.app/WPrefs.c:558
#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:574
#: ../../WPrefs.app/WPrefs.c:584 ../../WPrefs.app/WPrefs.c:590
#: ../../WPrefs.app/WPrefs.c:597 ../../WPrefs.app/WPrefs.c:614
#: ../../WPrefs.app/WPrefs.c:619
msgid "OK"
msgstr "OK"
#: ../../WPrefs.app/Menu.c:1339
msgid ""
"The format of the menu in ~/G/D/WMRootMenu is not recognized by WPrefs. It "
"might be in a format different than the one supported by WPrefs or contain a "
"syntax error. Do you want to continue using the current menu to edit it by "
"hand later or replace it with a default menu in the new format?"
msgstr "Formát menu v souboru ~/G/D/WMRootMenu nebyl rozposnán. Mù¾e být rozdílný od podporovaných formátù, nebo mù¾e obsahovat syntaktickou chybu. Chcete pokraèovat s pou¾itím souèasného menu a opravit ho pozdìji, nebo má být nainstalováno menu v novém formátu ?"
#: ../../WPrefs.app/Menu.c:1346 ../../WPrefs.app/Menu.c:1353
#: ../../WPrefs.app/WPrefs.c:597 #: ../../WPrefs.app/WPrefs.c:597
msgid "Warning" msgid "Warning"
msgstr "Varování" msgstr "Varování"
#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/Menu.c:1305 #: ../../WPrefs.app/Menu.c:1346
#: ../../WPrefs.app/MenuGuru.c:119 ../../WPrefs.app/MenuGuru.c:126 msgid "Keep current menu"
#: ../../WPrefs.app/MenuGuru.c:140 ../../WPrefs.app/MouseSettings.c:156 msgstr "Ponechat aktuální menu"
#: ../../WPrefs.app/Text.c:181 ../../WPrefs.app/Themes.c:98
#: ../../WPrefs.app/WPrefs.c:558 ../../WPrefs.app/WPrefs.c:563
#: ../../WPrefs.app/WPrefs.c:574 ../../WPrefs.app/WPrefs.c:584
#: ../../WPrefs.app/WPrefs.c:590 ../../WPrefs.app/WPrefs.c:597
#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619
msgid "OK"
msgstr "OK"
#: ../../WPrefs.app/Menu.c:1304 #: ../../WPrefs.app/Menu.c:1347
msgid "Install default menu"
msgstr "Instalovat standardní menu"
#: ../../WPrefs.app/Menu.c:1353
msgid "Any changes made in this section will not be saved" msgid "Any changes made in this section will not be saved"
msgstr "Jakékoli zmìny v této sekci budou zru¹eny" msgstr "Jakékoli zmìny v této sekci budou zru¹eny"
#: ../../WPrefs.app/Menu.c:1369 #: ../../WPrefs.app/Menu.c:1419
msgid "Applications Menu Definition" msgid "Applications Menu Definition"
msgstr "Definice menu aplikací" msgstr "Definice menu aplikací"
@@ -754,7 +777,7 @@ msgstr "Rychlost posunu menu"
#: ../../WPrefs.app/MenuPreferences.c:161 #: ../../WPrefs.app/MenuPreferences.c:161
msgid "Submenu Alignment" msgid "Submenu Alignment"
msgstr "Zarovnání submenu" msgstr "Zarovnání podmenu"
#: ../../WPrefs.app/MenuPreferences.c:204 #: ../../WPrefs.app/MenuPreferences.c:204
msgid "" msgid ""
@@ -772,20 +795,11 @@ msgstr "Posouvat menu p
msgid "Menu Preferences" msgid "Menu Preferences"
msgstr "Nastavení menu" msgstr "Nastavení menu"
#: ../../WPrefs.app/MouseSettings.c:148 #: ../../WPrefs.app/MouseSettings.c:147
#, c-format msgid "Invalid mouse acceleration value. Must be a positive real value."
msgid "Accel.: %.2f" msgstr "Chybná hodnota pro zrychlení my¹i. Má být kladné reálné èíslo."
msgstr "Zrychl.: %.2f"
#: ../../WPrefs.app/MouseSettings.c:154 ../../WPrefs.app/Text.c:181 #: ../../WPrefs.app/MouseSettings.c:170
#: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:558
#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:572
#: ../../WPrefs.app/WPrefs.c:582 ../../WPrefs.app/WPrefs.c:590
#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619
msgid "Error"
msgstr "Chyba"
#: ../../WPrefs.app/MouseSettings.c:155
msgid "" msgid ""
"Invalid mouse acceleration threshold value. Must be the number of pixels to " "Invalid mouse acceleration threshold value. Must be the number of pixels to "
"travel before accelerating." "travel before accelerating."
@@ -793,18 +807,18 @@ msgstr ""
"Chybná hodnota pro práh zrychlení my¹i. Zadejte èíslo oznaèující poèet " "Chybná hodnota pro práh zrychlení my¹i. Zadejte èíslo oznaèující poèet "
"pixelù pøed akcelarecí." "pixelù pøed akcelarecí."
#: ../../WPrefs.app/MouseSettings.c:209 #: ../../WPrefs.app/MouseSettings.c:225
#, c-format #, c-format
msgid "mouse button %s not supported by WPrefs." msgid "mouse button %s not supported by WPrefs."
msgstr "tlaèítko my¹i %s není podporováno." msgstr "tlaèítko my¹i %s není podporováno."
#: ../../WPrefs.app/MouseSettings.c:243 ../../WPrefs.app/MouseSettings.c:254 #: ../../WPrefs.app/MouseSettings.c:259 ../../WPrefs.app/MouseSettings.c:270
#: ../../WPrefs.app/MouseSettings.c:265 #: ../../WPrefs.app/MouseSettings.c:281
#, c-format #, c-format
msgid "bad value %s for option %s" msgid "bad value %s for option %s"
msgstr "chybná hodnota %s pro volbu %s" msgstr "chybná hodnota %s pro volbu %s"
#: ../../WPrefs.app/MouseSettings.c:325 #: ../../WPrefs.app/MouseSettings.c:341
#, c-format #, c-format
msgid "" msgid ""
"modifier key %s for option ModifierKey was not recognized. Using %s as " "modifier key %s for option ModifierKey was not recognized. Using %s as "
@@ -812,66 +826,70 @@ msgid ""
msgstr "" msgstr ""
"modifikátor klávesy %s pro volbu \"ModifierKey\" není znám. Pou¾ívám %s." "modifikátor klávesy %s pro volbu \"ModifierKey\" není znám. Pou¾ívám %s."
#: ../../WPrefs.app/MouseSettings.c:350 #: ../../WPrefs.app/MouseSettings.c:366
msgid "could not retrieve keyboard modifier mapping" msgid "could not retrieve keyboard modifier mapping"
msgstr "nelze pøevzít mapování modifikátorù kláves" msgstr "nelze pøevzít mapování modifikátorù kláves"
#: ../../WPrefs.app/MouseSettings.c:497 #: ../../WPrefs.app/MouseSettings.c:513
msgid "Mouse Speed" msgid "Mouse Speed"
msgstr "Rychlost my¹i" msgstr "Rychlost my¹i"
#: ../../WPrefs.app/MouseSettings.c:564 #: ../../WPrefs.app/MouseSettings.c:575
msgid "Acceler.:"
msgstr "Zrychl.:"
#: ../../WPrefs.app/MouseSettings.c:587
msgid "Threshold:" msgid "Threshold:"
msgstr "Mez:" msgstr "Mez:"
#: ../../WPrefs.app/MouseSettings.c:579 #: ../../WPrefs.app/MouseSettings.c:602
msgid "Double-Click Delay" msgid "Double-Click Delay"
msgstr "Prodleva pro dvojité »uknutí" msgstr "Prodleva pro dvojité »uknutí"
#: ../../WPrefs.app/MouseSettings.c:623 #: ../../WPrefs.app/MouseSettings.c:646
msgid "Test" msgid "Test"
msgstr "Test" msgstr "Test"
#: ../../WPrefs.app/MouseSettings.c:633 #: ../../WPrefs.app/MouseSettings.c:656
msgid "Workspace Mouse Actions" msgid "Workspace Mouse Actions"
msgstr "Akce my¹í" msgstr "Akce my¹í"
#: ../../WPrefs.app/MouseSettings.c:638 #: ../../WPrefs.app/MouseSettings.c:661
msgid "Disable mouse actions" msgid "Disable mouse actions"
msgstr "Zaka¾ akce my¹í" msgstr "Zaka¾ akce my¹í"
#: ../../WPrefs.app/MouseSettings.c:691 #: ../../WPrefs.app/MouseSettings.c:714
msgid "Applications menu" msgid "Applications menu"
msgstr "Menu aplikací" msgstr "Menu aplikací"
#: ../../WPrefs.app/MouseSettings.c:697 #: ../../WPrefs.app/MouseSettings.c:720
msgid "Window list menu" msgid "Window list menu"
msgstr "Seznam oken" msgstr "Seznam oken"
#: ../../WPrefs.app/MouseSettings.c:703 #: ../../WPrefs.app/MouseSettings.c:726
msgid "Select windows" msgid "Select windows"
msgstr "Vyber okna" msgstr "Vyberte okna"
#: ../../WPrefs.app/MouseSettings.c:738 #: ../../WPrefs.app/MouseSettings.c:761
msgid "Mouse Grab Modifier" msgid "Mouse Grab Modifier"
msgstr "Modifikátor pro my¹" msgstr "Modifikátor pro my¹"
#: ../../WPrefs.app/MouseSettings.c:772 #: ../../WPrefs.app/MouseSettings.c:795
#, c-format #, c-format
msgid "could not create %s" msgid "could not create %s"
msgstr "nelze vytvoøit \"%s\"" msgstr "nelze vytvoøit \"%s\""
#: ../../WPrefs.app/MouseSettings.c:788 #: ../../WPrefs.app/MouseSettings.c:811
#, c-format #, c-format
msgid "could not create temporary file %s" msgid "could not create temporary file %s"
msgstr "nelze vytvoøit doèasný soubor %s" msgstr "nelze vytvoøit doèasný soubor %s"
#: ../../WPrefs.app/MouseSettings.c:813 #: ../../WPrefs.app/MouseSettings.c:836
#, c-format #, c-format
msgid "could not rename file %s to %s\n" msgid "could not rename file %s to %s\n"
msgstr "soubor %s nelze pøejmenovat na %s\n" msgstr "soubor %s nelze pøejmenovat na %s\n"
#: ../../WPrefs.app/MouseSettings.c:896 #: ../../WPrefs.app/MouseSettings.c:919
msgid "Mouse Preferences" msgid "Mouse Preferences"
msgstr "Nastavení my¹i" msgstr "Nastavení my¹i"
@@ -937,7 +955,7 @@ msgstr "nekompletn
#: ../../WPrefs.app/Preferences.c:190 #: ../../WPrefs.app/Preferences.c:190
msgid "miniwindow titles" msgid "miniwindow titles"
msgstr "ikony" msgstr "titulky minioken"
#: ../../WPrefs.app/Preferences.c:191 #: ../../WPrefs.app/Preferences.c:191
msgid "application/dock icons" msgid "application/dock icons"
@@ -949,7 +967,7 @@ msgstr "P
#: ../../WPrefs.app/Preferences.c:210 #: ../../WPrefs.app/Preferences.c:210
msgid "Keep keyboard language status for each window." msgid "Keep keyboard language status for each window."
msgstr "Pro ka¾dé okno pamatovat nastavení jazyka." msgstr "Pro ka¾dé okno pamatovat nastavení klávesnice."
#: ../../WPrefs.app/Preferences.c:231 #: ../../WPrefs.app/Preferences.c:231
msgid "Miscellaneous Ergonomic Preferences" msgid "Miscellaneous Ergonomic Preferences"
@@ -978,7 +996,7 @@ msgstr "Font polo
#: ../../WPrefs.app/Text.c:265 #: ../../WPrefs.app/Text.c:265
msgid "Icon Title Font" msgid "Icon Title Font"
msgstr "Font titulkù ikon" msgstr "Font titulku ikon"
#: ../../WPrefs.app/Text.c:266 #: ../../WPrefs.app/Text.c:266
msgid "Clip Title Font" msgid "Clip Title Font"
@@ -1185,11 +1203,11 @@ msgstr "V
#: ../../WPrefs.app/WPrefs.c:237 #: ../../WPrefs.app/WPrefs.c:237
msgid "Save" msgid "Save"
msgstr "Ulo¾" msgstr "Ulo¾it"
#: ../../WPrefs.app/WPrefs.c:243 #: ../../WPrefs.app/WPrefs.c:243
msgid "Close" msgid "Close"
msgstr "Uzavøi" msgstr "Uzavøít"
#: ../../WPrefs.app/WPrefs.c:260 #: ../../WPrefs.app/WPrefs.c:260
msgid "Window Maker Preferences Utility" msgid "Window Maker Preferences Utility"
@@ -1226,7 +1244,7 @@ msgstr "nelze na
#: ../../WPrefs.app/WPrefs.c:493 #: ../../WPrefs.app/WPrefs.c:493
msgid "Loading Window Maker configuration files..." msgid "Loading Window Maker configuration files..."
msgstr "Ètu konfiguraèní soubory Window Makeru" msgstr "Konfiguraèní soubory Window Makeru se naèítají..."
#: ../../WPrefs.app/WPrefs.c:497 #: ../../WPrefs.app/WPrefs.c:497
msgid "Initializing configuration panels..." msgid "Initializing configuration panels..."
@@ -1237,7 +1255,10 @@ msgid ""
"WPrefs is free software and is distributed WITHOUT ANY WARRANTY under the " "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 " "terms of the GNU General Public License. Redistribution of the icons in this "
"program separately from the program is prohibited." "program separately from the program is prohibited."
msgstr "Program WPrefs je volnì ¹iøitelný software, který je distribuován BEZ JAKÉKOLI ZÁRUKY pod Obecnou Veøejnou Licencí GNU. Redistribuce ikon z tohoto programu bez programu samotného je zakázána." msgstr ""
"Program WPrefs je volnì ¹iøitelný software, který je distribuován BEZ "
"JAKÉKOLI ZÁRUKY pod Obecnou Veøejnou Licencí GNU. Redistribuce ikon z tohoto "
"programu bez programu samotného není povolena."
#: ../../WPrefs.app/WPrefs.c:557 ../../WPrefs.app/WPrefs.c:613 #: ../../WPrefs.app/WPrefs.c:557 ../../WPrefs.app/WPrefs.c:613
#, c-format #, c-format
@@ -1261,7 +1282,9 @@ msgstr "Zajist
msgid "" msgid ""
"Could not extract version from Window Maker. Make sure it is correctly " "Could not extract version from Window Maker. Make sure it is correctly "
"installed and is in your PATH environment variable." "installed and is in your PATH environment variable."
msgstr "Od Window Makeru nelze získat èíslo verze. Zjistìte, je-li správnì instalován a je v prohledávaných adresáøích." msgstr ""
"Od Window Makeru nelze získat èíslo verze. Zjistìte, je-li správnì "
"instalován a je v prohledávaných adresáøích."
#: ../../WPrefs.app/WPrefs.c:583 #: ../../WPrefs.app/WPrefs.c:583
msgid "" msgid ""
@@ -1290,8 +1313,8 @@ msgstr ""
"podporován." "podporován."
#: ../../WPrefs.app/WPrefs.c:602 #: ../../WPrefs.app/WPrefs.c:602
msgid "could not run \"wmaker -global_defaults_path\"." msgid "could not run \"wmaker --global_defaults_path\"."
msgstr "nelze provést \"wmaker -global_defaults_path\"" msgstr "nelze provést \"wmaker --global_defaults_path\""
#: ../../WPrefs.app/WPrefs.c:617 #: ../../WPrefs.app/WPrefs.c:617
#, c-format #, c-format
@@ -1357,8 +1380,8 @@ msgid "...do not resize over dock"
msgstr "... nezvìt¹ovat pøes dok" msgstr "... nezvìt¹ovat pøes dok"
#: ../../WPrefs.app/WindowHandling.c:320 #: ../../WPrefs.app/WindowHandling.c:320
msgid "Keep transients above their owners" msgid "Open transients in same workspace as their owners"
msgstr "Dialogy dr¾et nad vlastníky" msgstr "Otevøít dialogy na stejné plo¹e, jako je vlastník"
#: ../../WPrefs.app/WindowHandling.c:347 #: ../../WPrefs.app/WindowHandling.c:347
msgid "Window Handling Preferences" msgid "Window Handling Preferences"
@@ -1376,11 +1399,11 @@ msgstr "t
msgid "" msgid ""
"switch to first workspace when switching past the last workspace and " "switch to first workspace when switching past the last workspace and "
"vice-versa" "vice-versa"
msgstr "za poslední plochou pøepni opìt na první a opaènì" msgstr "za poslední plochou pøepnout na první a opaènì"
#: ../../WPrefs.app/Workspace.c:210 #: ../../WPrefs.app/Workspace.c:210
msgid "create a new workspace when switching past the last workspace." msgid "create a new workspace when switching past the last workspace."
msgstr "za poslední plochou vytvoø pøi pøepnutí novou." msgstr "za poslední plochou vytvoøit pøi pøepnutí novou."
#: ../../WPrefs.app/Workspace.c:218 #: ../../WPrefs.app/Workspace.c:218
msgid "Dock/Clip" msgid "Dock/Clip"
@@ -1390,41 +1413,45 @@ msgstr "Dok/Sponka"
msgid "Workspace Preferences" msgid "Workspace Preferences"
msgstr "Nastavení pracovní plochy" msgstr "Nastavení pracovní plochy"
#: ../../WPrefs.app/main.c:72 #: ../../WPrefs.app/main.c:71
#, c-format #, c-format
msgid "usage: %s [options]\n" msgid "usage: %s [options]\n"
msgstr "pou¾ití: %s [volby]\n" msgstr "pou¾ití: %s [volby]\n"
#: ../../WPrefs.app/main.c:73 #: ../../WPrefs.app/main.c:72
msgid "options:" msgid "options:"
msgstr "volby:" msgstr "volby:"
#: ../../WPrefs.app/main.c:74 #: ../../WPrefs.app/main.c:73
msgid " -display <display>\tdisplay to be used" msgid " -display <display>\tdisplay to be used"
msgstr " -display <display>\tkterý display pou¾ít" msgstr " -display <display>\tkterý display pou¾ít"
#: ../../WPrefs.app/main.c:75 #: ../../WPrefs.app/main.c:74
msgid " -version\t\tprint version number and exit" msgid " --version\t\tprint version number and exit"
msgstr " -version\t\tzobraz verzi a konec" msgstr " --version\t\tzobraz verzi a konec"
#: ../../WPrefs.app/main.c:132 #: ../../WPrefs.app/main.c:75
msgid " --help\t\tprint this message and exit"
msgstr " --help\t\tzobraz nápovìdu a konec"
#: ../../WPrefs.app/main.c:134
#, c-format #, c-format
msgid "too few arguments for %s" msgid "too few arguments for %s"
msgstr "nedostatek argumetù pro %s" msgstr "nedostatek argumetù pro %s"
#: ../../WPrefs.app/main.c:154 #: ../../WPrefs.app/main.c:156
msgid "X server does not support locale" msgid "X server does not support locale"
msgstr "X server nepodporuje nastavení místních zvyklostí" msgstr "X server nepodporuje nastavení místních zvyklostí"
#: ../../WPrefs.app/main.c:157 #: ../../WPrefs.app/main.c:159
msgid "cannot set locale modifiers" msgid "cannot set locale modifiers"
msgstr "nelze nastavit modifikátory místních zvyklostí" msgstr "nelze nastavit modifikátory místních zvyklostí"
#: ../../WPrefs.app/main.c:163 #: ../../WPrefs.app/main.c:165
#, c-format #, c-format
msgid "could not open display %s" msgid "could not open display %s"
msgstr "nelze otevøít displej %s" msgstr "nelze otevøít displej %s"
#: ../../WPrefs.app/main.c:171 #: ../../WPrefs.app/main.c:173
msgid "could not initialize application" msgid "could not initialize application"
msgstr "nelze inicializovat aplikaci" msgstr "nelze inicializovat aplikaci"

View File

@@ -6,8 +6,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 0.10\n" "Project-Id-Version: 0.10\n"
"POT-Creation-Date: 1999-01-11 06:34+0900\n" "POT-Creation-Date: 1999-01-29 08:50+0900\n"
"PO-Revision-Date: 1999-01-11 06:20+0900\n" "PO-Revision-Date: 1999-01-29 08:55+0900\n"
"Last-Translator: Byeong-Chan Kim <redhands@linux.sarang.net>\n" "Last-Translator: Byeong-Chan Kim <redhands@linux.sarang.net>\n"
"Language-Team: Korean\n" "Language-Team: Korean\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n" "Content-Transfer-Encoding: 8-bit\n"
#: ../../WPrefs.app/Configurations.c:142 ../../WPrefs.app/Configurations.c:148 #: ../../WPrefs.app/Configurations.c:142 ../../WPrefs.app/Configurations.c:148
#: ../../WPrefs.app/MouseSettings.c:510 ../../WPrefs.app/WindowHandling.c:274 #: ../../WPrefs.app/MouseSettings.c:526 ../../WPrefs.app/WindowHandling.c:274
#: ../../WPrefs.app/WindowHandling.c:286 ../../WPrefs.app/Workspace.c:71 #: ../../WPrefs.app/WindowHandling.c:286 ../../WPrefs.app/Workspace.c:71
#: ../../WPrefs.app/Workspace.c:77 #: ../../WPrefs.app/Workspace.c:77
#, c-format #, c-format
@@ -45,10 +45,10 @@ msgstr "
#: ../../WPrefs.app/MenuPreferences.c:135 #: ../../WPrefs.app/MenuPreferences.c:135
#: ../../WPrefs.app/MenuPreferences.c:146 #: ../../WPrefs.app/MenuPreferences.c:146
#: ../../WPrefs.app/MenuPreferences.c:174 #: ../../WPrefs.app/MenuPreferences.c:174
#: ../../WPrefs.app/MenuPreferences.c:189 ../../WPrefs.app/MouseSettings.c:538 #: ../../WPrefs.app/MenuPreferences.c:189 ../../WPrefs.app/MouseSettings.c:554
#: ../../WPrefs.app/MouseSettings.c:549 ../../WPrefs.app/MouseSettings.c:604 #: ../../WPrefs.app/MouseSettings.c:565 ../../WPrefs.app/MouseSettings.c:627
#: ../../WPrefs.app/MouseSettings.c:615 ../../WPrefs.app/MouseSettings.c:651 #: ../../WPrefs.app/MouseSettings.c:638 ../../WPrefs.app/MouseSettings.c:674
#: ../../WPrefs.app/MouseSettings.c:666 ../../WPrefs.app/MouseSettings.c:682 #: ../../WPrefs.app/MouseSettings.c:689 ../../WPrefs.app/MouseSettings.c:705
#: ../../WPrefs.app/WPrefs.c:403 ../../WPrefs.app/WPrefs.c:421 #: ../../WPrefs.app/WPrefs.c:403 ../../WPrefs.app/WPrefs.c:421
#, c-format #, c-format
msgid "could not load icon file %s" msgid "could not load icon file %s"
@@ -264,8 +264,8 @@ msgstr "
msgid "Keyboard Preferences" msgid "Keyboard Preferences"
msgstr "키보드 설정" msgstr "키보드 설정"
#: ../../WPrefs.app/KeyboardShortcuts.c:183 ../../WPrefs.app/Menu.c:932 #: ../../WPrefs.app/KeyboardShortcuts.c:183 ../../WPrefs.app/Menu.c:934
#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/MenuGuru.c:263 #: ../../WPrefs.app/MenuGuru.c:263
msgid "Cancel" msgid "Cancel"
msgstr "취소" msgstr "취소"
@@ -274,8 +274,8 @@ msgid "Press the desired shortcut key(s) or click Cancel to stop capturing."
msgstr "원하는 단축키를 누르십시오. 취소를 누르면 캡쳐가 중단됩니다." msgstr "원하는 단축키를 누르십시오. 취소를 누르면 캡쳐가 중단됩니다."
#: ../../WPrefs.app/KeyboardShortcuts.c:204 #: ../../WPrefs.app/KeyboardShortcuts.c:204
#: ../../WPrefs.app/KeyboardShortcuts.c:444 ../../WPrefs.app/Menu.c:944 #: ../../WPrefs.app/KeyboardShortcuts.c:444 ../../WPrefs.app/Menu.c:946
#: ../../WPrefs.app/Menu.c:1166 #: ../../WPrefs.app/Menu.c:1168
msgid "Capture" msgid "Capture"
msgstr "캡쳐" msgstr "캡쳐"
@@ -440,7 +440,7 @@ msgstr "Ŭ
msgid "Toggle keyboard language" msgid "Toggle keyboard language"
msgstr "키보드 언어 선택" msgstr "키보드 언어 선택"
#: ../../WPrefs.app/KeyboardShortcuts.c:427 ../../WPrefs.app/Menu.c:1155 #: ../../WPrefs.app/KeyboardShortcuts.c:427 ../../WPrefs.app/Menu.c:1157
msgid "Shortcut" msgid "Shortcut"
msgstr "단축키" msgstr "단축키"
@@ -460,7 +460,7 @@ msgstr "â
msgid "Program to open files" msgid "Program to open files"
msgstr "파일을 열 프로그램" msgstr "파일을 열 프로그램"
#: ../../WPrefs.app/Menu.c:377 ../../WPrefs.app/Menu.c:1142 #: ../../WPrefs.app/Menu.c:377 ../../WPrefs.app/Menu.c:1144
msgid "Program to Run" msgid "Program to Run"
msgstr "실행할 프로그램" msgstr "실행할 프로그램"
@@ -481,150 +481,178 @@ msgstr "
msgid "Workspaces" msgid "Workspaces"
msgstr "작업 공간" msgstr "작업 공간"
#: ../../WPrefs.app/Menu.c:1026 ../../WPrefs.app/Menu.c:1041 #: ../../WPrefs.app/Menu.c:1028 ../../WPrefs.app/Menu.c:1043
msgid "Commands" msgid "Commands"
msgstr "명령" msgstr "명령"
#: ../../WPrefs.app/Menu.c:1027 ../../WPrefs.app/Menu.c:1042 #: ../../WPrefs.app/Menu.c:1029 ../../WPrefs.app/Menu.c:1044
msgid "Add Command" msgid "Add Command"
msgstr "명령 추가" msgstr "명령 추가"
#: ../../WPrefs.app/Menu.c:1028 ../../WPrefs.app/Menu.c:1043 #: ../../WPrefs.app/Menu.c:1030 ../../WPrefs.app/Menu.c:1045
msgid "Add Submenu" msgid "Add Submenu"
msgstr "하부메뉴 추가" msgstr "하부메뉴 추가"
#: ../../WPrefs.app/Menu.c:1029 ../../WPrefs.app/Menu.c:1044 #: ../../WPrefs.app/Menu.c:1031 ../../WPrefs.app/Menu.c:1046
msgid "Add External Menu" msgid "Add External Menu"
msgstr "외부 메뉴 추가" msgstr "외부 메뉴 추가"
#: ../../WPrefs.app/Menu.c:1030 ../../WPrefs.app/Menu.c:1045 #: ../../WPrefs.app/Menu.c:1032 ../../WPrefs.app/Menu.c:1047
msgid "Add Workspace Menu" msgid "Add Workspace Menu"
msgstr "작업공간 메뉴 추가" msgstr "작업공간 메뉴 추가"
#: ../../WPrefs.app/Menu.c:1031 ../../WPrefs.app/Menu.c:1046 #: ../../WPrefs.app/Menu.c:1033 ../../WPrefs.app/Menu.c:1048
msgid "Remove Item" msgid "Remove Item"
msgstr "항목 삭제" msgstr "항목 삭제"
#: ../../WPrefs.app/Menu.c:1032 ../../WPrefs.app/Menu.c:1047 #: ../../WPrefs.app/Menu.c:1034 ../../WPrefs.app/Menu.c:1049
msgid "Cut Item" msgid "Cut Item"
msgstr "항목 잘라내기" msgstr "항목 잘라내기"
#: ../../WPrefs.app/Menu.c:1033 ../../WPrefs.app/Menu.c:1048 #: ../../WPrefs.app/Menu.c:1035 ../../WPrefs.app/Menu.c:1050
msgid "Copy Item" msgid "Copy Item"
msgstr "항목 복사" msgstr "항목 복사"
#: ../../WPrefs.app/Menu.c:1034 ../../WPrefs.app/Menu.c:1049 #: ../../WPrefs.app/Menu.c:1036 ../../WPrefs.app/Menu.c:1051
msgid "Paste Item" msgid "Paste Item"
msgstr "항목 붙이기" msgstr "항목 붙이기"
#: ../../WPrefs.app/Menu.c:1078 #: ../../WPrefs.app/Menu.c:1080
msgid "Label" msgid "Label"
msgstr "레이블" msgstr "레이블"
#: ../../WPrefs.app/Menu.c:1091 #: ../../WPrefs.app/Menu.c:1093
msgid "Command" msgid "Command"
msgstr "명령" msgstr "명령"
#: ../../WPrefs.app/Menu.c:1096 #: ../../WPrefs.app/Menu.c:1098
msgid "Run Program" msgid "Run Program"
msgstr "프로그램 실행" msgstr "프로그램 실행"
#: ../../WPrefs.app/Menu.c:1097 #: ../../WPrefs.app/Menu.c:1099
msgid "Arrange Icons" msgid "Arrange Icons"
msgstr "아이콘 정렬" msgstr "아이콘 정렬"
#: ../../WPrefs.app/Menu.c:1098 #: ../../WPrefs.app/Menu.c:1100
msgid "Hide Others" msgid "Hide Others"
msgstr "다른 창 숨기기" msgstr "다른 창 숨기기"
#: ../../WPrefs.app/Menu.c:1099 #: ../../WPrefs.app/Menu.c:1101
msgid "Show All Windows" msgid "Show All Windows"
msgstr "모든 창 보이기" msgstr "모든 창 보이기"
#: ../../WPrefs.app/Menu.c:1100 #: ../../WPrefs.app/Menu.c:1102
msgid "Exit WindowMaker" msgid "Exit WindowMaker"
msgstr "Window Maker 종료" msgstr "Window Maker 종료"
#: ../../WPrefs.app/Menu.c:1101 #: ../../WPrefs.app/Menu.c:1103
msgid "Exit X Session" msgid "Exit X Session"
msgstr "X 세션 종료" msgstr "X 세션 종료"
#: ../../WPrefs.app/Menu.c:1102 #: ../../WPrefs.app/Menu.c:1104
msgid "Start window manager" msgid "Start window manager"
msgstr "창 관리자 시작 " msgstr "창 관리자 시작 "
#: ../../WPrefs.app/Menu.c:1103 #: ../../WPrefs.app/Menu.c:1105
msgid "Restart WindowMaker" msgid "Restart WindowMaker"
msgstr "Window Maker 재시작" msgstr "Window Maker 재시작"
#: ../../WPrefs.app/Menu.c:1104 #: ../../WPrefs.app/Menu.c:1106
msgid "Save Session" msgid "Save Session"
msgstr "세션 저장" msgstr "세션 저장"
#: ../../WPrefs.app/Menu.c:1105 #: ../../WPrefs.app/Menu.c:1107
msgid "Clear Session" msgid "Clear Session"
msgstr "세션 지우기" msgstr "세션 지우기"
#: ../../WPrefs.app/Menu.c:1106 #: ../../WPrefs.app/Menu.c:1108
msgid "Refresh Screen" msgid "Refresh Screen"
msgstr "다시 그리기" msgstr "다시 그리기"
#: ../../WPrefs.app/Menu.c:1107 #: ../../WPrefs.app/Menu.c:1109
msgid "Info Panel" msgid "Info Panel"
msgstr "정보 패널" msgstr "정보 패널"
#: ../../WPrefs.app/Menu.c:1108 #: ../../WPrefs.app/Menu.c:1110
msgid "Legal Panel" msgid "Legal Panel"
msgstr "법적 정보 패널" msgstr "법적 정보 패널"
#: ../../WPrefs.app/Menu.c:1116 #: ../../WPrefs.app/Menu.c:1118
msgid "Open workspace menu" msgid "Open workspace menu"
msgstr "작업공간 메뉴 열기" msgstr "작업공간 메뉴 열기"
#: ../../WPrefs.app/Menu.c:1123 #: ../../WPrefs.app/Menu.c:1125
msgid "No confirmation panel" msgid "No confirmation panel"
msgstr "확인 패널 없음" msgstr "확인 패널 없음"
#: ../../WPrefs.app/Menu.c:1129 #: ../../WPrefs.app/Menu.c:1131
msgid "Menu Path/Directory List" msgid "Menu Path/Directory List"
msgstr "메뉴 경로/디렉토리 목록" msgstr "메뉴 경로/디렉토리 목록"
#: ../../WPrefs.app/Menu.c:1174 #: ../../WPrefs.app/Menu.c:1176
msgid "Ask help to the Guru" msgid "Ask help to the Guru"
msgstr "Guru에게 도움 요청" msgstr "Guru에게 도움 요청"
#: ../../WPrefs.app/Menu.c:1294 #. if there is a localized plmenu for the tongue put it's filename here
msgid "" #: ../../WPrefs.app/Menu.c:1287 ../../WPrefs.app/Menu.c:1294
"The format of the current menu in ~/G/D/WMRootMenu is not supported by " #, c-format
"WPrefs. A new menu will be created.\n" msgid "%s/Library/WindowMaker/plmenu"
"You can also replace ~/G/D/WMRootMenu with ~/G/L/W/plmenu to get the default " msgstr "%s/Library/WindowMaker/plmenu.ko"
"menu."
msgstr ""
"~/Gnustep/Defaults/WMRootMen의 메뉴는 WPrefs가 지원하는 형식이 아닙니다. "
"새로운 메뉴를 만듭니다.\n"
"기본 메뉴로 사용하려면 ~/G/D/WMRootMenu를 ~/G/L/W/plmenu.ko로 바꾸면 됩니다."
#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/Menu.c:1304 #: ../../WPrefs.app/Menu.c:1302 ../../WPrefs.app/MouseSettings.c:146
#: ../../WPrefs.app/MouseSettings.c:169 ../../WPrefs.app/Text.c:181
#: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:558
#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:572
#: ../../WPrefs.app/WPrefs.c:582 ../../WPrefs.app/WPrefs.c:590
#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619
msgid "Error"
msgstr "에러"
#: ../../WPrefs.app/Menu.c:1302
msgid "Could not copy default plmenu file from ~/GNUstep/Library/WindowMaker"
msgstr "기본 plmenu 파일을 ~/GNUstep/Library/WindowMAker에서 복사할 수 없음"
#: ../../WPrefs.app/Menu.c:1304 ../../WPrefs.app/Menu.c:1354
#: ../../WPrefs.app/MenuGuru.c:119 ../../WPrefs.app/MenuGuru.c:126
#: ../../WPrefs.app/MenuGuru.c:140 ../../WPrefs.app/MouseSettings.c:148
#: ../../WPrefs.app/MouseSettings.c:171 ../../WPrefs.app/Text.c:181
#: ../../WPrefs.app/Themes.c:98 ../../WPrefs.app/WPrefs.c:558
#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:574
#: ../../WPrefs.app/WPrefs.c:584 ../../WPrefs.app/WPrefs.c:590
#: ../../WPrefs.app/WPrefs.c:597 ../../WPrefs.app/WPrefs.c:614
#: ../../WPrefs.app/WPrefs.c:619
msgid "OK"
msgstr "확인"
#: ../../WPrefs.app/Menu.c:1339
msgid ""
"The format of the menu in ~/G/D/WMRootMenu is not recognized by WPrefs. It "
"might be in a format different than the one supported by WPrefs or contain a "
"syntax error. Do you want to continue using the current menu to edit it by "
"hand later or replace it with a default menu in the new format?"
msgstr ""
"~/G/D/WMRootMenu의 메뉴는 WPrefs가 인식할 수 있는 형식이 아닙니다. WPrefs가 "
"지원하는 형식과 다르거나 구문 에러인 것 같습니다. 현재 새로이 편집하는 "
"메뉴를 기본 메뉴로 사용하시겠습니까?"
#: ../../WPrefs.app/Menu.c:1346 ../../WPrefs.app/Menu.c:1353
#: ../../WPrefs.app/WPrefs.c:597 #: ../../WPrefs.app/WPrefs.c:597
msgid "Warning" msgid "Warning"
msgstr "경고" msgstr "경고"
#: ../../WPrefs.app/Menu.c:1299 ../../WPrefs.app/Menu.c:1305 #: ../../WPrefs.app/Menu.c:1346
#: ../../WPrefs.app/MenuGuru.c:119 ../../WPrefs.app/MenuGuru.c:126 msgid "Keep current menu"
#: ../../WPrefs.app/MenuGuru.c:140 ../../WPrefs.app/MouseSettings.c:156 msgstr "현재 메뉴 유지"
#: ../../WPrefs.app/Text.c:181 ../../WPrefs.app/Themes.c:98
#: ../../WPrefs.app/WPrefs.c:558 ../../WPrefs.app/WPrefs.c:563
#: ../../WPrefs.app/WPrefs.c:574 ../../WPrefs.app/WPrefs.c:584
#: ../../WPrefs.app/WPrefs.c:590 ../../WPrefs.app/WPrefs.c:597
#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619
msgid "OK"
msgstr "확인"
#: ../../WPrefs.app/Menu.c:1304 #: ../../WPrefs.app/Menu.c:1347
msgid "Install default menu"
msgstr "기본 메뉴 설치"
#: ../../WPrefs.app/Menu.c:1353
msgid "Any changes made in this section will not be saved" msgid "Any changes made in this section will not be saved"
msgstr "이 섹션에서 수정한 내용은 저장되지 않습니다" msgstr "이 섹션에서 수정한 내용은 저장되지 않습니다"
#: ../../WPrefs.app/Menu.c:1369 #: ../../WPrefs.app/Menu.c:1419
msgid "Applications Menu Definition" msgid "Applications Menu Definition"
msgstr "애플리케이션 메뉴 정의" msgstr "애플리케이션 메뉴 정의"
@@ -772,20 +800,11 @@ msgstr "ȭ
msgid "Menu Preferences" msgid "Menu Preferences"
msgstr "메뉴 설정" msgstr "메뉴 설정"
#: ../../WPrefs.app/MouseSettings.c:148 #: ../../WPrefs.app/MouseSettings.c:147
#, c-format msgid "Invalid mouse acceleration value. Must be a positive real value."
msgid "Accel.: %.2f" msgstr "잘못된 마우스 가속 임계치 값. 가속 전에 움직일 픽셀의 수여야 함."
msgstr "가속.: %.2f"
#: ../../WPrefs.app/MouseSettings.c:154 ../../WPrefs.app/Text.c:181 #: ../../WPrefs.app/MouseSettings.c:170
#: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:558
#: ../../WPrefs.app/WPrefs.c:563 ../../WPrefs.app/WPrefs.c:572
#: ../../WPrefs.app/WPrefs.c:582 ../../WPrefs.app/WPrefs.c:590
#: ../../WPrefs.app/WPrefs.c:614 ../../WPrefs.app/WPrefs.c:619
msgid "Error"
msgstr "에러"
#: ../../WPrefs.app/MouseSettings.c:155
msgid "" msgid ""
"Invalid mouse acceleration threshold value. Must be the number of pixels to " "Invalid mouse acceleration threshold value. Must be the number of pixels to "
"travel before accelerating." "travel before accelerating."
@@ -793,18 +812,18 @@ msgstr ""
"잘못된 마우스 가속 임계치 값입니다. 가속 전에 움직일 픽셀의 수가 되어야 " "잘못된 마우스 가속 임계치 값입니다. 가속 전에 움직일 픽셀의 수가 되어야 "
"합니다." "합니다."
#: ../../WPrefs.app/MouseSettings.c:209 #: ../../WPrefs.app/MouseSettings.c:225
#, c-format #, c-format
msgid "mouse button %s not supported by WPrefs." msgid "mouse button %s not supported by WPrefs."
msgstr "마우스 버튼 %s 는 WPrefs에서 지원하지 않습니다." msgstr "마우스 버튼 %s 는 WPrefs에서 지원하지 않습니다."
#: ../../WPrefs.app/MouseSettings.c:243 ../../WPrefs.app/MouseSettings.c:254 #: ../../WPrefs.app/MouseSettings.c:259 ../../WPrefs.app/MouseSettings.c:270
#: ../../WPrefs.app/MouseSettings.c:265 #: ../../WPrefs.app/MouseSettings.c:281
#, c-format #, c-format
msgid "bad value %s for option %s" msgid "bad value %s for option %s"
msgstr "%s 옵션에 잘못된 값 %s" msgstr "%s 옵션에 잘못된 값 %s"
#: ../../WPrefs.app/MouseSettings.c:325 #: ../../WPrefs.app/MouseSettings.c:341
#, c-format #, c-format
msgid "" msgid ""
"modifier key %s for option ModifierKey was not recognized. Using %s as " "modifier key %s for option ModifierKey was not recognized. Using %s as "
@@ -813,66 +832,70 @@ msgstr ""
"ModifierKey 의 수정자 키 값 %s 를 인식할 수 없습니다. 기본값인 %s 를 " "ModifierKey 의 수정자 키 값 %s 를 인식할 수 없습니다. 기본값인 %s 를 "
"사용합니다." "사용합니다."
#: ../../WPrefs.app/MouseSettings.c:350 #: ../../WPrefs.app/MouseSettings.c:366
msgid "could not retrieve keyboard modifier mapping" msgid "could not retrieve keyboard modifier mapping"
msgstr "키보드 수정자 매핑을 얻을 수 없습니다" msgstr "키보드 수정자 매핑을 얻을 수 없습니다"
#: ../../WPrefs.app/MouseSettings.c:497 #: ../../WPrefs.app/MouseSettings.c:513
msgid "Mouse Speed" msgid "Mouse Speed"
msgstr "마우스 속도" msgstr "마우스 속도"
#: ../../WPrefs.app/MouseSettings.c:564 #: ../../WPrefs.app/MouseSettings.c:575
msgid "Acceler.:"
msgstr "가속.:"
#: ../../WPrefs.app/MouseSettings.c:587
msgid "Threshold:" msgid "Threshold:"
msgstr "임계치:" msgstr "임계치:"
#: ../../WPrefs.app/MouseSettings.c:579 #: ../../WPrefs.app/MouseSettings.c:602
msgid "Double-Click Delay" msgid "Double-Click Delay"
msgstr "더블 클릭 지연" msgstr "더블 클릭 지연"
#: ../../WPrefs.app/MouseSettings.c:623 #: ../../WPrefs.app/MouseSettings.c:646
msgid "Test" msgid "Test"
msgstr "시험" msgstr "시험"
#: ../../WPrefs.app/MouseSettings.c:633 #: ../../WPrefs.app/MouseSettings.c:656
msgid "Workspace Mouse Actions" msgid "Workspace Mouse Actions"
msgstr "작업공간 마우스 동작" msgstr "작업공간 마우스 동작"
#: ../../WPrefs.app/MouseSettings.c:638 #: ../../WPrefs.app/MouseSettings.c:661
msgid "Disable mouse actions" msgid "Disable mouse actions"
msgstr "마우스 동작 사용 않음" msgstr "마우스 동작 사용 않음"
#: ../../WPrefs.app/MouseSettings.c:691 #: ../../WPrefs.app/MouseSettings.c:714
msgid "Applications menu" msgid "Applications menu"
msgstr "애플리케이션 메뉴" msgstr "애플리케이션 메뉴"
#: ../../WPrefs.app/MouseSettings.c:697 #: ../../WPrefs.app/MouseSettings.c:720
msgid "Window list menu" msgid "Window list menu"
msgstr "창 목록 메뉴" msgstr "창 목록 메뉴"
#: ../../WPrefs.app/MouseSettings.c:703 #: ../../WPrefs.app/MouseSettings.c:726
msgid "Select windows" msgid "Select windows"
msgstr "창 선택" msgstr "창 선택"
#: ../../WPrefs.app/MouseSettings.c:738 #: ../../WPrefs.app/MouseSettings.c:761
msgid "Mouse Grab Modifier" msgid "Mouse Grab Modifier"
msgstr "마우스 잡기 수정자(Modifier)" msgstr "마우스 잡기 수정자(Modifier)"
#: ../../WPrefs.app/MouseSettings.c:772 #: ../../WPrefs.app/MouseSettings.c:795
#, c-format #, c-format
msgid "could not create %s" msgid "could not create %s"
msgstr "%s 를 만들 수 없음" msgstr "%s 를 만들 수 없음"
#: ../../WPrefs.app/MouseSettings.c:788 #: ../../WPrefs.app/MouseSettings.c:811
#, c-format #, c-format
msgid "could not create temporary file %s" msgid "could not create temporary file %s"
msgstr "임시 파일 %s 를 만들 수 없음" msgstr "임시 파일 %s 를 만들 수 없음"
#: ../../WPrefs.app/MouseSettings.c:813 #: ../../WPrefs.app/MouseSettings.c:836
#, c-format #, c-format
msgid "could not rename file %s to %s\n" msgid "could not rename file %s to %s\n"
msgstr "%s 파일명을 %s 로 바꿀 수 없음\n" msgstr "%s 파일명을 %s 로 바꿀 수 없음\n"
#: ../../WPrefs.app/MouseSettings.c:896 #: ../../WPrefs.app/MouseSettings.c:919
msgid "Mouse Preferences" msgid "Mouse Preferences"
msgstr "마우스 설정" msgstr "마우스 설정"
@@ -1238,7 +1261,7 @@ msgstr "
msgid "" msgid ""
"WPrefs is free software and is distributed WITHOUT ANY WARRANTY under the " "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 " "terms of the GNU General Public License. Redistribution of the icons in this "
"program without the program is prohibited." "program separately from the program is prohibited."
msgstr "" msgstr ""
"WPrefs는 공개 소프트웨어이며 GNU General Public License를 따르며 배포에 따른 " "WPrefs는 공개 소프트웨어이며 GNU General Public License를 따르며 배포에 따른 "
"어떠한 책임도 지지 않습니다. 아이콘의 경우 WPrefs와 함께가 아니면 배포할 수 " "어떠한 책임도 지지 않습니다. 아이콘의 경우 WPrefs와 함께가 아니면 배포할 수 "
@@ -1297,8 +1320,8 @@ msgstr ""
"아닙니다." "아닙니다."
#: ../../WPrefs.app/WPrefs.c:602 #: ../../WPrefs.app/WPrefs.c:602
msgid "could not run \"wmaker -global_defaults_path\"." msgid "could not run \"wmaker --global_defaults_path\"."
msgstr "\"wmaker -global_defaults_path\"를 수행할 수 없습니다." msgstr "\"wmaker --global_defaults_path\"를 수행할 수 없습니다."
#: ../../WPrefs.app/WPrefs.c:617 #: ../../WPrefs.app/WPrefs.c:617
#, c-format #, c-format
@@ -1365,7 +1388,7 @@ msgid "...do not resize over dock"
msgstr "Dock을 덮지 않음" msgstr "Dock을 덮지 않음"
#: ../../WPrefs.app/WindowHandling.c:320 #: ../../WPrefs.app/WindowHandling.c:320
msgid "Keep transients above their owners" msgid "Open transients in same workspace as their owners"
msgstr "소유자 위에서는 일시적으로 창을 유지" msgstr "소유자 위에서는 일시적으로 창을 유지"
#: ../../WPrefs.app/WindowHandling.c:347 #: ../../WPrefs.app/WindowHandling.c:347
@@ -1399,41 +1422,45 @@ msgstr "Dock/Ŭ
msgid "Workspace Preferences" msgid "Workspace Preferences"
msgstr "작업공간 설정" msgstr "작업공간 설정"
#: ../../WPrefs.app/main.c:72 #: ../../WPrefs.app/main.c:71
#, c-format #, c-format
msgid "usage: %s [options]\n" msgid "usage: %s [options]\n"
msgstr "사용법: %s [옵션]\n" msgstr "사용법: %s [옵션]\n"
#: ../../WPrefs.app/main.c:73 #: ../../WPrefs.app/main.c:72
msgid "options:" msgid "options:"
msgstr "옵션:" msgstr "옵션:"
#: ../../WPrefs.app/main.c:74 #: ../../WPrefs.app/main.c:73
msgid " -display <display>\tdisplay to be used" msgid " -display <display>\tdisplay to be used"
msgstr "-display <display>\t사용할 디스플레이" msgstr "-display <display>\t사용할 디스플레이"
#: ../../WPrefs.app/main.c:75 #: ../../WPrefs.app/main.c:74
msgid " -version\t\tprint version number and exit" msgid " --version\t\tprint version number and exit"
msgstr "-version\t\t버젼 출력후 종료" msgstr "--version\t\t버젼 출력후 종료"
#: ../../WPrefs.app/main.c:132 #: ../../WPrefs.app/main.c:75
msgid " --help\t\tprint this message and exit"
msgstr "--help\t\t현재 메시지 출력 후 종료"
#: ../../WPrefs.app/main.c:134
#, c-format #, c-format
msgid "too few arguments for %s" msgid "too few arguments for %s"
msgstr "%s 의 인수가 너무 적음" msgstr "%s 의 인수가 너무 적음"
#: ../../WPrefs.app/main.c:154 #: ../../WPrefs.app/main.c:156
msgid "X server does not support locale" msgid "X server does not support locale"
msgstr "X 서버가 로케일을 지원하지 않음" msgstr "X 서버가 로케일을 지원하지 않음"
#: ../../WPrefs.app/main.c:157 #: ../../WPrefs.app/main.c:159
msgid "cannot set locale modifiers" msgid "cannot set locale modifiers"
msgstr "로케일 수정자(modifier)를 설정할 수 없음" msgstr "로케일 수정자(modifier)를 설정할 수 없음"
#: ../../WPrefs.app/main.c:163 #: ../../WPrefs.app/main.c:165
#, c-format #, c-format
msgid "could not open display %s" msgid "could not open display %s"
msgstr "디스플레이 %s를 열 수 없음" msgstr "디스플레이 %s를 열 수 없음"
#: ../../WPrefs.app/main.c:171 #: ../../WPrefs.app/main.c:173
msgid "could not initialize application" msgid "could not initialize application"
msgstr "애플리케이션을 초기화 할 수 없음" msgstr "애플리케이션을 초기화 할 수 없음"

1455
WPrefs.app/po/zh_TW.Big5.po Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@

View File

@@ -8,7 +8,7 @@ Description: N*EXTSTEP alike, good looking, fast and easy to use/configure
workspaces, easy to use application dock, very flexible menus, workspaces, easy to use application dock, very flexible menus,
graphical configuration, 13 types of decoration textures, graphical configuration, 13 types of decoration textures,
national language support, themes etc national language support, themes etc
Keywords: window-manager X11 GNUstep NEXTSTEP GNOME KDE Keywords: window-manager X11 GNUstep NEXTSTEP GNOME KDE OpenLook Motif
Author: kojima@windowmaker.org (Alfredo K. Kojima) Author: kojima@windowmaker.org (Alfredo K. Kojima)
Maintained-by: kojima@windowmaker.org (Alfredo K. Kojima) Maintained-by: kojima@windowmaker.org (Alfredo K. Kojima)
dan@windowmaker.org (Dan Pascu) dan@windowmaker.org (Dan Pascu)

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@

View File

@@ -1,5 +1,5 @@
defsdatadir = $(pkgdatadir)/Defaults defsdatadir = $(sysconfdir)/WindowMaker
defsdata_DATA = WMRootMenu WMWindowAttributes WindowMaker WMState WMGLOBAL defsdata_DATA = WMRootMenu WMWindowAttributes WindowMaker WMState WMGLOBAL
@@ -7,18 +7,19 @@ EXTRA_DIST = $(defsdata_DATA) WMWindowAttributes.in WindowMaker.in WMState.in
CLEANFILES = WMWindowAttributes WindowMaker WMState CLEANFILES = WMWindowAttributes WindowMaker WMState
WMWindowAttributes: $(srcdir)/WMWindowAttributes.in ./Makefile WMWindowAttributes: $(srcdir)/WMWindowAttributes.in
-rm -f WMWindowAttributes -rm -f WMWindowAttributes
sed -e "s:#extension#:@ICONEXT@:" \ sed -e "s:#extension#:@ICONEXT@:" \
$(srcdir)/WMWindowAttributes.in > WMWindowAttributes $(srcdir)/WMWindowAttributes.in > WMWindowAttributes
chmod 644 WMWindowAttributes chmod 644 WMWindowAttributes
WindowMaker: $(srcdir)/WindowMaker.in ./Makefile WindowMaker: $(srcdir)/WindowMaker.in
-rm -f WindowMaker -rm -f WindowMaker
sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in > WindowMaker sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in \
> WindowMaker
chmod 644 WindowMaker chmod 644 WindowMaker
WMState: $(srcdir)/WMState.in ./Makefile WMState: $(srcdir)/WMState.in
-rm -f WMState -rm -f WMState
sed -e "s:#wprefs#:$(wprefsdir)/WPrefs:" $(srcdir)/WMState.in > WMState sed -e "s:#wprefs#:$(wprefsdir)/WPrefs:" $(srcdir)/WMState.in > WMState
chmod 644 WMState chmod 644 WMState

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@
@@ -87,7 +87,7 @@ XLIBS = @XLIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
wprefsdir = @wprefsdir@ wprefsdir = @wprefsdir@
defsdatadir = $(pkgdatadir)/Defaults defsdatadir = $(sysconfdir)/WindowMaker
defsdata_DATA = WMRootMenu WMWindowAttributes WindowMaker WMState WMGLOBAL defsdata_DATA = WMRootMenu WMWindowAttributes WindowMaker WMState WMGLOBAL
@@ -217,18 +217,19 @@ mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean maintainer-clean-generic clean mostlyclean distclean maintainer-clean
WMWindowAttributes: $(srcdir)/WMWindowAttributes.in ./Makefile WMWindowAttributes: $(srcdir)/WMWindowAttributes.in
-rm -f WMWindowAttributes -rm -f WMWindowAttributes
sed -e "s:#extension#:@ICONEXT@:" \ sed -e "s:#extension#:@ICONEXT@:" \
$(srcdir)/WMWindowAttributes.in > WMWindowAttributes $(srcdir)/WMWindowAttributes.in > WMWindowAttributes
chmod 644 WMWindowAttributes chmod 644 WMWindowAttributes
WindowMaker: $(srcdir)/WindowMaker.in ./Makefile WindowMaker: $(srcdir)/WindowMaker.in
-rm -f WindowMaker -rm -f WindowMaker
sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in > WindowMaker sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in \
> WindowMaker
chmod 644 WindowMaker chmod 644 WindowMaker
WMState: $(srcdir)/WMState.in ./Makefile WMState: $(srcdir)/WMState.in
-rm -f WMState -rm -f WMState
sed -e "s:#wprefs#:$(wprefsdir)/WPrefs:" $(srcdir)/WMState.in > WMState sed -e "s:#wprefs#:$(wprefsdir)/WPrefs:" $(srcdir)/WMState.in > WMState
chmod 644 WMState chmod 644 WMState

View File

@@ -1,6 +1,6 @@
{ {
OpenTransientOnOwnerWorkspace = NO; OpenTransientOnOwnerWorkspace = NO;
EdgeResistance = 5; EdgeResistance = YES;
IconificationStyle = Zoom; IconificationStyle = Zoom;
IconPath = ( IconPath = (
"~/GNUstep/Library/Icons", "~/GNUstep/Library/Icons",
@@ -48,6 +48,9 @@
AutoArrangeIcons = NO; AutoArrangeIcons = NO;
AdvanceToNewWorkspace = NO; AdvanceToNewWorkspace = NO;
CycleWorkspaces = NO; CycleWorkspaces = NO;
#ifdef WEENDOZE_CYCLE
WindozeCycling = YES;
#endif /* WEENDOZE_CYCLE */
ResizeDisplay = line; ResizeDisplay = line;
MoveDisplay = floating; MoveDisplay = floating;
OpaqueMove = YES; OpaqueMove = YES;

View File

@@ -1,6 +1,6 @@
{ {
OpenTransientOnOwnerWorkspace = NO; OpenTransientOnOwnerWorkspace = NO;
EdgeResistance = 5; EdgeResistance = YES;
IconificationStyle = Zoom; IconificationStyle = Zoom;
IconPath = ( IconPath = (
"~/GNUstep/Library/Icons", "~/GNUstep/Library/Icons",
@@ -48,6 +48,9 @@
AutoArrangeIcons = NO; AutoArrangeIcons = NO;
AdvanceToNewWorkspace = NO; AdvanceToNewWorkspace = NO;
CycleWorkspaces = NO; CycleWorkspaces = NO;
#ifdef WEENDOZE_CYCLE
WindozeCycling = YES;
#endif /* WEENDOZE_CYCLE */
ResizeDisplay = line; ResizeDisplay = line;
MoveDisplay = floating; MoveDisplay = floating;
OpaqueMove = YES; OpaqueMove = YES;

View File

@@ -7,7 +7,7 @@ EXTRA_DIST =
CLEANFILES = Default.iconset CLEANFILES = Default.iconset
Default.iconset: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes ./Makefile Default.iconset: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes
-rm -f Default.iconset -rm -f Default.iconset
cp $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes Default.iconset cp $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes Default.iconset
chmod 644 Default.iconset chmod 644 Default.iconset

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@
@@ -217,7 +217,7 @@ mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean maintainer-clean-generic clean mostlyclean distclean maintainer-clean
Default.iconset: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes ./Makefile Default.iconset: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes
-rm -f Default.iconset -rm -f Default.iconset
cp $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes Default.iconset cp $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes Default.iconset
chmod 644 Default.iconset chmod 644 Default.iconset

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@

View File

@@ -2,10 +2,10 @@ The icons listed in the end of this file and their correspondent xpm versions
were made by Marco van Hylckama Vlieg. were made by Marco van Hylckama Vlieg.
They may be distributed freely and/or modified as long as the original They may be distributed freely and/or modified as long as the original
Author is mentioned! Author is mentioned!
marco@windowmaker.org
clip2.tiff is based on an icon by Vinny Ferrari. clip2.tiff is based on an icon by Vinny Ferrari.
fatal@global.uibk.ac.at
BitchX.tiff BitchX.tiff
DefaultAppIcon.tiff DefaultAppIcon.tiff

View File

@@ -30,6 +30,7 @@ prefsdata_DATA =\
menu.se\ menu.se\
menu.sl\ menu.sl\
menu.tr\ menu.tr\
menu.zh_TW.Big5\
plmenu\ plmenu\
plmenu.fr\ plmenu.fr\
plmenu.hr\ plmenu.hr\

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@
@@ -91,7 +91,7 @@ SUBDIRS = Backgrounds Defaults IconSets Icons Pixmaps Styles Themes
prefsdatadir = $(pkgdatadir) prefsdatadir = $(pkgdatadir)
prefsdata_DATA = README README.themes autostart.sh exitscript.sh menu menu.ca menu.cz menu.de menu.dk menu.el menu.es menu.fi menu.fr menu.gl menu.he menu.hr menu.hu menu.it menu.ja menu.ko menu.nl menu.no menu.pt menu.ru menu.se menu.sl menu.tr plmenu plmenu.fr plmenu.hr wmmacros xtree.dat prefsdata_DATA = README README.themes autostart.sh exitscript.sh menu menu.ca menu.cz menu.de menu.dk menu.el menu.es menu.fi menu.fr menu.gl menu.he menu.hr menu.hu menu.it menu.ja menu.ko menu.nl menu.no menu.pt menu.ru menu.se menu.sl menu.tr menu.zh_TW.Big5 plmenu plmenu.fr plmenu.hr wmmacros xtree.dat
EXTRA_DIST = $(prefsdata_DATA) mkMakefile EXTRA_DIST = $(prefsdata_DATA) mkMakefile

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@

View File

@@ -56,4 +56,4 @@ menu.dk Danish John M. Lockard <jlockard@math.lsa.umich.edu>
menu.sl Slovene Alen Salamun <snowman@hal9000.medinet.si> menu.sl Slovene Alen Salamun <snowman@hal9000.medinet.si>
menu.hu Hungarian Csanaki Csaba <prew@mail.matav.hu> menu.hu Hungarian Csanaki Csaba <prew@mail.matav.hu>
menu.ca Català Carles Amig<F3> dj_fr3nd@hotmail.com menu.ca Català Carles Amig<F3> dj_fr3nd@hotmail.com
menu.zh_TW.Big5 Chinese Li Wei Jih <lwj83@cs.ccu.edu.tw>

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@

View File

@@ -2,7 +2,7 @@ SUBDIRS = Night.themed Checker.themed
defsdatadir = $(pkgdatadir)/Themes defsdatadir = $(pkgdatadir)/Themes
defsdata_DATA = Default.style OpenStep.style Pastel.style defsdata_DATA = Default.style OpenStep.style Pastel.style SteelBlueSilk.style
EXTRA_DIST = $(defsdata_DATA) EXTRA_DIST = $(defsdata_DATA)

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@
@@ -91,7 +91,7 @@ SUBDIRS = Night.themed Checker.themed
defsdatadir = $(pkgdatadir)/Themes defsdatadir = $(pkgdatadir)/Themes
defsdata_DATA = Default.style OpenStep.style Pastel.style defsdata_DATA = Default.style OpenStep.style Pastel.style SteelBlueSilk.style
EXTRA_DIST = $(defsdata_DATA) EXTRA_DIST = $(defsdata_DATA)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

View File

@@ -62,13 +62,13 @@ host_triplet = @host@
CC = @CC@ CC = @CC@
CPP_PATH = @CPP_PATH@ CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@ DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@ GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LD = @LD@ LD = @LD@
LIBPL = @LIBPL@ LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LITE = @LITE@ LITE = @LITE@
LN_S = @LN_S@ LN_S = @LN_S@

View File

@@ -0,0 +1,47 @@
{
TitleJustify = center;
ClipTitleFont = "-b&h-lucida-medium-r-normal-*-10-*-*-*-p-*-iso8859-1";
WindowTitleFont = "-b&h-lucida-medium-r-normal-*-12-*-*-*-p-*-iso8859-1";
MenuTitleFont = "-b&h-lucida-bold-r-normal-*-12-*-*-*-p-*-iso8859-1";
MenuTextFont = "-b&h-lucida-medium-r-normal-*-12-*-*-*-p-*-iso8859-1";
IconTitleFont = "-b&h-lucida-medium-r-normal-*-10-*-*-*-p-*-iso8859-1";
DisplayFont = "-b&h-lucida-medium-r-normal-*-12-*-*-*-p-*-iso8859-1";
HighlightColor = white;
HighlightTextColor = black;
ClipTitleColor = white;
CClipTitleColor = gray60;
FTitleColor = white;
PTitleColor = white;
UTitleColor = gray20;
FTitleBack = (
mdgradient,
"#18191f",
"#939abd",
"#616185",
"#616185",
"#5f5f83",
"#555575",
"#59597a",
"#555575",
"#939abd"
);
PTitleBack = (mhgradient, "#5a5c66", "rgb:70/72/7e", "rgb:45/47/4e");
UTitleBack = (mhgradient, "#989aa6", "#9fa1b5", "#86879b");
MenuTitleColor = white;
MenuTextColor = white;
MenuDisabledColor = gray60;
MenuTitleBack = (mvgradient, "#18191f", "#474967", "#413b6d");
MenuTextBack = (mhgradient, "#384246", "#707080", "#4a4a61");
IconBack = (
mdgradient,
gray40,
"#6d6aa4",
"#564e8c",
"#41436c",
"#464771",
"#595090"
);
IconTitleColor = white;
IconTitleBack = "#18191f";
WorkspaceBack = (mvgradient, "rgb:50/50/75", "#6a6f9e", "#4b4f70", "#28293c");
}

View File

@@ -10,7 +10,7 @@
* *
* SHORTCUT specifies a shortcut for that item. <Shortcut> has the * SHORTCUT specifies a shortcut for that item. <Shortcut> has the
* same syntax of the shortcuts key options in the * same syntax of the shortcuts key options in the
* ~/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or MiniaturizeKey. * $HOME/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or MiniaturizeKey.
* *
* You can't specify a shortcut for a MENU or OPEN_MENU entry. * You can't specify a shortcut for a MENU or OPEN_MENU entry.
* *
@@ -93,9 +93,9 @@
* // creates a submenu with the contents of /usr/openwin/bin * // creates a submenu with the contents of /usr/openwin/bin
* "XView apps" OPEN_MENU "/usr/openwin/bin" * "XView apps" OPEN_MENU "/usr/openwin/bin"
* // some X11 apps in different directories * // some X11 apps in different directories
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // set some background images * // set some background images
* "Background" OPEN_MENU -noext ~/images /usr/share/images WITH wmsetbg -u -t * "Background" OPEN_MENU -noext $HOME/images /usr/share/images WITH wmsetbg -u -t
* // inserts the style.menu in this entry * // inserts the style.menu in this entry
* "Style" OPEN_MENU style.menu * "Style" OPEN_MENU style.menu
* "Test" END * "Test" END
@@ -173,9 +173,9 @@
"Workspace" END "Workspace" END
"Appearance" MENU "Appearance" MENU
"Themes" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle "Themes" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"Styles" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle "Styles" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"Icon Sets" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons "Icon Sets" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"Background" MENU "Background" MENU
"Solid" MENU "Solid" MENU
"Black" WS_BACK '(solid, black)' "Black" WS_BACK '(solid, black)'
@@ -197,10 +197,10 @@
"Grey Shades" WS_BACK '(vgradient, "#636380", "#131318")' "Grey Shades" WS_BACK '(vgradient, "#636380", "#131318")'
"Wine Shades" WS_BACK '(vgradient, "#600040", "#180010")' "Wine Shades" WS_BACK '(vgradient, "#600040", "#180010")'
"Gradient" END "Gradient" END
"Images" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Images" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Background" END "Background" END
"Save Theme" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name,Enter file name:)" "Save Theme" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name,Enter file name:)"
"Save IconSet" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name,Enter file name:)" "Save IconSet" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name,Enter file name:)"
"Appearance" END "Appearance" END
"Exit" MENU "Exit" MENU

View File

@@ -12,7 +12,7 @@
* *
* TECLA especifica una combinació de tecles per aquest objecte. <Tecla> té * TECLA especifica una combinació de tecles per aquest objecte. <Tecla> té
* la mateixa sintaxis que les combinacions de tecles especificades al * la mateixa sintaxis que les combinacions de tecles especificades al
* fitxer ~/GNUstep/Defaults/WindowMaker , com a RootMenuKey o bé * fitxer $HOME/GNUstep/Defaults/WindowMaker , com a RootMenuKey o bé
* MiniaturizeKey. * MiniaturizeKey.
* *
* No es pot especificar una combinació de tecles per a un MENU o un * No es pot especificar una combinació de tecles per a un MENU o un
@@ -96,9 +96,9 @@
* // crea un submenu amb els continguts de /usr/openwin/bin * // crea un submenu amb els continguts de /usr/openwin/bin
* "XView apps" OPEN_MENU "/usr/openwin/bin" * "XView apps" OPEN_MENU "/usr/openwin/bin"
* // Algunes aplicacions X de diferents directoris * // Algunes aplicacions X de diferents directoris
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // algunes imatges de fondo de l'escriptori * // algunes imatges de fondo de l'escriptori
* "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
* // inserta el fitxer style.menu * // inserta el fitxer style.menu
* "Style" OPEN_MENU style.menu * "Style" OPEN_MENU style.menu
* "Test" END * "Test" END
@@ -175,9 +175,9 @@
"Escriptori" END "Escriptori" END
"Aparença" MENU "Aparença" MENU
"Temes" OPEN_MENU THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle "Temes" OPEN_MENU THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"Estils" OPEN_MENU STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle "Estils" OPEN_MENU STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"Jocs d'Icones" OPEN_MENU ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons "Jocs d'Icones" OPEN_MENU ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"Fons de pantalla" MENU "Fons de pantalla" MENU
"Sòlid" MENU "Sòlid" MENU
"Negre" WS_BACK '(solid, black)' "Negre" WS_BACK '(solid, black)'
@@ -199,10 +199,10 @@
"Degradat Gris" WS_BACK '(vgradient,"#636380", "#131318")' "Degradat Gris" WS_BACK '(vgradient,"#636380", "#131318")'
"Degradat Lila" WS_BACK '(vgradient,"#600040", "#180010")' "Degradat Lila" WS_BACK '(vgradient,"#600040", "#180010")'
"Degradat" END "Degradat" END
"Imatges" OPEN_MENU BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Imatges" OPEN_MENU BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Fons de pantalla" END "Fons de pantalla" END
"Guardar Tema" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Guardar Tema" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"Guardar Joc d'Icones" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Guardar Joc d'Icones" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"Aparença" END "Aparença" END
"Sortir" MENU "Sortir" MENU

View File

@@ -9,7 +9,7 @@
* skal omgives med " hvis den indeholder mellemrum. * skal omgives med " hvis den indeholder mellemrum.
* *
* SHORTCUT angiver en genvej for menuobjektet. <Genvej> har samme * SHORTCUT angiver en genvej for menuobjektet. <Genvej> har samme
* syntaks som genvejene i filen ~/GNUStep/Defaults/WindowMaker. * syntaks som genvejene i filen $HOME/GNUStep/Defaults/WindowMaker.
* *
* Man kan ikke angive en genvej for kommandoerne MENU og OPEN_MENU. * Man kan ikke angive en genvej for kommandoerne MENU og OPEN_MENU.
* *
@@ -88,9 +88,9 @@
* // skaber en undermenu med indholdet af /usr/openwin/bin * // skaber en undermenu med indholdet af /usr/openwin/bin
* "XView apps" OPEN_MENU "/usr/openwin/bin" * "XView apps" OPEN_MENU "/usr/openwin/bin"
* // nogle X11-programmer i forskellige kataloger * // nogle X11-programmer i forskellige kataloger
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // sæt et baggrundsbillede * // sæt et baggrundsbillede
* "Baggrund" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t * "Baggrund" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
* // indføjer style.menu her * // indføjer style.menu her
* "Stil" OPEN_MENU style.menu * "Stil" OPEN_MENU style.menu
* "Test" END * "Test" END
@@ -169,9 +169,9 @@
"Arbejdsbord" END "Arbejdsbord" END
"Udseende" MENU "Udseende" MENU
"Temaer" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle "Temaer" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"Stil" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle "Stil" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"Ikonsæt" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons "Ikonsæt" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"Baggrund" MENU "Baggrund" MENU
"Ensfarvet" MENU "Ensfarvet" MENU
"Sort" WS_BACK '(solid, black)' "Sort" WS_BACK '(solid, black)'
@@ -187,10 +187,10 @@
"Flag" WS_BACK '(mdgradient, green, red, white, green)' "Flag" WS_BACK '(mdgradient, green, red, white, green)'
"Himmel" WS_BACK '(vgradient, blue4, white)' "Himmel" WS_BACK '(vgradient, blue4, white)'
"Nuancer" END "Nuancer" END
"Billeder" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Billeder" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Baggrund" END "Baggrund" END
"Gem tema" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Gem tema" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"Gem ikonsæt" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Gem ikonsæt" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"Udseende" END "Udseende" END
"Afslut" MENU "Afslut" MENU

View File

@@ -11,7 +11,7 @@
* *
* SHORTCUT είναι ο συνδυασμός πλήκτρων για το συγκεκριμένο πρόγραμμα π.χ: * SHORTCUT είναι ο συνδυασμός πλήκτρων για το συγκεκριμένο πρόγραμμα π.χ:
* "Meta+1". Άλλα παραδείγματα θα δείτε στο αχρείο: * "Meta+1". Άλλα παραδείγματα θα δείτε στο αχρείο:
* ~/GNUstep/Defaults/WindowMaker * $HOME/GNUstep/Defaults/WindowMaker
* *
* Δεν μπορεί να δηλωθεί ένα shortcut για MENU και για OPEN_MENU εντολή. * Δεν μπορεί να δηλωθεί ένα shortcut για MENU και για OPEN_MENU εντολή.
* *
@@ -43,7 +43,7 @@
* θα ανακληθούν την επόμενη φορά που ο χρήστης * θα ανακληθούν την επόμενη φορά που ο χρήστης
* εκκινίσει τον Window Maker μέχρι η εντολή SAVE_SESSION ή * εκκινίσει τον Window Maker μέχρι η εντολή SAVE_SESSION ή
* CLEAR_SESSION χρησιμοποιηθούν. Αν στο αρχείο Window Maker του * CLEAR_SESSION χρησιμοποιηθούν. Αν στο αρχείο Window Maker του
* καταλόγου "~/GNUstep/Defaults/" υπάρχει η εντολή: * καταλόγου "$HOME/GNUstep/Defaults/" υπάρχει η εντολή:
* "SaveSessionOnExit = Yes;", τότε όλα τα παραπάνω γίνονται * "SaveSessionOnExit = Yes;", τότε όλα τα παραπάνω γίνονται
* αυτόματα με κάθε έξοδο του χρήστη από τον Window Maker, * αυτόματα με κάθε έξοδο του χρήστη από τον Window Maker,
* ακυρώνοντας ουσιαστικά κάθε προηγούμενη χρήση τως εντολών * ακυρώνοντας ουσιαστικά κάθε προηγούμενη χρήση τως εντολών
@@ -97,9 +97,9 @@
* // creates a submenu with the contents of /usr/openwin/bin * // creates a submenu with the contents of /usr/openwin/bin
* "XView apps" OPEN_MENU "/usr/openwin/bin" * "XView apps" OPEN_MENU "/usr/openwin/bin"
* // some X11 apps in different directories * // some X11 apps in different directories
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // set some background images * // set some background images
* "Φόντο" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t * "Φόντο" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
* // inserts the style.menu in this entry * // inserts the style.menu in this entry
* "Στυλ" OPEN_MENU style.menu * "Στυλ" OPEN_MENU style.menu
* "Δοκιμαστικό" END * "Δοκιμαστικό" END
@@ -177,9 +177,9 @@
"Επιφάνεια" END "Επιφάνεια" END
"Εμφάνιση" MENU "Εμφάνιση" MENU
"Θέματα" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle "Θέματα" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"Στυλ" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle "Στυλ" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"Ομάδα Εικονιδίων" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons "Ομάδα Εικονιδίων" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"Φόντο" MENU "Φόντο" MENU
"Μονόχρωμο" MENU "Μονόχρωμο" MENU
"Μαύρο" WS_BACK '(solid, black)' "Μαύρο" WS_BACK '(solid, black)'
@@ -195,10 +195,10 @@
"Σημαία" WS_BACK '(mdgradient, green, red, white, green)' "Σημαία" WS_BACK '(mdgradient, green, red, white, green)'
"Ουράνος" WS_BACK '(vgradient, blue4, white)' "Ουράνος" WS_BACK '(vgradient, blue4, white)'
"Διαβαθμισμένο" END "Διαβαθμισμένο" END
"Εικόνες" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Εικόνες" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Φόντο" END "Φόντο" END
"Αποθήκευση Θέματος" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Όνομα Θέματος)" "Αποθήκευση Θέματος" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Όνομα Θέματος)"
"Αποθήκευση Ομάδας Εικονιδίων" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(Όνομα Ομάδας)" "Αποθήκευση Ομάδας Εικονιδίων" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Όνομα Ομάδας)"
"Εμφάνιση" END "Εμφάνιση" END
"Έξοδος" MENU "Έξοδος" MENU

View File

@@ -78,9 +78,9 @@
* // crea un submenu con los contenidos de /usr/openwin/bin * // crea un submenu con los contenidos de /usr/openwin/bin
* "XView apps" OPEN_MENU "/usr/openwin/bin" * "XView apps" OPEN_MENU "/usr/openwin/bin"
* // algunas aplicaciones X11 de diversos directorios * // algunas aplicaciones X11 de diversos directorios
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // algunos fondos de escritorio * // algunos fondos de escritorio
* "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
* // inserta el fichero style.menu en esta entrada de menu * // inserta el fichero style.menu en esta entrada de menu
* "Style" OPEN_MENU style.menu * "Style" OPEN_MENU style.menu
* "Test" END * "Test" END
@@ -158,9 +158,9 @@
"Escritorio" END "Escritorio" END
"Apariencia" MENU "Apariencia" MENU
"Temas" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle "Temas" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"Estilos" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle "Estilos" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"Juegos de Iconos" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons "Juegos de Iconos" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"Fondo" MENU "Fondo" MENU
"Sólido" MENU "Sólido" MENU
"Black" WS_BACK '(solid, black)' "Black" WS_BACK '(solid, black)'
@@ -176,10 +176,10 @@
"Flag" WS_BACK '(mdgradient, green, red, white, green)' "Flag" WS_BACK '(mdgradient, green, red, white, green)'
"Sky" WS_BACK '(vgradient, blue4, white)' "Sky" WS_BACK '(vgradient, blue4, white)'
"Gradiente" END "Gradiente" END
"Imagenes" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Imagenes" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Fondo" END "Fondo" END
"Guardar Tema" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Guardar Tema" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"Guardar Juego de Iconos" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Guardar Juego de Iconos" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"Apariencia" END "Apariencia" END
"Salir" MENU "Salir" MENU

View File

@@ -82,9 +82,9 @@
* // creates a submenu with the contents of /usr/openwin/bin * // creates a submenu with the contents of /usr/openwin/bin
* "XView apps" OPEN_MENU "/usr/openwin/bin" * "XView apps" OPEN_MENU "/usr/openwin/bin"
* // some X11 apps in different directories * // some X11 apps in different directories
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // set some background images * // set some background images
* "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
* // inserts the style.menu in this entry * // inserts the style.menu in this entry
* "Style" OPEN_MENU style.menu * "Style" OPEN_MENU style.menu
* "Test" END * "Test" END
@@ -162,9 +162,9 @@
"Työtilat" END "Työtilat" END
"Ulkonäkö" MENU "Ulkonäkö" MENU
"Teemat" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle "Teemat" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"Tyylit" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle "Tyylit" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"Kuvakeryhmät" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons "Kuvakeryhmät" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"Taustat" MENU "Taustat" MENU
"Taustaväri" MENU "Taustaväri" MENU
"Musta" WS_BACK '(solid, black)' "Musta" WS_BACK '(solid, black)'
@@ -180,10 +180,10 @@
"Lippu" WS_BACK '(mdgradient, green, red, white, green)' "Lippu" WS_BACK '(mdgradient, green, red, white, green)'
"Taivas" WS_BACK '(vgradient, blue4, white)' "Taivas" WS_BACK '(vgradient, blue4, white)'
"Liukuväri" END "Liukuväri" END
"Taustakuvat" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Taustakuvat" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Taustat" END "Taustat" END
"Talleta teema" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Talleta teema" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"Talleta kuvakeryhmät" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Talleta kuvakeryhmät" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"Ulkonäkö" END "Ulkonäkö" END
"Poistu" MENU "Poistu" MENU

View File

@@ -10,7 +10,7 @@
* *
* SHORTCUT spécifie un raccourci pour une entrée dans le menu. <Raccourci> * 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 * a la même syntaxe que les options pour les raccourcis clavier dans le
* fichier ~/GNUstep/Defaults/WindowMaker, comme par example RootMenuKey ou * fichier $HOME/GNUstep/Defaults/WindowMaker, comme par example RootMenuKey ou
* encore MiniaturizeKey. * encore MiniaturizeKey.
* *
* Il n'est pas possible de spécifier un raccourci pour une entrée MENU * Il n'est pas possible de spécifier un raccourci pour une entrée MENU
@@ -142,9 +142,9 @@
* / Crée un sous menu avec le contenu de /usr/openwin/bin * / Crée un sous menu avec le contenu de /usr/openwin/bin
* "Applications XView" OPEN_MENU "/usr/openwin/bin" * "Applications XView" OPEN_MENU "/usr/openwin/bin"
* / Quelques applications X11 dans différents répertoires * / Quelques applications X11 dans différents répertoires
* "Applications X11" OPEN_MENU /usr/X11/bin ~/bin/X11 * "Applications X11" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* / Définir quelques images de fond * / Définir quelques images de fond
* "Fond d'écran" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t * "Fond d'écran" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
* / Insère le fichier "style.menu" dans cette entrée * / Insère le fichier "style.menu" dans cette entrée
* "Style" OPEN_MENU style.menu * "Style" OPEN_MENU style.menu
* "Test" END * "Test" END
@@ -222,9 +222,9 @@
"Espace de travail" END "Espace de travail" END
"Apparence" MENU "Apparence" MENU
"Thèmes" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle "Thèmes" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"Styles" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles 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 ~/GNUstep/Library/WindowMaker/IconSets WITH seticons "Jeu d'icônes" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"Fond d'écran" MENU "Fond d'écran" MENU
"Unifié" MENU "Unifié" MENU
"Noir" WS_BACK '(solid, black)' "Noir" WS_BACK '(solid, black)'
@@ -246,10 +246,10 @@
"Dégradés de Gris" WS_BACK '(vgradient, "#636380", "#131318")' "Dégradés de Gris" WS_BACK '(vgradient, "#636380", "#131318")'
"Dégradés de Bordeau" WS_BACK '(vgradient, "#600040", "#180010")' "Dégradés de Bordeau" WS_BACK '(vgradient, "#600040", "#180010")'
"Degradé" END "Degradé" END
"Images" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Images" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Fond d'écran" END "Fond d'écran" END
"Sauver le thème" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Nom du thème,Entrez un nom de fichier:)" "Sauver le thème" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Nom du thème,Entrez un nom de fichier:)"
"Sauver le jeu d'icônes" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(Nom du jeu d'icônes,Entrez un nom de fichier:)" "Sauver le jeu d'icônes" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(Nom du jeu d'icônes,Entrez un nom de fichier:)"
"Apparence" END "Apparence" END
"Quitter" MENU "Quitter" MENU

View File

@@ -82,9 +82,9 @@
* // creates a submenu with the contents of /usr/openwin/bin * // creates a submenu with the contents of /usr/openwin/bin
* "XView apps" OPEN_MENU "/usr/openwin/bin" * "XView apps" OPEN_MENU "/usr/openwin/bin"
* // some X11 apps in different directories * // some X11 apps in different directories
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // set some background images * // set some background images
* "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
* // inserts the style.menu in this entry * // inserts the style.menu in this entry
* "Style" OPEN_MENU style.menu * "Style" OPEN_MENU style.menu
* "Test" END * "Test" END
@@ -161,9 +161,9 @@
"äãåáò áçøî" END "äãåáò áçøî" END
"äàøî" MENU "äàøî" MENU
"Themes" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle "Themes" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"úåðåðâñ" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle "úåðåðâñ" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"íéðå÷ééà èñ" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons "íéðå÷ééà èñ" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"ò÷ø" MENU "ò÷ø" MENU
"Solid" MENU "Solid" MENU
"øåçù" WS_BACK '(solid, black)' "øåçù" WS_BACK '(solid, black)'
@@ -179,10 +179,10 @@
"Flag" WS_BACK '(vdgradient, blue, white, blue)' "Flag" WS_BACK '(vdgradient, blue, white, blue)'
"Sky" WS_BACK '(vgradient, blue4, white)' "Sky" WS_BACK '(vgradient, blue4, white)'
"Gradient" END "Gradient" END
"Images" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Images" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"ò÷ø" END "ò÷ø" END
"Save Theme" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Save Theme" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"Save IconSet" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Save IconSet" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"äàøî" END "äàøî" END
"äàéöé" MENU "äàéöé" MENU

View File

@@ -82,9 +82,9 @@
* // creates a submenu with the contents of /usr/openwin/bin * // creates a submenu with the contents of /usr/openwin/bin
* "XView apps" OPEN_MENU "/usr/openwin/bin" * "XView apps" OPEN_MENU "/usr/openwin/bin"
* // some X11 apps in different directories * // some X11 apps in different directories
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // set some background images * // set some background images
* "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t * "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
* // inserts the style.menu in this entry * // inserts the style.menu in this entry
* "Style" OPEN_MENU style.menu * "Style" OPEN_MENU style.menu
* "Test" END * "Test" END
@@ -163,9 +163,9 @@
"Radni prostor" END "Radni prostor" END
"Izgled" MENU "Izgled" MENU
"Teme" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle "Teme" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"Stilovi" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle "Stilovi" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"Setovi Ikona" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons "Setovi Ikona" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"Pozadina" MENU "Pozadina" MENU
"Boja" MENU "Boja" MENU
"Crna" WS_BACK '(solid, black)' "Crna" WS_BACK '(solid, black)'
@@ -181,10 +181,10 @@
"Zastava" WS_BACK '(mdgradient, green, red, white, green)' "Zastava" WS_BACK '(mdgradient, green, red, white, green)'
"Nebo" WS_BACK '(vgradient, blue4, white)' "Nebo" WS_BACK '(vgradient, blue4, white)'
"Preljev" END "Preljev" END
"Slike" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Slike" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Pozadina" END "Pozadina" END
"Snimi temu" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Snimi temu" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"Snimi set ikona" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Snimi set ikona" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"Izgled" END "Izgled" END
"Izlaz" MENU "Izlaz" MENU

Binary file not shown.

View File

@@ -88,9 +88,9 @@
* // /usr/openwin/bin中のファイルでサブメニューを作る * // /usr/openwin/bin中のファイルでサブメニューを作る
* "XView apps" OPEN_MENU "/usr/openwin/bin" * "XView apps" OPEN_MENU "/usr/openwin/bin"
* // 異なるディレクトリのX11アプリケーションを表示 * // 異なるディレクトリのX11アプリケーションを表示
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11 * "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // 背景の画像をセットする。 * // 背景の画像をセットする。
* "背景" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t * "背景" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
* // style.menuの内容をここに挿入する。 * // style.menuの内容をここに挿入する。
* "スタイル" OPEN_MENU style.menu * "スタイル" OPEN_MENU style.menu
* "テスト" END * "テスト" END
@@ -168,9 +168,9 @@
"ワークスペース" END "ワークスペース" END
"外観" MENU "外観" MENU
"テーマ" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle "テーマ" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"スタイル" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle "スタイル" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"アイコン集" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons "アイコン集" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"背景" MENU "背景" MENU
"ソリッド" MENU "ソリッド" MENU
"Black" WS_BACK '(solid, black)' "Black" WS_BACK '(solid, black)'
@@ -186,10 +186,10 @@
"Flag" WS_BACK '(mdgradient, green, red, white, green)' "Flag" WS_BACK '(mdgradient, green, red, white, green)'
"Sky" WS_BACK '(vgradient, blue4, white)' "Sky" WS_BACK '(vgradient, blue4, white)'
"グラデーション" END "グラデーション" END
"イメージ" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "イメージ" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"背景" END "背景" END
"現在の設定をテーマとしてセーブ" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "現在の設定をテーマとしてセーブ" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"現在のアイコン集をセーブ" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "現在のアイコン集をセーブ" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"外観" END "外観" END
"終了" MENU "終了" MENU

Some files were not shown because too many files have changed in this diff Show More