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:
9
AUTHORS
9
AUTHORS
@@ -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.
|
||||
|
||||
2
BUGFORM
2
BUGFORM
@@ -4,7 +4,7 @@
|
||||
|
||||
|
||||
If you find a bug please fill this form and send it to
|
||||
developers@windowmaker.org
|
||||
developers@windowmaker.org Please, USE THIS FORM!!!
|
||||
|
||||
You can also report a bug in the WWW bug tracker at
|
||||
http://windowmaker.org/cgi-bin/bugs or by sending this report
|
||||
|
||||
2
BUGS
2
BUGS
@@ -1,8 +1,6 @@
|
||||
- wmaker will not stop managing a screen even if another window manager
|
||||
requests that, through the ICCCM 2.0 manager selection stuff
|
||||
- the app menu does not update after a style/theme change without restart.
|
||||
- during startup, transient windows should be miniaturized with their owners
|
||||
not in their own icons
|
||||
- stacking code is buggy (or XFree is buggy)
|
||||
- save session doesnt work on some platforms (Alpha and Sparc)
|
||||
- texture pixmaps are being incorrectly freed somewhere. Either
|
||||
|
||||
91
COPYING.OPL
Normal file
91
COPYING.OPL
Normal 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.
|
||||
39
ChangeLog
39
ChangeLog
@@ -1,3 +1,40 @@
|
||||
Changes since version 0.51.0:
|
||||
.............................
|
||||
|
||||
- icon explosion is stopped when clicking on anywhere
|
||||
- fixed dont set xset stuff option in WPrefs
|
||||
- fixed menu title messup in WPrefs
|
||||
- fixed WPrefs message dialogs for invalid menus
|
||||
- fixed workspace back setting in all screens
|
||||
- fixed WorkspaceSpecificBack / wmsetbg
|
||||
- added WindozeCycle patch (being rewritten)
|
||||
- cleaned up focus/unfocus state transitions
|
||||
- made WPrefs more robust
|
||||
- fixed locale file (po) installation stuff
|
||||
- fixed focus loss when dragging window across workspaces
|
||||
- fixed workspace baby boom with nextworkspacekey
|
||||
- removed ignore_next_unmap kluge
|
||||
- install defaults data in /usr/local/etc
|
||||
- added menu for miniwindow
|
||||
- fixed remove resizebar from shaded window
|
||||
- rewrote library/header search code in configure
|
||||
- rewrote window move/edge resistance code
|
||||
- added window border resistance
|
||||
- changed EdgeResistance option to only YES/NO
|
||||
- added workaround for glibc bug in sscanf("", bla, bla)
|
||||
- hopefully fixed WM_COLORMAP_WINDOWS crash bug
|
||||
- fixed searching of localized menus
|
||||
- fixed --help option
|
||||
- fixed handling of docked apps with . in their instance names
|
||||
- RSupportedFileFormats() in wrlib will now return a static buffer
|
||||
- fixed bug in StartHidden
|
||||
- a little faster startup
|
||||
- will rearrange icons after moving an icon if autoarrangeicons
|
||||
- fixed icon overlap bug
|
||||
- fixed crash with internal dialogs and multi-heads
|
||||
- added standard colormap support to wrlib (taken from libXmu sources)
|
||||
- fixed memory leak in attribute panel
|
||||
|
||||
Changes since version 0.50.2:
|
||||
.............................
|
||||
|
||||
@@ -35,6 +72,8 @@ Changes since version 0.50.2:
|
||||
- fixed bug in start maximized
|
||||
- added _WINDOWMAKER_NOTICEBOARD protocol
|
||||
- added docklib
|
||||
- updated utility parameter format to GNU standards
|
||||
- removed libPropList from distribution and merged with GNOME one
|
||||
|
||||
Changes since version 0.50.1:
|
||||
.............................
|
||||
|
||||
22
FAQ
22
FAQ
@@ -95,11 +95,13 @@ Summary of Contents:
|
||||
5.6 What other apps exist for the dock?
|
||||
5.7 How do I get an appicon for rxvt so I can dock it?
|
||||
5.8 How do I get different icons for rxvt's (or xterms) running different
|
||||
programs?
|
||||
programs?
|
||||
5.9 How do I launch multiple instances of XTerm from one appicon?
|
||||
5.10 How do I allow Alt+# to work in an rxvt session? (with irc for
|
||||
example)
|
||||
5.11 Window Maker breaks scilab
|
||||
5.12 Netscape icons show up in black and white
|
||||
5.13 Snow flakes from xsnow don't acumulate on titlebars!
|
||||
|
||||
6 - Programming
|
||||
6.1 How do I get a normal X application to produce an appicon?
|
||||
@@ -1212,6 +1214,24 @@ with
|
||||
in routines/xsci/jpc_SGraph.c
|
||||
|
||||
|
||||
5.12 Netscape shows black and white icons
|
||||
----------------------------------
|
||||
|
||||
This is because Netscape uses monochrome icons when running under olwm
|
||||
and you are using the OPEN LOOK emulation option. If you do not use any XView
|
||||
apps anyway, recompile Window Maker without the --enable-openlook option.
|
||||
If you need OPEN LOOK emulation, you will have to get used to the monochrome
|
||||
icons or change then manually in the Attributes panel for each window.
|
||||
|
||||
|
||||
5.13 Snow flakes from xsnow don't acumulate on titlebars!
|
||||
----------------------------------
|
||||
|
||||
Because of the way xsnow is coded, it seems that it can't "see"
|
||||
windows with the SaveUnder attribute turned on. So, if snow
|
||||
accumulation on windows is vital for you, disable SaveUnders in
|
||||
WPrefs, in the advanced options section.
|
||||
|
||||
|
||||
-=-=-=-=-=-=-
|
||||
Programming:
|
||||
|
||||
61
INSTALL
61
INSTALL
@@ -66,11 +66,11 @@ The following is required to build Window Maker:
|
||||
Install it before building Window Maker.
|
||||
|
||||
- autoconf, automake and libtool
|
||||
These tools are not needed, but IF you have one or
|
||||
These tools are NOT needed, but IF you have one or
|
||||
more of them installed, make sure you have ALL of the following
|
||||
with exactly these versions:
|
||||
autoconf 2.12
|
||||
automake 1.3
|
||||
autoconf 2.13
|
||||
automake 1.4
|
||||
libtool 1.2
|
||||
If you have a different version, disable them by temporarily
|
||||
renaming them to something else or uninstalling them from your
|
||||
@@ -116,7 +116,7 @@ might work too.
|
||||
- GNU xgettext
|
||||
If you want to use translated messages, you will need GNU gettext.
|
||||
Other versions of gettext are not compatible and will not work.
|
||||
Get the GNU version from ftp://prep.ai.mit.edu
|
||||
Get the GNU version from ftp://ftp.gnu.org
|
||||
|
||||
Most of these can be get from ftp.uu.net/pub/graphics
|
||||
|
||||
@@ -135,6 +135,16 @@ support compiled in.
|
||||
|
||||
To get a list of other options, run ./configure --help
|
||||
|
||||
--with-libs-from
|
||||
specify additional paths for libraries to be searched.
|
||||
The -L flag must precede each path, like:
|
||||
--with-libs-from=-L/opt/libs -L/usr/local/lib
|
||||
|
||||
--with-incs-from
|
||||
specify additional paths for header files to be searched.
|
||||
The -I flag must precede each paths, like:
|
||||
--with-incs-from=-I/opt/headers -I/usr/local/include
|
||||
|
||||
--enable-kanji
|
||||
support to display Kanji characters, Korean, Chinese and other
|
||||
languagues that require special characters.
|
||||
@@ -202,6 +212,11 @@ To get a list of other options, run ./configure --help
|
||||
|
||||
PLATFORM SPECIFIC NOTES:
|
||||
========================
|
||||
|
||||
- DEC/Alpha machines
|
||||
You might need to pass the --disable-shm flag to configure, like
|
||||
./configure --disable-shm
|
||||
|
||||
- SCO Unix - run configure like
|
||||
CFLAGS="-belf -DANSICPP" ./configure
|
||||
|
||||
@@ -210,8 +225,10 @@ PLATFORM SPECIFIC NOTES:
|
||||
CPP_PATH="gcc -E -x c" ./configure
|
||||
Sun's cpp lacks some features needed by Window Maker and it can
|
||||
cause problems when parsing the config files.
|
||||
You also might need to use the --with-gfx-libs and --with-gfx-incs
|
||||
You also might need to use the --with-libs-from and --with-incs-from
|
||||
to supply the directory where libtiff is located.
|
||||
Someone mailed me that you also must make /usr/local/lib be the
|
||||
first path in LD_LIBRARY_PATH to make it work.
|
||||
|
||||
If you have a Ultra Creator 3D or some other machine with high-end
|
||||
graphics, be sure to start the X server with the default visual
|
||||
@@ -221,17 +238,21 @@ PLATFORM SPECIFIC NOTES:
|
||||
- GNU/Linux in general
|
||||
Make sure you have /usr/local/lib in /etc/ld.so.conf and that you
|
||||
run ldconfig after installing.
|
||||
Uninstall any packaged version of Window Maker before installing a new
|
||||
version.
|
||||
|
||||
- RedHat GNU/Linux
|
||||
RedHat systems have several annoying problems. If you use it,
|
||||
be sure to follow the steps below or Window Maker will not work:
|
||||
|
||||
* if you installed the Window Maker that comes with RedHat, uninstall
|
||||
it before upgrading;
|
||||
|
||||
* make sure you don't have the LANG and LINGUAS environment variables
|
||||
set to en_RN;
|
||||
|
||||
* make sure you have /usr/local/bin in your PATH environment
|
||||
variable, as for some mysterious reason the folks at RedHat did not
|
||||
include it in the default configuration files in RH 5.x;
|
||||
variable;
|
||||
|
||||
* make sure you have /usr/local/lib in /etc/ld.so.conf before running
|
||||
ldconfig;
|
||||
@@ -249,6 +270,15 @@ PLATFORM SPECIFIC NOTES:
|
||||
link from /usr/include/X11 to /usr/X11R6/include/X11 (if not,
|
||||
type ln -s /usr/X11R6/include/X11 /usr/include/X11 )
|
||||
|
||||
* make sure you have /lib/cpp pointing to the cpp program
|
||||
|
||||
If you have any doubts in doing any of the stuff above, please
|
||||
don't exitate to contact the RedHat user support. They will
|
||||
kindly answer to all your questions regarding their system.
|
||||
They also know much more about their own system than us
|
||||
(we don't use RedHat).
|
||||
|
||||
|
||||
- PowerPC MkLinux
|
||||
You will need to have the latest version of Xpmac. Older versions
|
||||
seem to have bugs that cause the system to hang.
|
||||
@@ -364,9 +394,14 @@ WPrefs.app Example:
|
||||
./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Apps
|
||||
|
||||
|
||||
Then make /home/jshmoe/bin be included in your search path and run
|
||||
Then make /home/jshmoe/bin be included in your search PATH, add
|
||||
/home/jshmoe/lib to your LD_LIBRARY_PATH environment variable and run
|
||||
bin/wmaker.inst
|
||||
|
||||
Of course, /home/jshmoe is supposed to be replaced with your actual home
|
||||
directory path.
|
||||
|
||||
|
||||
|
||||
UPGRADING
|
||||
=========
|
||||
@@ -395,8 +430,8 @@ configure: error: libtool configure failed
|
||||
remove the --no-reexec option from aclocal.m4 and libPropList/aclocal.m4
|
||||
and reconfigure
|
||||
Also make sure the autoconf and automake versions you have installed are:
|
||||
autoconf 2.12
|
||||
automake 1.3
|
||||
autoconf 2.13
|
||||
automake 1.4
|
||||
libtool 1.2
|
||||
|
||||
Note that it must not be libtool 1.2b, it must be libtool 1.2,
|
||||
@@ -412,11 +447,11 @@ somewhere else in this file.
|
||||
|
||||
Delete config.cache, then rerun configure adding the following options to
|
||||
configure (among the other options you use):
|
||||
--with-gfx-libs="-L/usr/local/lib"
|
||||
--with-gfx-incs="-I/usr/local/include -I/usr/local/include/tiff"
|
||||
--with-libs-from="-L/usr/local/lib"
|
||||
--with-incs-from="-I/usr/local/include -I/usr/local/include/tiff"
|
||||
Put the paths where your graphic libs and their corresponding header files are
|
||||
located. You can put multiple paths in any of these options, as the example
|
||||
of --with-gfx-incs shows. Just put a space between them.
|
||||
of --with-incs-from shows. Just put a space between them.
|
||||
|
||||
|
||||
== configure doesn't detect libXpm.
|
||||
|
||||
11
Install
11
Install
@@ -42,6 +42,11 @@ echo
|
||||
echo "Please read the INSTALL and FAQ files before e-mailing "
|
||||
echo "questions. (we are lazy to reply questions already answered "
|
||||
echo "there as much as you are lazy to read these ;) "
|
||||
echo
|
||||
perai
|
||||
echo
|
||||
echo "Did you install libPropList? If not, please install it now."
|
||||
echo
|
||||
perai
|
||||
echo "Did you read the INSTALL file?"
|
||||
echo -n "<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
|
||||
|
||||
|
||||
8
MIRRORS
8
MIRRORS
@@ -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
|
||||
-----
|
||||
|
||||
18
Makefile.am
18
Makefile.am
@@ -2,15 +2,23 @@
|
||||
|
||||
SUBDIRS = wrlib WINGs src util po WindowMaker wmlib test WPrefs.app doc
|
||||
|
||||
EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N MIRRORS Install acconfig.h\
|
||||
EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N MIRRORS COPYING.OPL \
|
||||
Install acconfig.h\
|
||||
mkpatch README.KDE README.GNOME WindowMaker.lsm.in\
|
||||
docklib-0.0.tar.gz
|
||||
docklib-0.2.tar.gz
|
||||
|
||||
|
||||
windowmaker.lsm:
|
||||
WindowMaker.lsm: WindowMaker.lsm.in
|
||||
size=`wc -c $(distdir).tar.gz|cut -d\ -f1`;\
|
||||
size=`echo scale=2\;$$size/1048576|bc`;\
|
||||
sed -e "s/VERSION/"$(VERSION)"/" \
|
||||
-e "s/DATE/`date +%d%b%Y|tr a-z A-Z`/"\
|
||||
-e "s/SIZE/$$size M/"\
|
||||
WindowMaker.lsm.in > WindowMaker.lsm
|
||||
WindowMaker.lsm.in > WindowMaker-$(VERSION).lsm
|
||||
|
||||
dist-hook:
|
||||
touch `find -name configure.in -print`
|
||||
touch `find -name aclocal.m4 -print`
|
||||
touch `find -name Makefile.am -print`
|
||||
touch `find -name Makefile.in -print`
|
||||
touch `find -name configure -print`
|
||||
|
||||
|
||||
24
Makefile.in
24
Makefile.in
@@ -62,13 +62,13 @@ host_triplet = @host@
|
||||
CC = @CC@
|
||||
CPP_PATH = @CPP_PATH@
|
||||
DFLAGS = @DFLAGS@
|
||||
GFXFLAGS = @GFXFLAGS@
|
||||
GFXLFLAGS = @GFXLFLAGS@
|
||||
GFXLIBS = @GFXLIBS@
|
||||
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
|
||||
ICONEXT = @ICONEXT@
|
||||
INTLIBS = @INTLIBS@
|
||||
LD = @LD@
|
||||
LIBPL = @LIBPL@
|
||||
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LITE = @LITE@
|
||||
LN_S = @LN_S@
|
||||
@@ -89,15 +89,15 @@ wprefsdir = @wprefsdir@
|
||||
|
||||
SUBDIRS = wrlib WINGs src util po WindowMaker wmlib test WPrefs.app doc
|
||||
|
||||
EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N MIRRORS Install acconfig.h mkpatch README.KDE README.GNOME WindowMaker.lsm.in docklib-0.0.tar.gz
|
||||
EXTRA_DIST = TODO BUGS BUGFORM FAQ FAQ.I18N MIRRORS COPYING.OPL Install acconfig.h mkpatch README.KDE README.GNOME WindowMaker.lsm.in docklib-0.2.tar.gz
|
||||
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = ./src/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
|
||||
Makefile.in NEWS TODO acconfig.h aclocal.m4 config.guess config.sub \
|
||||
configure configure.in install-sh ltconfig ltmain.sh missing \
|
||||
Makefile.in NEWS TODO acconfig.h acinclude.m4 aclocal.m4 config.guess \
|
||||
config.sub configure configure.in install-sh ltconfig ltmain.sh missing \
|
||||
mkinstalldirs src/config.h.in src/stamp-h.in
|
||||
|
||||
|
||||
@@ -114,7 +114,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) \
|
||||
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
|
||||
$(ACLOCAL_M4): configure.in
|
||||
$(ACLOCAL_M4): configure.in acinclude.m4
|
||||
cd $(srcdir) && $(ACLOCAL)
|
||||
|
||||
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
@@ -297,6 +297,7 @@ distdir: $(DISTFILES)
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
|
||||
info-am:
|
||||
info: info-recursive
|
||||
dvi-am:
|
||||
@@ -369,13 +370,20 @@ installdirs mostlyclean-generic distclean-generic clean-generic \
|
||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
||||
|
||||
|
||||
windowmaker.lsm:
|
||||
WindowMaker.lsm: WindowMaker.lsm.in
|
||||
size=`wc -c $(distdir).tar.gz|cut -d\ -f1`;\
|
||||
size=`echo scale=2\;$$size/1048576|bc`;\
|
||||
sed -e "s/VERSION/"$(VERSION)"/" \
|
||||
-e "s/DATE/`date +%d%b%Y|tr a-z A-Z`/"\
|
||||
-e "s/SIZE/$$size M/"\
|
||||
WindowMaker.lsm.in > WindowMaker.lsm
|
||||
WindowMaker.lsm.in > WindowMaker-$(VERSION).lsm
|
||||
|
||||
dist-hook:
|
||||
touch `find -name configure.in -print`
|
||||
touch `find -name aclocal.m4 -print`
|
||||
touch `find -name Makefile.am -print`
|
||||
touch `find -name Makefile.in -print`
|
||||
touch `find -name configure -print`
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
|
||||
28
NEWS
28
NEWS
@@ -3,6 +3,34 @@ NEWS for veteran Window Maker users
|
||||
-----------------------------------
|
||||
|
||||
|
||||
--- 0.51.1
|
||||
|
||||
KDE Application Menu script
|
||||
---------------------------
|
||||
|
||||
wkdemenu.sh is a converter from KDE application menu structures to wmaker
|
||||
menu that can be used as a piped menu. Look wkdemenu.sh for how to use it.
|
||||
|
||||
|
||||
Window Edge Resistance
|
||||
----------------------
|
||||
|
||||
Window edge resistance was now added. No, feature freeze hasn't been
|
||||
removed. Its just part of the edge resistance rewrite ;)
|
||||
|
||||
|
||||
New Theme
|
||||
---------
|
||||
|
||||
Added SteelBlueSilk theme
|
||||
|
||||
Installation Path Changes
|
||||
-------------------------
|
||||
|
||||
Default configuration data installed in /usr/local/etc/WindowMaker
|
||||
or $(sysconfdir)/WindowMaker
|
||||
|
||||
|
||||
--- 0.51.0
|
||||
|
||||
Window Maker has become a GNU program (part of the GNU Project).
|
||||
|
||||
21
README
21
README
@@ -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.
|
||||
|
||||
|
||||
10
README.KDE
10
README.KDE
@@ -86,9 +86,11 @@ Enhancing Integration
|
||||
|
||||
Window Maker adds some extensions to KDE's messaging stuff, so you can run
|
||||
Window Maker specific commands from places like kpanel, krootwm or even
|
||||
kwmcom. If you want support for these in KDE, please go nag your favorite KDE
|
||||
developers, not us. The added stuff are the following kwm like commands:
|
||||
kwmcom. Recently KDE developers have kindly added support for these extensions
|
||||
in the more recent KDE versions from CVS. The added stuff are the following
|
||||
kwm like commands:
|
||||
|
||||
wm:wmaker - select Window Maker support mode
|
||||
wmaker:info - show info panel
|
||||
wmaker:legal - show legal panel
|
||||
wmaker:arrangeIcons - arrange icons
|
||||
@@ -124,3 +126,7 @@ windows present, restart them.
|
||||
* Wmaker opens windows by default under/over the panel, when the panel is
|
||||
at top or left of screen. Use the GUI configuration tool WPrefs to change
|
||||
this.
|
||||
|
||||
* Some commands, such as cascade windows and rearrange windows are not
|
||||
yet implemented.
|
||||
|
||||
|
||||
2
TODO
2
TODO
@@ -13,7 +13,7 @@ Do ASAP:
|
||||
Need to do:
|
||||
===========
|
||||
- allow user to select/restore default root menu from wprefs
|
||||
- fix and include the windoze cycle window patch
|
||||
- fix windoze cycle window patch
|
||||
- support for X11R6.4 extension for getting extra visual info in wrlib's
|
||||
automatic best context guessing
|
||||
- docklet to control AccessX (keyboard accessibility) functions
|
||||
|
||||
@@ -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:
|
||||
............................
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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@
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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
126
WINGs/llist.c
Normal 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
40
WINGs/llist.h
Normal 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);
|
||||
|
||||
@@ -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
91
WINGs/testnot.c
Normal 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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
431
WINGs/wbrowser.c
431
WINGs/wbrowser.c
@@ -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;
|
||||
}
|
||||
|
||||
5164
WINGs/wcolorpanel.c
5164
WINGs/wcolorpanel.c
File diff suppressed because it is too large
Load Diff
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
236
WINGs/widgets.c
236
WINGs/widgets.c
@@ -421,196 +421,96 @@ makePixmap(W_Screen *sPtr, char **data, int width, int height, int masked)
|
||||
sPtr->depth);
|
||||
}
|
||||
|
||||
#ifdef USE_TIFF
|
||||
#define WINGS_IMAGES_FILE RESOURCE_PATH"/Images.tiff"
|
||||
#define DEFAULT_OBJECT_ICON_FILE RESOURCE_PATH"/defaultIcon.tiff"
|
||||
#else
|
||||
#define WINGS_IMAGES_FILE RESOURCE_PATH"/Images.xpm"
|
||||
#define DEFAULT_OBJECT_ICON_FILE RESOURCE_PATH"/defaultIcon.xpm"
|
||||
#endif
|
||||
|
||||
#define T_WINGS_IMAGES_FILE RESOURCE_PATH"/Images.tiff"
|
||||
#define T_DEFAULT_OBJECT_ICON_FILE RESOURCE_PATH"/defaultIcon.tiff"
|
||||
|
||||
#define X_WINGS_IMAGES_FILE RESOURCE_PATH"/Images.xpm"
|
||||
#define X_DEFAULT_OBJECT_ICON_FILE RESOURCE_PATH"/defaultIcon.xpm"
|
||||
|
||||
|
||||
static Bool
|
||||
loadPixmaps(WMScreen *scr)
|
||||
{
|
||||
RImage *image, *tmp;
|
||||
Pixmap pixmap;
|
||||
RColor gray;
|
||||
|
||||
image = RLoadImage(scr->rcontext, WINGS_IMAGES_FILE, 0);
|
||||
if (!image) {
|
||||
wwarning("WINGs: could not load widget images file: %s",
|
||||
RMessageForError(RErrorCode));
|
||||
return False;
|
||||
}
|
||||
/* make it have a gray background */
|
||||
RColor white;
|
||||
|
||||
gray.red = 0xae;
|
||||
gray.green = 0xaa;
|
||||
gray.blue = 0xae;
|
||||
RCombineImageWithColor(image, &gray);
|
||||
tmp = RGetSubImage(image, 0, 0, 24, 24);
|
||||
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||
scr->homeIcon = NULL;
|
||||
} else {
|
||||
scr->homeIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 24, 24,
|
||||
scr->depth);
|
||||
}
|
||||
RDestroyImage(tmp);
|
||||
/* Magnifying Glass Icon for ColorPanel */
|
||||
tmp = RGetSubImage(image, 24, 0, 40, 32);
|
||||
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||
scr->magnifyIcon = NULL;
|
||||
} else {
|
||||
scr->magnifyIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 32, scr->depth);
|
||||
}
|
||||
RDestroyImage(tmp);
|
||||
/* ColorWheel Icon for ColorPanel */
|
||||
tmp = RGetSubImage(image, 0, 25, 24, 24);
|
||||
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||
scr->wheelIcon = NULL;
|
||||
} else {
|
||||
scr->wheelIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 24, 24, scr->depth);
|
||||
}
|
||||
RDestroyImage(tmp);
|
||||
/* GrayScale Icon for ColorPanel */
|
||||
tmp = RGetSubImage(image, 65, 0, 40, 24);
|
||||
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||
scr->grayIcon = NULL;
|
||||
} else {
|
||||
scr->grayIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||
}
|
||||
RDestroyImage(tmp);
|
||||
/* RGB Icon for ColorPanel */
|
||||
tmp = RGetSubImage(image, 25, 33, 40, 24);
|
||||
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||
scr->rgbIcon = NULL;
|
||||
} else {
|
||||
scr->rgbIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||
}
|
||||
RDestroyImage(tmp);
|
||||
/* CMYK Icon for ColorPanel */
|
||||
tmp = RGetSubImage(image, 65, 25, 40, 24);
|
||||
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||
scr->cmykIcon = NULL;
|
||||
} else {
|
||||
scr->cmykIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||
}
|
||||
RDestroyImage(tmp);
|
||||
/* HSB Icon for ColorPanel */
|
||||
tmp = RGetSubImage(image, 0, 57, 40, 24);
|
||||
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||
scr->hsbIcon = NULL;
|
||||
} else {
|
||||
scr->hsbIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||
}
|
||||
RDestroyImage(tmp);
|
||||
/* CustomColorPalette Icon for ColorPanel */
|
||||
tmp = RGetSubImage(image, 81, 57, 40, 24);
|
||||
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||
scr->customPaletteIcon = NULL;
|
||||
} else {
|
||||
scr->customPaletteIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||
}
|
||||
RDestroyImage(tmp);
|
||||
/* ColorList Icon for ColorPanel */
|
||||
tmp = RGetSubImage(image, 41, 57, 40, 24);
|
||||
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||
scr->colorListIcon = NULL;
|
||||
} else {
|
||||
scr->colorListIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||
}
|
||||
RDestroyImage(tmp);
|
||||
|
||||
RDestroyImage(image);
|
||||
white.red = 0xff;
|
||||
white.green = 0xff;
|
||||
white.blue = 0xff;
|
||||
|
||||
image = RLoadImage(scr->rcontext, WINGS_IMAGES_FILE, 0);
|
||||
image = RLoadImage(scr->rcontext, T_WINGS_IMAGES_FILE, 0);
|
||||
if (!image)
|
||||
image = RLoadImage(scr->rcontext, X_WINGS_IMAGES_FILE, 0);
|
||||
if (!image) {
|
||||
wwarning("WINGs: could not load widget images file: %s",
|
||||
RMessageForError(RErrorCode));
|
||||
return False;
|
||||
}
|
||||
/* 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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -533,6 +533,8 @@ destroySlider(Slider *sPtr)
|
||||
if (sPtr->backPixmap)
|
||||
WMReleasePixmap(sPtr->backPixmap);
|
||||
|
||||
WMRemoveNotificationObserver(sPtr);
|
||||
|
||||
free(sPtr);
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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@ \
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
127
WPrefs.app/NoMenuAlert.c
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
@@ -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 . ",
|
||||
" . . . . . . ",
|
||||
" . . . . . . ",
|
||||
" . . . . . . ",
|
||||
" . . . . . . ",
|
||||
" . . . . . . ",
|
||||
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
|
||||
" "};
|
||||
|
||||
@@ -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
668
WPrefs.app/editmenu.c
Normal 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
40
WPrefs.app/editmenu.h
Normal 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);
|
||||
@@ -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));
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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"
|
||||
|
||||
2905
WPrefs.app/po/ko.po
2905
WPrefs.app/po/ko.po
File diff suppressed because it is too large
Load Diff
1455
WPrefs.app/po/zh_TW.Big5.po
Normal file
1455
WPrefs.app/po/zh_TW.Big5.po
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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@
|
||||
|
||||
@@ -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@
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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@
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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@
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -30,6 +30,7 @@ prefsdata_DATA =\
|
||||
menu.se\
|
||||
menu.sl\
|
||||
menu.tr\
|
||||
menu.zh_TW.Big5\
|
||||
plmenu\
|
||||
plmenu.fr\
|
||||
plmenu.hr\
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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@
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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@
|
||||
|
||||
@@ -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@
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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@
|
||||
|
||||
47
WindowMaker/Themes/SteelBlueSilk.style
Normal file
47
WindowMaker/Themes/SteelBlueSilk.style
Normal 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");
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
@@ -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
Reference in New Issue
Block a user