1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-18 12:00:31 +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>
bug fix in browser widget
Omar Cornut / Zoop <cornut@capway.com>
SteelBlueSilk theme
Sylvain CORRE <sylvain.corre@wanadoo.fr>
bug fix for MkLinux/PPC
@@ -65,7 +68,7 @@ Better detection of gfx libraries, added IconTitleColor/IconTitleBack
Greg Hayes <sdc@choice.net>
Twisted miniaturization animation
Alban Hertroys
Alban Hertroys <dalroi@wit401310.student.utwente.nl>
WINGs color panel
HIDEKI Fujimoto <hideki70@osk2.threewebnet.or.jp>
@@ -193,6 +196,10 @@ xv.tiff
David Wang <dwang@cisco.com>
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>
Fixed -visualid for screens that can do multiple depths. Another fix in
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
developers@windowmaker.org
developers@windowmaker.org Please, USE THIS FORM!!!
You can also report a bug in the WWW bug tracker at
http://windowmaker.org/cgi-bin/bugs or by sending this report

2
BUGS
View File

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

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:
.............................
@@ -35,6 +72,8 @@ Changes since version 0.50.2:
- fixed bug in start maximized
- added _WINDOWMAKER_NOTICEBOARD protocol
- added docklib
- updated utility parameter format to GNU standards
- removed libPropList from distribution and merged with GNOME one
Changes since version 0.50.1:
.............................

22
FAQ
View File

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

61
INSTALL
View File

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

11
Install
View File

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

View File

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

View File

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

View File

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

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
Window Maker has become a GNU program (part of the GNU Project).

21
README
View File

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

View File

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

2
TODO
View File

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

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:
............................

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

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)
{
proplist_t val;
@@ -288,16 +288,12 @@ WMGetUDFloatForKey(WMUserDefaults *database, char *defaultName)
val = WMGetUDObjectForKey(database, defaultName);
if (!val)
if (!val || !PLIsString(val))
return 0.0;
if (!PLIsString(val))
if (!(str = PLGetString(val)))
return 0.0;
str = PLGetString(val);
if (!str)
return 0.0;
if (sscanf(str, "%f", &value)!=1)
return 0.0;

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -328,8 +328,10 @@ checkIdleHandlers()
{
IdleHandler *handler, *tmp;
if (!idleHandler)
return;
if (!idleHandler) {
W_FlushIdleNotificationQueue();
return;
}
handler = idleHandler;
@@ -344,6 +346,7 @@ checkIdleHandlers()
handler = tmp;
}
W_FlushIdleNotificationQueue();
}
@@ -353,7 +356,7 @@ checkTimerHandlers()
{
TimerHandler *handler;
struct timeval now;
rightNow(&now);
while (timerHandler && IS_AFTER(now, timerHandler->when)) {
@@ -363,6 +366,8 @@ checkTimerHandlers()
(*handler->callback)(handler->clientData);
free(handler);
}
W_FlushASAPNotificationQueue();
}
@@ -797,7 +802,9 @@ W_WaitForEvent(Display *dpy, unsigned long xeventmask)
retval = fds[0].revents & (POLLIN|POLLRDNORM|POLLRDBAND|POLLPRI);
free(fds);
W_FlushASAPNotificationQueue();
return retval;
#else /* not HAVE_POLL */
#ifdef HAVE_SELECT
@@ -882,7 +889,9 @@ W_WaitForEvent(Display *dpy, unsigned long xeventmask)
handler = handler->next;
}
}
W_FlushASAPNotificationQueue();
return FD_ISSET(ConnectionNumber(dpy), &rset);
#else /* not HAVE_SELECT, not HAVE_POLL */
Neither select nor poll. You lose.
@@ -890,6 +899,7 @@ Neither select nor poll. You lose.
#endif /* HAVE_POLL */
}
void
WMNextEvent(Display *dpy, XEvent *event)
{

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,16 @@
/*
* 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"
@@ -29,6 +38,7 @@ void usage(void)
"\t%s [-options]\n"
"\n"
"options:\n"
" -s\t\tSave panel (default open panel)\n"
" -i <str>\tInitial directory (default /)\n"
" -t <str>\tQuery window title (default none)\n"
"\n"
@@ -42,16 +52,21 @@ void usage(void)
exit(0);
}
#define OPEN_PANEL_TYPE 0
#define SAVE_PANEL_TYPE 1
int main(int argc, char **argv)
{
Display *dpy = XOpenDisplay("");
WMScreen *scr;
WMPixmap *pixmap;
WMOpenPanel *panel;
WMOpenPanel *oPanel;
WMSavePanel *sPanel;
/* RImage *image;*/
char *title = NULL;
char *initial = "/";
int ch;
int panelType = OPEN_PANEL_TYPE;
extern char *optarg;
extern int optind;
@@ -63,9 +78,12 @@ int main(int argc, char **argv)
puts("could not open display");
exit(1);
}
while((ch = getopt(argc, argv, "i:ht:")) != -1)
while((ch = getopt(argc, argv, "si:ht:")) != -1)
switch(ch)
{
case 's':
panelType = SAVE_PANEL_TYPE;
break;
case 'i':
initial = optarg;
break;
@@ -76,24 +94,30 @@ int main(int argc, char **argv)
usage();
}
for(; optind <argc; optind++)
usage();
for(; optind <argc; optind++)
usage();
scr = WMCreateSimpleApplicationScreen(dpy);
scr = WMCreateSimpleApplicationScreen(dpy);
pixmap = WMCreatePixmapFromXPMData(scr, GNUSTEP_XPM);
WMSetApplicationIconImage(scr, pixmap); WMReleasePixmap(pixmap);
panel = WMGetOpenPanel(scr);
/*WMSetFilePanelAutoCompletion(panel, False);*/
/* The 3rd argument for this function is the initial name of the file,
* not the name of the window, although it's not implemented yet */
if (WMRunModalOpenPanelForDirectory(panel, NULL, initial, /*title*/ NULL, NULL) == True)
printf("%s\n", WMGetFilePanelFileName(panel));
else
printf("\n");
return 0;
pixmap = WMCreatePixmapFromXPMData(scr, GNUSTEP_XPM);
WMSetApplicationIconImage(scr, pixmap);
WMReleasePixmap(pixmap);
if (panelType == SAVE_PANEL_TYPE) {
sPanel = WMGetSavePanel(scr);
if (WMRunModalFilePanelForDirectory(sPanel, NULL, initial,
/*title*/ NULL, NULL) == True)
printf("%s\n", WMGetFilePanelFileName(sPanel));
else
printf("\n");
} else {
oPanel = WMGetOpenPanel(scr);
if (WMRunModalFilePanelForDirectory(oPanel, NULL, initial,
/*title*/ NULL, NULL) == True)
printf("%s\n", WMGetFilePanelFileName(oPanel));
else
printf("\n");
}
return 0;
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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
handleEvents(XEvent *event, void *data)
@@ -109,17 +135,29 @@ handleEvents(XEvent *event, void *data)
W_View *view = (W_View*)data;
if (event->type == ConfigureNotify) {
if (event->xconfigure.width != view->size.width
|| event->xconfigure.height != view->size.height) {
view->size.width = event->xconfigure.width;
view->size.height = event->xconfigure.height;
if (view->flags.notifySizeChanged) {
view->size.width = event->xconfigure.width;
view->size.height = event->xconfigure.height;
WMPostNotificationName(WMViewSizeDidChangeNotification,
view, NULL);
}
}
if (event->xconfigure.x != view->pos.x
|| event->xconfigure.y != view->pos.y) {
if (event->xconfigure.send_event) {
view->pos.x = event->xconfigure.x;
view->pos.y = event->xconfigure.y;
} else {
getPosition(view->screen->display, view->window,
&view->pos.x, &view->pos.y);
}
}
}
}
@@ -265,34 +303,26 @@ W_CheckInternalMessage(W_Screen *scr, XClientMessageEvent *cev, int event)
void
W_ReparentView(W_View *view, W_View *newParent)
W_ReparentView(W_View *view, W_View *newParent, int x, int y)
{
int wasMapped;
Display *dpy = view->screen->display;
assert(!view->flags.topLevel);
wasMapped = view->flags.mapped;
if (wasMapped)
W_UnmapView(view);
unparentView(view);
adoptChildView(newParent, view);
if (view->flags.realized) {
if (newParent->flags.realized) {
XReparentWindow(dpy, view->window, newParent->window, 0, 0);
XReparentWindow(dpy, view->window, newParent->window, x, y);
} else {
wwarning("trying to reparent realized view to unrealized parent");
return;
}
}
view->pos.x = 0;
view->pos.y = 0;
if (wasMapped)
W_MapView(view);
view->pos.x = x;
view->pos.y = y;
}
@@ -382,6 +412,11 @@ destroyView(W_View *view)
return;
view->flags.alreadyDead = 1;
if (view->nextFocusChain)
view->nextFocusChain->prevFocusChain = view->prevFocusChain;
if (view->prevFocusChain)
view->prevFocusChain->nextFocusChain = view->nextFocusChain;
/* Do not leave focus in a inexisting control */
if (W_FocusedViewOfToplevel(W_TopLevelOfView(view))==view)
W_SetFocusOfTopLevel(W_TopLevelOfView(view), NULL);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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,
WMTextDidBeginEditingNotification, panel->pixT);
WMSetTextFieldNextTextField(panel->pixT, panel->icoT);
WMSetTextFieldPrevTextField(panel->pixT, panel->icoT);
WMMapSubwidgets(panel->pixF);
WMRealizeWidget(panel->frame);

View File

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

View File

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

View File

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

View File

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

View File

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

Binary file not shown.

View File

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

View File

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

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

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@
CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@
LD = @LD@
LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@
LITE = @LITE@
LN_S = @LN_S@

View File

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

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,
graphical configuration, 13 types of decoration textures,
national language support, themes etc
Keywords: window-manager X11 GNUstep NEXTSTEP GNOME KDE
Keywords: window-manager X11 GNUstep NEXTSTEP GNOME KDE OpenLook Motif
Author: kojima@windowmaker.org (Alfredo K. Kojima)
Maintained-by: kojima@windowmaker.org (Alfredo K. Kojima)
dan@windowmaker.org (Dan Pascu)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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.
They may be distributed freely and/or modified as long as the original
Author is mentioned!
marco@windowmaker.org
clip2.tiff is based on an icon by Vinny Ferrari.
fatal@global.uibk.ac.at
BitchX.tiff
DefaultAppIcon.tiff

View File

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

View File

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

View File

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

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.hu Hungarian Csanaki Csaba <prew@mail.matav.hu>
menu.ca Catal<61> 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@
CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLFLAGS = @GFXLFLAGS@
GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@
LD = @LD@
LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@
LITE = @LITE@
LN_S = @LN_S@

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

@@ -9,7 +9,7 @@
* skal omgives med " hvis den indeholder mellemrum.
*
* 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.
*
@@ -88,9 +88,9 @@
* // skaber en undermenu med indholdet af /usr/openwin/bin
* "XView apps" OPEN_MENU "/usr/openwin/bin"
* // nogle X11-programmer i forskellige kataloger
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11
* "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // s<>t et baggrundsbillede
* "Baggrund" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t
* "Baggrund" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
* // indf<64>jer style.menu her
* "Stil" OPEN_MENU style.menu
* "Test" END
@@ -169,9 +169,9 @@
"Arbejdsbord" END
"Udseende" MENU
"Temaer" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle
"Stil" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle
"Ikons<6E>t" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons
"Temaer" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"Stil" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"Ikons<6E>t" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"Baggrund" MENU
"Ensfarvet" MENU
"Sort" WS_BACK '(solid, black)'
@@ -187,10 +187,10 @@
"Flag" WS_BACK '(mdgradient, green, red, white, green)'
"Himmel" WS_BACK '(vgradient, blue4, white)'
"Nuancer" END
"Billeder" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Billeder" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Baggrund" END
"Gem tema" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"Gem ikons<6E>t" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"Gem tema" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"Gem ikons<6E>t" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"Udseende" END
"Afslut" MENU

View File

@@ -11,7 +11,7 @@
*
* SHORTCUT <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>.<EFBFBD>:
* "Meta+1". <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* ~/GNUstep/Defaults/WindowMaker
* $HOME/GNUstep/Defaults/WindowMaker
*
* <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> shortcut <EFBFBD><EFBFBD><EFBFBD> MENU <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> OPEN_MENU <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
*
@@ -43,7 +43,7 @@
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> Window Maker <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SAVE_SESSION <EFBFBD>
* CLEAR_SESSION <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Window Maker <EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "~/GNUstep/Defaults/" <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "$HOME/GNUstep/Defaults/" <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* "SaveSessionOnExit = Yes;", <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> Window Maker,
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -97,9 +97,9 @@
* // creates a submenu with the contents of /usr/openwin/bin
* "XView apps" OPEN_MENU "/usr/openwin/bin"
* // some X11 apps in different directories
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11
* "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // set some background images
* "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t
* "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
* // inserts the style.menu in this entry
* "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU style.menu
* "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" END
@@ -177,9 +177,9 @@
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" END
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" MENU
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" MENU
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" MENU
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" WS_BACK '(solid, black)'
@@ -195,10 +195,10 @@
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" WS_BACK '(mdgradient, green, red, white, green)'
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" WS_BACK '(vgradient, blue4, white)'
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" END
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" END
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" END
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" MENU

View File

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

View File

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

View File

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

View File

@@ -82,9 +82,9 @@
* // creates a submenu with the contents of /usr/openwin/bin
* "XView apps" OPEN_MENU "/usr/openwin/bin"
* // some X11 apps in different directories
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11
* "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // set some background images
* "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t
* "Background" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
* // inserts the style.menu in this entry
* "Style" OPEN_MENU style.menu
* "Test" END
@@ -161,9 +161,9 @@
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>" END
"<22><><EFBFBD><EFBFBD>" MENU
"Themes" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons
"Themes" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"<22><><EFBFBD>" MENU
"Solid" MENU
"<22><><EFBFBD><EFBFBD>" WS_BACK '(solid, black)'
@@ -179,10 +179,10 @@
"Flag" WS_BACK '(vdgradient, blue, white, blue)'
"Sky" WS_BACK '(vgradient, blue4, white)'
"Gradient" END
"Images" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Images" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"<22><><EFBFBD>" END
"Save Theme" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"Save IconSet" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"Save Theme" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"Save IconSet" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"<22><><EFBFBD><EFBFBD>" END
"<22><><EFBFBD><EFBFBD><EFBFBD>" MENU

View File

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

Binary file not shown.

View File

@@ -88,9 +88,9 @@
* // /usr/openwin/bin<69><6E><EFBFBD>Υե<CEA5><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǥ<EFBFBD><C7A5>֥<EFBFBD><D6A5>˥塼<CBA5><E5A1BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* "XView apps" OPEN_MENU "/usr/openwin/bin"
* // <20>ۤʤ<DBA4><CAA4>ǥ<EFBFBD><C7A5><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD>X11<31><31><EFBFBD>ץꥱ<D7A5><EAA5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD><C9BD>
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11
* "X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
* // <20>طʤβ<CAA4><CEB2><EFBFBD><EFBFBD>򥻥åȤ<C3A5><C8A4>
* "<22>ط<EFBFBD>" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t
* "<22>ط<EFBFBD>" OPEN_MENU $HOME/images /usr/share/images WITH wmsetbg -u -t
* // style.menu<6E><75><EFBFBD><EFBFBD><EFBFBD>Ƥ򤳤<C6A4><F2A4B3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU style.menu
* "<22>ƥ<EFBFBD><C6A5><EFBFBD>" END
@@ -168,9 +168,9 @@
"<22><EFBFBD><EFA1BC><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD>" END
"<22><><EFBFBD><EFBFBD>" MENU
"<22>ơ<EFBFBD><C6A1><EFBFBD>" OPEN_MENU -noext THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons
"<22>ơ<EFBFBD><C6A1><EFBFBD>" OPEN_MENU -noext THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" OPEN_MENU -noext ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"<22>ط<EFBFBD>" MENU
"<22><><EFBFBD><EFBFBD><EFBFBD>å<EFBFBD>" MENU
"Black" WS_BACK '(solid, black)'
@@ -186,10 +186,10 @@
"Flag" WS_BACK '(mdgradient, green, red, white, green)'
"Sky" WS_BACK '(vgradient, blue4, white)'
"<22><><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" END
"<22><><EFBFBD><EFBFBD><E1A1BC>" OPEN_MENU -noext BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"<22><><EFBFBD><EFBFBD><E1A1BC>" OPEN_MENU -noext BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"<22>ط<EFBFBD>" END
"<22><><EFBFBD>ߤ<EFBFBD><DFA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1>ޤȤ<DEA4><C8A4>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD>" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"<22><><EFBFBD>ߤΥ<DFA4><CEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󽸤򥻡<F3BDB8A4><F2A5BBA1><EFBFBD>" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"<22><><EFBFBD>ߤ<EFBFBD><DFA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1>ޤȤ<DEA4><C8A4>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD>" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"<22><><EFBFBD>ߤΥ<DFA4><CEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󽸤򥻡<F3BDB8A4><F2A5BBA1><EFBFBD>" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"<22><><EFBFBD><EFBFBD>" END
"<22><>λ" MENU

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