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

Updating to version 0.20.2

Many bug fixes.
This commit is contained in:
dan
1998-10-21 14:43:47 +00:00
parent 9d2e6ef9f1
commit 9af1c6c415
222 changed files with 9132 additions and 4322 deletions

15
AUTHORS
View File

@@ -15,7 +15,7 @@ Fix for cascade window placement
Peter Bentley <peter.bentley@nomura.co.uk> Peter Bentley <peter.bentley@nomura.co.uk>
fixed WM_STATE handling bug, fixed some memory leaks, made application menus fixed WM_STATE handling bug, fixed some memory leaks, made application menus
be mapped near the windows for non-click-to-focus modes. be mapped near the windows for non-click-to-focus modes, timer bug
Ulf Betlehem <flu@iki.fi> Ulf Betlehem <flu@iki.fi>
Window resize with Meta-Click3, fixed OpaqueMove to send only 1 synth. Window resize with Meta-Click3, fixed OpaqueMove to send only 1 synth.
@@ -28,7 +28,7 @@ Rob Clark <rclark@turing.cs.hmc.edu>
Text input field, 15bpp support Text input field, 15bpp support
Sylvain CORRE <sylvain.corre@wanadoo.fr> Sylvain CORRE <sylvain.corre@wanadoo.fr>
bug fix for MkLinux/PPC, bug fix for cpixmap in wmsetbg bug fix for MkLinux/PPC
Frederic Devernay <devernay@istar.fr> Frederic Devernay <devernay@istar.fr>
dock fix for openwindows, made asclock be friendlier with colorcell impaired dock fix for openwindows, made asclock be friendlier with colorcell impaired
@@ -63,6 +63,9 @@ HIDEKI Fujimoto <hideki70@osk2.threewebnet.or.jp>
FreeBSD portability, icon arrangement fixes, dock initialization bug fix, FreeBSD portability, icon arrangement fixes, dock initialization bug fix,
some I18N related fixes some I18N related fixes
Pascal Hofstee <daeron@wit401305.student.utwente.nl>
WINGs bug fixes
Robert A. Holak <panthar@tradeservices.com> Robert A. Holak <panthar@tradeservices.com>
bug fix bug fix
@@ -72,6 +75,9 @@ Workspace change bug fix
Sudish Joseph <sj@eng.mindspring.net> Sudish Joseph <sj@eng.mindspring.net>
Modifier binding fix and other bug fixes Modifier binding fix and other bug fixes
Luke Kendall <luke@research.canon.com.au>
menu format converter, various enhancements to wxcopy and wxpaste
Bradley M Keryan <keryan@andrew.cmu.edu> Bradley M Keryan <keryan@andrew.cmu.edu>
EMACS/keypad like cursor movement for WINGs textfield EMACS/keypad like cursor movement for WINGs textfield
@@ -136,6 +142,9 @@ Ture Pelsson <ture@lysator.liu.se>
various portability fixes, replaced busy wait with select() in event various portability fixes, replaced busy wait with select() in event
handling code, fixed problem with some misbehaved kids after a fork(). handling code, fixed problem with some misbehaved kids after a fork().
Toby Sargeant <?>
menu format converter
Carsten Schaar <nhadcasc@fs-maphy.uni-hannover.de> Carsten Schaar <nhadcasc@fs-maphy.uni-hannover.de>
SCO portability, german locale, autoconf enhancements SCO portability, german locale, autoconf enhancements
@@ -168,7 +177,7 @@ FRBall <frb@umr.edu>
dgradient fix dgradient fix
"]d" <mhz@gpf.or.th> "]d" <mhz@gpf.or.th>
Window list menu miniaturized/hidden hints Window list menu miniaturized/hidden hints, XDE support
Trae Mc Combs <x@themes.org> Trae Mc Combs <x@themes.org>
BlueWaves.jpeg background image in BlueWaves theme. BlueWaves.jpeg background image in BlueWaves theme.

View File

@@ -5,8 +5,10 @@
If you find a bug please fill this form and send it to If you find a bug please fill this form and send it to
developers@windowmaker.org developers@windowmaker.org
You can also report a bug in the WWW bug tracker at You can also report a bug in the WWW bug tracker at
http://windowmaker.org/cgi-bin/bugs http://windowmaker.org/cgi-bin/bugs or by sending this report
to bugs@windowmaker.org
0. Before reporting this bug I already: 0. Before reporting this bug I already:
@@ -68,4 +70,6 @@ X Server Vendor: ...................... Color Depth: .................
WindowMaker Version (run "wmaker -version"): ......................... WindowMaker Version (run "wmaker -version"): .........................
11. backtrace if the bug made Window Maker crash. The README file
has instructions to make one.

9
BUGS
View File

@@ -1,10 +1,13 @@
- the app menu does not update after a style/theme change without restart. - the app menu does not update after a style/theme change without restart.
- the animation of shade puts ImageMagick/display in a weird state
- during startup, transient windows should be miniaturized with their owners - during startup, transient windows should be miniaturized with their owners
not in their own icons not in their own icons
- shaped windows don't resize very well
- stacking code is buggy (or XFree is buggy) - stacking code is buggy (or XFree is buggy)
- WINGs has problems in some platforms (SGI, Sun etc.) Anyone on these - WINGs has problems in some platforms (SGI, Sun etc.) Anyone on these
systems want to fix it? systems want to fix it?
- save session doesnt work on some platforms (Alpha and Sparc) - save session doesnt work on some platforms (Alpha and Sparc)
- GNUSTEP_WM_ATTR in WINGs has problems on Alpha boxes - texture pixmaps are being incorrectly freed somewhere. Either
fix bug (to support broken MetroX servers) or remove all useless references
to the Pixmap (to save memory and drop bug compatibility).
- host information is not saved/honored by the dock or save session stuff.
It should at least check if the host is the local machine and only save it
in the session/allow docking it if yes.

View File

@@ -1,3 +1,57 @@
Changes since version 0.20.1:
.............................
- fixed timer bug
- removed NoWindowUnderDock
- error reporting mechanism has changed in wrlib. Instead of a writing
the message in a string, it will place the error code in RErrorCode
- smoother icon selection
- persistent client supplied icon pixmaps
- fixed yet another crash on emacs exit bug
- fixed portability prob in wrlib shm code
- fixed bug in DISPLAY variable setting in multiheads
- fixed a few more portability problems related to storing struct properties
- fixed damaged balloons on Suns/8bpp (I guess)
- better "one of" type option handling
- added a timeout for some animations
- support for large binary files in wxcopy/wxpaste
- fixed bug of losing focus when resizing/moving windows
- fixed bug in libproplist
- fixed focus with sloppy
- changed permissions of shm segments to 0666. Now, if someone has a shm
leak, we can know who it is.
- faster titlebar texture update
- faster icon kaboom
- added different undocking animation
- updated wmaker -version to output "Window Maker" instead of WindowMaker
- fixed crash bug with transient windows (gimp etc)
- fixed bug with popen()+wwarning() - problem opening cpp'ed menus
- added test for header files in configure for gfx libraries
- simplified building process, making libPropList be always built
- fixed crash with bad mgradient color entry
- docked appicons that are being edited/killed cant be moved (mutex fix)
- more features in wxcopy/wxpaste
- fixed bug with state file in multiheads
- selection retrieval moved to WINGs
- fixed workspacekey to switch workspaces in the current layer
- fixed workspacekey to not switch to inexisting workspace unless
AdvanceToNewWorkspace is YES
- fixed bug with disappearing windows if a workspace switch is made on startup
- fixed blocking of window creation/destroy events when opening menu with kbd
- fixed aspect ratio setting bug
- fixed crashing when miniaturized window is closed during animation
- added XDE support
- fixed stupid bug in shape stuff
- raised threshold for removing docked icons
- fixed HideOthers for windows with NoAppIcon=YES
- if Cancel is pressed in dialog box of %a in menu cmd lines, the command
will be canceled
- slightly better dithering for 8bpp
- apps menu will use $SHELL, instead of /bin/sh to run EXEC menu commands
- cleaned up some code (GetNormalHints(), wManageWindow(),
wGetWindowSavedState() et al, )
Changes since version 0.20.0: Changes since version 0.20.0:
............................. .............................
@@ -36,7 +90,6 @@ Changes since version 0.19.3:
- AIX bug compatibility in XmbTextEntents() - AIX bug compatibility in XmbTextEntents()
- fixed jpeg loading bug - fixed jpeg loading bug
Changes since version 0.19.2: Changes since version 0.19.2:
............................. .............................

113
FAQ
View File

@@ -5,6 +5,9 @@ http://www.dpo.uab.edu/~grapeape/wmfaq.html or
http://wm.gnu.net/wmfaq/ http://wm.gnu.net/wmfaq/
-------------------------- --------------------------
This version was slightly modified by me (Alfredo). Chris, I enclosed
my changes with "###". Please add the changes to your official version.
Summary of Contents: Summary of Contents:
Introduction Introduction
@@ -21,8 +24,10 @@ Installation
- How do I get libjpeg to work? - How do I get libjpeg to work?
- How do I get libpng to work? - How do I get libpng to work?
- Does wmsound work with 0.1x.x? - Does wmsound work with 0.1x.x?
- Can I use WindowMaker with KDE or GNOME or CDE?
- How do I switch CDE's windowmanager to use WindowMaker? - How do I switch CDE's windowmanager to use WindowMaker?
- Do I need to rerun wmaker.inst with every new version of WindowMaker? - Do I need to rerun wmaker.inst with every new version of WindowMaker?
- When I run wmaker it quits complaing about something __register_frame_info.
Usage Usage
- What is an appicon? - What is an appicon?
@@ -80,6 +85,8 @@ Miscellaneous Questions
- What exactly are Themes? - What exactly are Themes?
- How do I install a Theme? - How do I install a Theme?
- How do I make a Theme? - How do I make a Theme?
- Why don't you distribute {normal diff,xdelta} patches?
======================================================================== ========================================================================
@@ -241,6 +248,32 @@ or at
http://wm.gnu.net/files.html#wmsound http://wm.gnu.net/files.html#wmsound
### New, possibly with some errors
Can I use WindowMaker with KDE or GNOME or CDE?
----------------------------------
Contrary to a lot of people thinks, KDE is NOT a window manager. KDE is
a suite of various applications that includes a custom window manager.
The same is true for CDE.
Now, answering the question: Yes, you can use WindowMaker in these
environments. To use WindowMaker with GNOME, you don't need to do anything
special. To use it with CDE, read the answer for "How do I switch CDE's
windowmanager to use WindowMaker?"
To use it with KDE, read it's documentation to get rid of kwm (and possibly
kpanel) and replace it with wmaker. Then, start WPrefs.app, go to "Mouse
Preferences" and set the "Disable mouse actions" check box. You will need to
restart WindowMaker to make this change take effect. The "Disable mouse
actions" change is needed to allow you to use krootwm, wich enables you to
use kfm's desktop icons, but will prevent you from accessing WindowMaker's
Applications and Window List menus with the mouse.
###
How do I switch CDE's window-manager to use WindowMaker? How do I switch CDE's window-manager to use WindowMaker?
---------------------------------- ----------------------------------
Method 1: Method 1:
@@ -321,6 +354,16 @@ The only problem I have at the moment is I seem to get multiple copies of
asclock running when I log in again. asclock running when I log in again.
### New
You can also use the normal "Exit Session" command from the WM root menu
and place additional commands required to shutdown CDE in
~/GNUstep/Library/WindowMaker/exitscript
So, if you add "dtaction ExitSession" in that file, the command to
shutdown CDE will be automatically executed when you exit WindowMaker.
###
Do I need to rerun wmaker.inst with every new version of WindowMaker? Do I need to rerun wmaker.inst with every new version of WindowMaker?
---------------------------------- ----------------------------------
Dan Pascu reveals the answer: Dan Pascu reveals the answer:
@@ -337,7 +380,14 @@ So even if new options are added, they will reflect in the user configuration.
Only if user wishes to change the default behavior, he needs to add that option Only if user wishes to change the default behavior, he needs to add that option
to the config file. to the config file.
### New
When I run wmaker it quits complaing about something __register_frame_info.
-----------------------------------------------------------
This seems to be related to pgcc, gcc-2.8.0 or something. Try using gcc
2.7.x to compile wmaker.
###
-=-=-=- -=-=-=-
Usage: Usage:
@@ -361,7 +411,7 @@ indicating when it is close enough to dock, and where it will be placed. To make
sure this application will be there next time you start up windowmaker, exit sure this application will be there next time you start up windowmaker, exit
windowmaker with the "exit session" option. windowmaker with the "exit session" option.
### Obsoleted
What is the button in the middle of the Clip? What is the button in the middle of the Clip?
---------------------------------- ----------------------------------
Dan Pascu gives this insightful answer: Dan Pascu gives this insightful answer:
@@ -371,7 +421,7 @@ Dan Pascu gives this insightful answer:
In 0.15.x, the light now means that the Clip is in its expanded stateto show any In 0.15.x, the light now means that the Clip is in its expanded stateto show any
appicons attached to it. When collapsed, it expands when you drag an appicon appicons attached to it. When collapsed, it expands when you drag an appicon
near it to dock. near it to dock.
###
What is the difference between the 'Exit' and 'Exit Session' Options? What is the difference between the 'Exit' and 'Exit Session' Options?
---------------------------------- ----------------------------------
@@ -403,7 +453,9 @@ How do I rename workspaces?
Right click on the "desktop" (root window) to show the menu (don't hold the Right click on the "desktop" (root window) to show the menu (don't hold the
button down). Go to the workspaces menu and hold the Control key down and button down). Go to the workspaces menu and hold the Control key down and
click on the workspace you would like to rename and type the name. click on the workspace you would like to rename and type the name.
### New
If you use the clip, use the "Rename Workspace" command in the clip menu.
###
How can I resize a window if the window is larger than my currect How can I resize a window if the window is larger than my currect
desktop? desktop?
@@ -430,7 +482,12 @@ You docked xyz using dockit. Dockit does not generate correct application
icons most of the time. The only way to get around it is to edit icons most of the time. The only way to get around it is to edit
~/GNUstep/Defaults/WMState and set ForcedDock = YES; in the entry for xyz. ~/GNUstep/Defaults/WMState and set ForcedDock = YES; in the entry for xyz.
If you use rxvt, upgrade to rxvt 2.4.6 or newer. If you use rxvt, upgrade to rxvt 2.4.6 or newer.
### New
There is another better way to dock applications that do not have an appicon,
wich is by using the "Emulate Application Icon" option in the
"Advanced Options" section of the attributes panel. If you turn this option
ON and restart that application, you should get a dockable application icon.
###
-=-=-=-=-=-=-=- -=-=-=-=-=-=-=-
Configuration: Configuration:
@@ -523,10 +580,13 @@ transparent parts of your icon.
How do you dock <insert program here> that doesn't have an appicon in How do you dock <insert program here> that doesn't have an appicon in
the new version of WindowMaker? the new version of WindowMaker?
---------------------------------- ----------------------------------
Use the tcl script dockit which is included with WindowMaker 0.15.x. By default ### Updated
you can run it by double clicking on the main dock icon. Note that dockit Open the window commands menu for the main window of the application
can generate problematic appicons. (the first window that is opened by the app and also causes the whole
application to exit, when it is closed), choose "Attributes..." and
go to the "Advanced Options" section. Then, check ON the
"Emulate Application Icon" check box.
###
How do I get x11amp to not have a title bar? (or any other program for How do I get x11amp to not have a title bar? (or any other program for
that matter?) that matter?)
@@ -776,8 +836,8 @@ For example:
rxvt -name foo -e irc rxvt -name foo -e irc
Then, go to the Attributes menu (right click on titlebar (or hit F10) and choose Then, go to the Attributes menu (right click on titlebar (or hit Control+Esc
'Attributes...') and choose 'Attributes...')
Then choose 'Advanced Options' from the listbox and enable 'Don't Bind Then choose 'Advanced Options' from the listbox and enable 'Don't Bind
Keyboard shortcuts'. Keyboard shortcuts'.
Click 'Save' and 'Apply' and you should be able to run your session without the Click 'Save' and 'Apply' and you should be able to run your session without the
@@ -905,3 +965,36 @@ To make a Theme.tar.gz, these are the steps I take:
4.Now give it to your friends! 4.Now give it to your friends!
### New
Why don't you distribute {normal diff,xdelta} patches?
------------------------------------------------------------
Whenever possible plain diff patches are distributed. If the new
version has new binary files, normal diff won't be able to handle
them, so a patch package is distributed, instead. We don't use
xdelta because:
- most systems do not have xdelta installed;
- xdelta is picky and require the file to be patched to be
exactly the same as the one used to make the patch. The patch package
scheme used is much more flexible.
We do not distribute a simple diff with the binary files separately
(and variations, like uuencoding the binary files) because:
- it is more complicated and error prone to require the user to manually
move the files to the correct places;
- the current patch package scheme *does* distribute the binary files
and diff files separately. If the user wants to install everything by
hand, nobody will object to that;
- sooner or later someone will certainly ask for a script to automate the
file moving stuff.
So we hacked a script (mkpatch) that automatically creates a patch package
with the normal text diff file, a list of removed files and the binary files
that have changed or been added, plus a script that does the patching
automatically. If you don't like the script, you can apply the patch and
move the files manually. Or download the whole distribution.
###

View File

@@ -8,6 +8,13 @@ If I18N support does not work for you, check these:
can check if your locale is supported by X's locale emulation. can check if your locale is supported by X's locale emulation.
See "/usr/X11R6/lib/X11/locale/locale.alias" See "/usr/X11R6/lib/X11/locale/locale.alias"
- Check if you're using appropriate fonts for the locale you
chose. If you're using a font set that has a different
encoding than the one used by Xlib or libc, bad things can
happen. Try specifically putting the encoding in the LANG
variable, like ru_RU.KOI8-R. Again, see
"/usr/X11R6/lib/X11/locale/locale.alias"
- if your OS doesn't support any locale or if your OS doesn't - if your OS doesn't support any locale or if your OS doesn't
support a locale for your language, you can use X Window System's support a locale for your language, you can use X Window System's
locale emulation feature instead of OS's locale. To use this locale emulation feature instead of OS's locale. To use this

101
INSTALL
View File

@@ -21,8 +21,10 @@ SUPPORTED PLATFORMS
- OSF/1 - OSF/1
- HP-UX - HP-UX
- AIX 4.1.4 / IBM PowerPC - AIX 4.1.4 / IBM PowerPC
- AIX 5.3
- DEC Alpha/Digital UNIX 4.x - DEC Alpha/Digital UNIX 4.x
- XFree86 / OS/2 - XFree86 / OS/2
- Corel Netwinder
Patches to make it work on other platforms are welcome. Patches to make it work on other platforms are welcome.
@@ -36,7 +38,8 @@ The following software is required to use WindowMaker
Window Maker can be compiled in older versions of X, like X11R5 Window Maker can be compiled in older versions of X, like X11R5
(Solaris) or X11R4 (OpenWindows) but it will not work 100% correctly. (Solaris) or X11R4 (OpenWindows) but it will not work 100% correctly.
In such servers there will not be application icons and you'll have In such servers there will not be application icons and you'll have
trouble using the dock. trouble using the dock. Upgrading the client libraries (Xlib, Xt etc)
will help if you can't upgrade the server.
If you will build Window Maker, make sure you have gcc and the X header files If you will build Window Maker, make sure you have gcc and the X header files
@@ -55,7 +58,7 @@ might work too. Tell me if you made wmaker work with some library
with a version older than the stated here. with a version older than the stated here.
- libXPM 4.7 - libXPM 4.7 or newer
Older versions may not work!!! Older versions may not work!!!
Available at ftp://sunsite.unc.edu/pub/Linux/libs/X/ Available at ftp://sunsite.unc.edu/pub/Linux/libs/X/
@@ -69,7 +72,7 @@ with a version older than the stated here.
For TIFF image support. For TIFF image support.
You can get it at ftp://ftp.sgi.com/graphics/tiff You can get it at ftp://ftp.sgi.com/graphics/tiff
- libjpeg 6.0.1 - libjpeg 6.0.1 or newer
For JPEG image support For JPEG image support
- libgif 2.2 or libungif - libgif 2.2 or libungif
@@ -91,9 +94,14 @@ some WindowMaker features. Example:
./configure --enable-kanji ./configure --enable-kanji
will configure WindowMaker with kanji characters support compiled in. will configure Window Maker with kanji (and other multi-byte) characters
support compiled in.
To get a list of other options, run ./configure --help
--enable-sound enable support of sound effects module
--disable-xpm disables use of the XPM library even if it is available on --disable-xpm disables use of the XPM library even if it is available on
your system. your system.
@@ -118,6 +126,9 @@ will configure WindowMaker with kanji characters support compiled in.
supported at all by the developers. If you have some trouble with it, supported at all by the developers. If you have some trouble with it,
contact it's author: Christopher Seawood <cls@seawood.org> contact it's author: Christopher Seawood <cls@seawood.org>
--disable-shm disable use of the MIT shared memory extension. This will
slow down texture generation.
PLATFORM SPECIFIC NOTES: PLATFORM SPECIFIC NOTES:
======================== ========================
@@ -130,6 +141,8 @@ PLATFORM SPECIFIC NOTES:
#define CPP_PATH "gcc -E -x c" #define CPP_PATH "gcc -E -x c"
Sun's cpp lacks some features needed by Window Maker and it can Sun's cpp lacks some features needed by Window Maker and it can
cause problems when parsing the config files. cause problems when parsing the config files.
You also might need to use the --with-gfx-libs and --with-gfx-incs
to supply the directory where libtiff is located.
- RedHat Linux - RedHat Linux
Make sure you don't have the LANG and LINGUAS environment variables Make sure you don't have the LANG and LINGUAS environment variables
@@ -159,8 +172,8 @@ INSTALLATION:
Unpack WindowMaker-data.tar.gz and move the pixmaps directory in it Unpack WindowMaker-data.tar.gz and move the pixmaps directory in it
to /usr/local/share/pixmaps to /usr/local/share/pixmaps
You can get the file at ftp://ftp.windowmaker.org. This file is not strictly You can get the file at ftp://ftp.windowmaker.org. This file is optional
necessary, but contains some additional nice icons and other things. and only have a few icons.
autoconf and automake autoconf and automake
@@ -172,34 +185,9 @@ an older version, disable them by temporarily renaming them to something
else or uninstalling them from your system. else or uninstalling them from your system.
Build libPropList
-----------------
Note: You only need to build libPropList if you don't have it installed
in your system.
libPropList is included with the distribution, so you don't
need to download it anywhere (some people have asked me this...)
But if you already have libPropList installed on you system you
can skip this step, since configure will detect that and use the
installed version first if available.
To build libPropList, simply type the following at the shell prompt:
gunzip -c libPropList.tar.gz | tar xf -
cd libPropList
./configure
make
then, login as root and type:
make install
Build Window Maker Build Window Maker
----------------- ------------------
If this is the first time you're building WindowMaker, you can For a quick start, type the following in your shell prompt:
simply type:
./configure ./configure
make make
@@ -208,7 +196,7 @@ then, login as root and type:
make install make install
or if you want to strip the binaries from debugging symbols and make them or if you want to strip the debugging symbols from the binaries and make them
smaller, you can instead type: smaller, you can instead type:
make install-strip make install-strip
@@ -225,9 +213,6 @@ following.
to get a complete listing of other options that are available. to get a complete listing of other options that are available.
Note that the WPrefs.app installation path is configured
in a different way. Look at WPrefs/README for information.
2. Run configure with the options you want. For example, if you 2. Run configure with the options you want. For example, if you
want to use the --enable-kanji option, type: want to use the --enable-kanji option, type:
@@ -236,16 +221,16 @@ following.
3. (optional) Edit src/wconfig.h with your favorite text editor 3. (optional) Edit src/wconfig.h with your favorite text editor
and browse through it for some options you might want to change. and browse through it for some options you might want to change.
4. Compile WindowMaker. Just type: 4. Compile. Just type:
make make
5. Login as root (if you can't do that, read the "I don't have the 5. Login as root (if you can't do that, read the "I don't have the
root password :-(" section) and install WindowMaker in your system. root password :-(" section) and install Window Maker in your system:
Again, type:
su root su root
make install make install
User specific configuration User specific configuration
--------------------------- ---------------------------
@@ -262,18 +247,12 @@ Type:
wmaker.inst will install Window Maker configuration files and will wmaker.inst will install Window Maker configuration files and will
setup X to automatically launch Window Maker at startup. setup X to automatically launch Window Maker at startup.
That's it! The configuration file where you can edit your preferences That's it!
is $HOME/GNUstep/Defaults/WindowMaker.
The $HOME/GNUstep/Defaults/WMWindowAttributes file is where you assign
icons to applications and edit some other attributes for windows. This can
be also edited from the "Attributes Panel". To access it, click the titlebar
of the window with the Right mouse button and select "Attributes...".
The $HOME/GNUstep/Library/WindowMaker/menu file is the definition of You can type "man wmaker" to get some general help for configuration
the root menu. Edit it according to the applications you have installed. and other stuff.
Read the User Guide for a more in depth explanation of WindowMaker. Read the User Guide for a more in-depth explanation of Window Maker.
The User Guide is avaiable at http://windowmaker.org
You might want to take a look at the FAQ too. You might want to take a look at the FAQ too.
@@ -283,14 +262,17 @@ I don't have the root password :(
If you can't get superuser privileges (can't be root) you can install If you can't get superuser privileges (can't be root) you can install
wmaker in your own home directory. For that, supply the --prefix option wmaker in your own home directory. For that, supply the --prefix option
when running configure in step 2 of building WindowMaker . Example: when running configure in step 2 of building Window Maker. You will
also need to supply the --with-appspath option, to specify the path for
WPrefs.app Example:
./configure --prefix=/home/jshmoe ./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Apps
If you use national language support, you must also supply the --with-nlsdir If you use national language support, you must also supply the --with-nlsdir
option, as: option, as:
./configure --prefix=/home/jshmoe --with-nlsdir=/home/jshmoe/lib/locale ./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Apps \
--with-nlsdir=/home/jshmoe/lib/locale
Then make /home/jshmoe/bin be included in your search path and run Then make /home/jshmoe/bin be included in your search path and run
bin/wmaker.inst bin/wmaker.inst
@@ -314,12 +296,6 @@ like not being able to use a graphic format library you think you have
installed, look at the config.log file for clues of the problem. installed, look at the config.log file for clues of the problem.
== When I try to start X after installing wmaker, I get this:
exec: wmaker: not found
You probably are using a brain-damaged distribution. Add /usr/local/bin
into your path environment variable (editing .cshrc or .profile)
== Error during build of libPropList == Error during build of libPropList
make: *** No rule to make target `libPropList.a.c', needed by make: *** No rule to make target `libPropList.a.c', needed by
@@ -332,8 +308,7 @@ automake 1.3
If you are using the RPM's that come with RedHat 4.x, don't use them. If you are using the RPM's that come with RedHat 4.x, don't use them.
It is broken. Uninstall the RPM and reinstall a fresh package from It is broken. Uninstall the RPM and reinstall a fresh package from
ftp://prep.ai.mit.edu or any mirror.
You can get them from ftp://prep.ai.mit.edu or any mirror.
== configure doesn't detect libtiff, or other graphic libraries. == configure doesn't detect libtiff, or other graphic libraries.
@@ -372,6 +347,7 @@ not located in /lib/cpp, edit src/config.h and correct the path in
CPP_PATH. CPP_PATH.
LOCALES/INTERNATIONALIZATION LOCALES/INTERNATIONALIZATION
============================ ============================
@@ -452,4 +428,5 @@ and in ~/G/D/WMGLOBAL:
SystemFont = "-*-*-medium-r-normal-*-%d-*-*-*-*-*-*-*"; SystemFont = "-*-*-medium-r-normal-*-%d-*-*-*-*-*-*-*";
BoldSystemFont = "-*-*-medium-r-normal-*-%d-*-*-*-*-*-*-*"; BoldSystemFont = "-*-*-medium-r-normal-*-%d-*-*-*-*-*-*-*";
The above 2 fonts are only used by applications that use WINGs (WindowMaker
and WPrefs.app)

79
Install
View File

@@ -19,21 +19,36 @@ perai() {
} }
perform() {
result=
eval $*
if [ "$result" != 0 ]; then
echo echo
echo "========================" echo "Window Maker installation failed or aborted by user."
exit 1
fi
}
trap "echo Window Maker installation aborted. ; exit 1" 2 3
echo
echo "========================="
echo "Window Maker Installation" echo "Window Maker Installation"
echo "========================" echo "========================="
echo echo
echo "NOTE: If the installation procedure fails, read the INSTALL file and do" echo "NOTE: If this script fails, read the INSTALL file and"
echo "the installation manually." echo "install by hand."
echo
echo "Please read the INSTALL and FAQ files before e-mailing "
echo "questions."
perai perai
if test "$USER" != "root"; then if test "$USER" != "root"; then
echo "Warning: you must run this script as the root user."
perai
echo echo
echo "Be sure to specify an installation path where you have" echo "Warning: you must run this script as root to install"
echo "write persmission." echo "Window Maker. Hit <Control>-<C> to quit this script."
perai
echo echo
fi fi
@@ -124,11 +139,12 @@ while [ $done = 0 ]; do
echo echo
echo "Where do you want to install Window Maker? [$PREFIX]" echo "Where do you want to install Window Maker? [$PREFIX]"
echo "Don't change it if you don't know what you're doing." echo "Don't change it if you don't know what you're doing."
echo "(The default path will install WindowMaker in " if test $USER != root; then
echo "$PREFIX/bin, $PREFIX/lib etc.)" echo "Make sure to specify a path where you have write permission."
fi
echo "(The default will put Window Maker in $PREFIX/bin, $PREFIX/lib etc.)"
echo -n "? " echo -n "? "
read foo read foo
if test "x$foo" != "x"; then if test "x$foo" != "x"; then
if [ "$foo" = "y" -o "$foo" = "n" ]; then if [ "$foo" = "y" -o "$foo" = "n" ]; then
echo echo
@@ -149,27 +165,6 @@ done
OPTIONS="$OPTIONS --prefix=$PREFIX" OPTIONS="$OPTIONS --prefix=$PREFIX"
###################### Build libPropList
if [ ! -d libPropList ]; then
gzip -d -c libPropList.tar.gz | tar xf -
fi
echo "-----------------------"
echo "Building libPropList..."
echo "-----------------------"
cd libPropList
if [ ! -f config.status ]; then
./configure
fi
make
cd ..
if [ ! -f libPropList/libPropList.a ]; then
echo "Build of libPropList was not successfull. "
exit
fi
##################### Configure ##################### Configure
echo "--------------------------" echo "--------------------------"
@@ -177,25 +172,27 @@ echo "Configuring WindowMaker..."
echo "--------------------------" echo "--------------------------"
if [ `uname -s` = "SCO_SV" ]; then if [ `uname -s` = "SCO_SV" ]; then
echo "CFLAGS=\"$CFLAGS -belf -DANSICPP\" ./configure $OPTIONS" echo "CFLAGS=\"$CFLAGS -belf -DANSICPP\" ./configure $OPTIONS"
CFLAGS="$CFLAGS -belf -DANSICPP" ./configure $OPTIONS
perform CFLAGS=\"$CFLAGS -belf -DANSICPP\" ./configure $OPTIONS
else else
echo "CFLAGS=\"$CFLAGS $GCCFLAGS\" ./configure $OPTIONS" echo "CFLAGS=\"$CFLAGS $GCCFLAGS\" ./configure $OPTIONS"
CFLAGS="$CFLAGS $GCCFLAGS" ./configure $OPTIONS
perform CFLAGS=\"$CFLAGS $GCCFLAGS\" ./configure $OPTIONS
fi fi
#################### Compile #################### Compile
echo "------------------------" echo "-------------------------"
echo "Compiling Window Maker..." echo "Compiling Window Maker..."
echo "------------------------"
(cd src; make clean)
make
echo "-------------------------" echo "-------------------------"
perform (cd src; make clean)
perform make
echo "--------------------------"
echo "Installing Window Maker..." echo "Installing Window Maker..."
echo "-------------------------" echo "--------------------------"
make install perform make install
echo echo
echo "Installation Finished!" echo "Installation Finished!"

27
MIRRORS
View File

@@ -41,8 +41,16 @@ Contact: Adam Jacob <adam@cybertrails.com>
Third Party WindowMaker Distribution Packages Third Party WindowMaker Distribution Packages
============================================= =============================================
RedHat/RPM Debian GNU/Linux (deb)
---------- ----------------------
Contact: Marcelo Magallon <mmagallo@efis.ucr.ac.cr>
Sites:
http://master.debian.org/~mmagallo/packages/wmaker/
RedHat Linux (RPM)
------------------
Contact: Jim Knoble <jmknoble@pobox.com> Contact: Jim Knoble <jmknoble@pobox.com>
Sites: Sites:
@@ -51,4 +59,19 @@ ftp://ftp.redhat.com/pub/contrib/SRPMS/
ftp://ftp.redhat.com/pub/contrib/i386/ ftp://ftp.redhat.com/pub/contrib/i386/
HP-UX
-----
Sites:
UK: http://hpux.csc.liv.ac.uk/
Germany: http://hpux.ask.uni-karlsruhe.de/
US (WI): http://hpux.cae.wisc.edu/
France: http://hpux.cict.fr/
Netherlands: http://hpux.tn.tudelft.nl/
Canada: http://hpux.ee.ualberta.ca/
Italy: http://hpux.dsi.unimi.it/
South Africa: http://hpux.petech.ac.za/
Japan: http://hpux.u-aizu.ac.jp/
US (UT): http://hpux.cs.utah.edu/

View File

@@ -1,14 +1,7 @@
## Process this file with automake to produce Makefile.in ## Process this file with automake to produce Makefile.in
SUBDIRS = wrlib WINGs src util po WindowMaker wmlib test WPrefs.app doc SUBDIRS = libPropList 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 Install acconfig.h\
libPropList.tar.gz mkpatch mkpatch
libPropList.tar.gz:
-(cd libPropList; $(MAKE) distclean)
-rm -f libPropList.tar.gz
tar cf libPropList.tar libPropList
gzip -9 libPropList.tar

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@
@@ -91,10 +89,10 @@ X_LOCALE = @X_LOCALE@
pixmapdir = @pixmapdir@ pixmapdir = @pixmapdir@
wprefsdir = @wprefsdir@ wprefsdir = @wprefsdir@
SUBDIRS = wrlib WINGs src util po WindowMaker wmlib test WPrefs.app doc SUBDIRS = libPropList 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 Install acconfig.h\
libPropList.tar.gz mkpatch mkpatch
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ./src/config.h CONFIG_HEADER = ./src/config.h
@@ -311,12 +309,6 @@ installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean maintainer-clean-generic clean mostlyclean distclean maintainer-clean
libPropList.tar.gz:
-(cd libPropList; $(MAKE) distclean)
-rm -f libPropList.tar.gz
tar cf libPropList.tar libPropList
gzip -9 libPropList.tar
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .NOEXPORT:

95
NEWS
View File

@@ -1,13 +1,104 @@
NEWS for veteran Window Maker users NEWS for veteran Window Maker users
---------------------------------- -----------------------------------
--- 0.20.2
The name of WindowMaker was changed to Window Maker.
Window creation animation disabled by default.
xdaliclock -shape
-----------------
If you use it edit src/wconfig.h and #define OPTIMIZE_SHAPE or disable the
titlebar and resizebar for the window. OPTIMIZE_SHAPE will remove the
flickering for xdaliclock and other programs that change their shapes often,
but will increase network traffic considerably. So, if you use xdaliclock
from a remote machine it can get slow.
Applications Menu
-----------------
The applications menu will now use the shell in the SHELL environment
variable to execute EXEC menu commands. If it is unset (I think it's always
automatically set by the shell program) it will use /bin/sh
Extra fancy icon kaboom :)
--------------------------
Edit src/wconfig.h and #define ICON_KABOOM_EXTRA to get
more effects for the icon undocking animation.
Options for superfluous stuff are even more superfluous, so this
will not become runtime.
XDE drag and drop support
-------------------------
Support for XDE drag and drop was added (by "]d" <id@maliwan.org>).
To enable, edit src/wconfig.h
The support works with gtk 1.1.2
libPropList
-----------
libPropList will now be built automatically by wmaker. Wich means
the (simplified) building process is now:
./configure
make
make install
instead of:
tar xzf libPropList.tar.gz
(cd libPropList; make)
make
make install
You also don't need to worry about GNOME libPropList incompatibilities
anymore.
Bug with focus lost in sloppy focus fixed
-----------------------------------------
The bug only occurs in sloppy or auto focus modes, with AutoFocus disabled
and Superfluous enabled. There is no easy/clean way to fix this, so Window
Maker will disable the animation of window creation if the focus mode is
either sloppy or auto AND AutoFocus=NO.
If you want the animation, enable AutoFocus or use manual focus mode
(prefered).
The NoWindowUnderDock option was removed
----------------------------------------
To obtain the same result, use the "Floating Dock" option in the dock menu.
Persistent Program Suplied Icons
--------------------------------
Application supplied icons are now stored, so that the dock will keep
showing them after the app is exited. The icons are stored at
~/GNUstep/.AppInfo/WindowMaker/
--- 0.20.0 --- 0.20.0
Multihead support. wmaker will now manage all screens that are attached to the Multihead support. wmaker will now manage all screens that are attached to the
display. display.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
It does so from a single process (instead of spawning a new process for each It does so from a single process (instead of spawning a new process for each
screen, like fvwm does). This keeps memory usage a lot lower than fvwm. screen, like fvwm does). This keeps memory usage a lot lower than fvwm.
@@ -27,6 +118,7 @@ exitscript
~/G/L/W/exitscript will be called automatically when wmaker is exited. ~/G/L/W/exitscript will be called automatically when wmaker is exited.
New runtime options New runtime options
------------------- -------------------
@@ -55,6 +147,7 @@ New theme
A new theme named Night, is available in this distribution. A new theme named Night, is available in this distribution.
--- 0.19.3 --- 0.19.3
GIF support was added. You will need libgif 2.2 to use it. GIF support was added. You will need libgif 2.2 to use it.

190
README
View File

@@ -14,6 +14,8 @@
Matthew Hawkins Matthew Hawkins
<matt@windowmaker.org> <matt@windowmaker.org>
Description Description
=========== ===========
@@ -22,66 +24,77 @@ part of the NEXTSTEP(tm) GUI. It's supposed to be relatively fast and small,
feature rich, easy to configure and easy to use, with a simple and elegant feature rich, easy to configure and easy to use, with a simple and elegant
appearance borrowed from NEXTSTEP(tm). appearance borrowed from NEXTSTEP(tm).
Window Maker was previously called WindowMaker.
User Guide Window Maker has no connection with Windowmaker, the software for
========== making windows and doors.
Documentation
=============
* README files all over the source tree have info related to the stuff
in the directories.
* INSTALL has installation instructions and some troubleshooting tips.
* FAQ: Frequently Asked Questions. READ IT!!! FAQ.I18N is for
internationalization related questions.
* NEWS: list user visible changes from the previous version. Read it if
you are upgrading.
* MIRRORS: some alternative places where you can get Window Maker,
including platform specific packages of Window Maker.
* BUGFORM: use it to send bug reports. Please do use it.
* ChangeLog: what changed from the previous version?
* BUGS: list of known bugs
*** User Guide
The Window Maker User's Guide can be downloaded from the official ftp The Window Maker User's Guide can be downloaded from the official ftp
or web sites. or web sites.
It can also be viewed in HTML format in: It can also be viewed in HTML format in:
http://people.delphi.com/crc3419/WMUserGuide/index.htm http://people.delphi.com/crc3419/WMUserGuide/index.htm
The User Guide explains how to use Window Maker, the configuration files
and options.
Directories & Files
===================
o INSTALL contains installation instructions and some troubleshooting tips. *** man pages
o Install is a script for configuring and compiling WindowMaker in a easy Type "man wmaker" in the shell prompt to get general help about Window Maker
way.
o ChangeLog contains the changes since the last version
o BUGS contains a list of the currently known bugs
o FAQ is a list of frequently asked questions. Read it. I won't answer Directories & Files in the Source Tree
questions answered in it. ======================================
o NEWS is a list of user visible changes since the last version. Read it if * Install is a script for configuring and compiling Window Maker in a easy
you are upgrading. way (not that the normal way is difficult, but...).
o wmlib/ contains the library necessary to write applications that use * AUTHORS: the credits
WindowMaker specific features, like application defined menus. This library
will be merged into WINGs in the future.
o WINGs/ contain the WINGs (WINGs Is Not GNUstep) tiny widget library. It is * TODO: plans for the future
used by wmaker, but can be used by standalone programs as well.
o test/ contains a simple test program that shows some of the things that can * util/ has various utility programs.
be done with WindowMaker and wmlib
o wrlib/ contains the library used to do image manipulation (loading, * WPrefs.app/ is the configuration program.
dithering etc.) in WindowMaker. It can be used in other applications.
o util/ contains various utility programs. * src/wconfig.h has compile time options you can change to select some
options/features and other stuff.
o WPrefs/ contains the source code for the WindowMaker Preferences utility. * WINGs/ NEXTSTEP lookalike widget library
Read the WPrefs/README file before using it.
o Configuration options can be found in the ~/GNUstep/Defaults/* files * wrlib/ image processing library
(after installation). The menus can be configured in
~/GNUstep/Library/WindowMaker/menu
o The default configuration files for the system are installed by default in * po/ has message catalogs wich are the translated versions of the messages
/usr/local/share/WindowMaker, along with some other data files. displayed by Window Maker.
o src/wconfig.h contains various compile time options you can change to
select some options/features and things like the path for configuration
directory.
o BUGFORM is a form you should fill to send a bugreport. Please use the
form. It makes things easier to me and ensures that you give me a reasonable
amount of information. This form should be sent to developers@windowmaker.org
Mailing List Mailing List
@@ -90,28 +103,21 @@ Mailing List
There is a mailing list for discussing Window Maker at There is a mailing list for discussing Window Maker at
wmaker@linuxcenter.com To subscribe to it, send a message containing: wmaker@linuxcenter.com To subscribe to it, send a message containing:
subscribe subscribe
in the subject and the body of the message to wmaker-request@linuxcenter.com in the body of the message to wmaker-request@linuxcenter.com
If you have some problem installing or using wmaker, it would be advisable If you got a problem, ask there (after reading the docs, of course). The
to ask in the mailing list, as the probability of at least one of the 500+ people there is more likely to be able to answer your questions than we are.
users there having the same problem as you (and solving it) is bigger than For bug reports use the BUGFORM.
the three of us. The developers are subscribed to the mailing list, so we
will read your post anyway (no need for cc:). For bug reports, fill
the BUGFORM and send it to developers@windowmaker.org You can also use
the bug tracker page at http://windowmaker.org/cgi-bin/bugs
Important note: when asking for help (in the mailing list or to the IMPORTANT NOTE: when asking for help (in the mailing list or to the
developerts, directly) always send information about the system you are developerts, directly) *always* send information about the system you are
using. You can use the system information section at the end of BUGFORM using. You can use the system information section at the end of BUGFORM as a
as a guideline. Another thing: please don't send HTML mail. You will guideline. Another thing: please don't send HTML mail.
be risking having your mail deleted before being read. Not everybody
uses a browser to read email, wich makes your message an annoyance.
There should be an option in your mail app to disable it.
Running multiple instances of Window Maker Running multiple instances of Window Maker
========================================= ==========================================
It is not a good idea to run more than one instance of Window Maker It is not a good idea to run more than one instance of Window Maker
from the same user (so that wmaker will use the same configuration from the same user (so that wmaker will use the same configuration
@@ -140,7 +146,6 @@ bellow:
- use solid textures for everything, mainly titlebars and menus. If you - use solid textures for everything, mainly titlebars and menus. If you
want a nice looking desktop, use the Traditional style. want a nice looking desktop, use the Traditional style.
- turn NewStyle and Superfluous off - turn NewStyle and Superfluous off
- turn on DisableAnimations
- do not bind many shortcuts in the menu and keep only the essential items - do not bind many shortcuts in the menu and keep only the essential items
in the menu in the menu
- turn on DisableClip - turn on DisableClip
@@ -148,10 +153,85 @@ bellow:
don't use anyway (keep in mind that some of the #defines might not don't use anyway (keep in mind that some of the #defines might not
work, as they are not fully supported). Make sure to always keep work, as they are not fully supported). Make sure to always keep
NumLock and ScrollLock turned off. NumLock and ScrollLock turned off.
- turn on DisableAnimations. You can also #undefine ANIMATIONS in wconfig.h
- strip down the default IconPath and PixmapPath entries to contain only - strip down the default IconPath and PixmapPath entries to contain only
the paths that you really have in your system. the paths that you really have in your system.
- do not use large images in the root background - do not use large images in the root background
- remove support for image formats you don't use - remove support for image formats you don't use
- to reduce memory usage, disable the icon cache, by setting the RIMAGE_CACHE
environment variable to 0. If you want to increase performance at the cost
of memory usage, set it's value to a value like the number of different
icons you use.
Keyboard Mouse Control
======================
Many people ask about adding keyboard control of mouse, like in fvwm,
but Window Maker will not have such feature. The XKB extension supports
mouse simulation from the keyboard, in a much more powerfull fashion than
any simulation done by a window manager.
To enable it, hit the Control+Shift+NumLock key combination. You should
hear the speaker beeping. To disable it, do the same thing.
To control the mouse the numeric keypad is used as follows:
- 4 (left arrow), 7 (Home), 8 (up arrow), 9 (PgUp), 6 (right arrow),
3 (PgDn), 2 (down arrow) and 1 (End) move the mouse to the corresponding
direction;
- holding one of the above keys and the holding the 5 key will move the
pointer faster;
- / will select the first mouse button (left button);
- * will select the second mouse button (middle button);
- - will select the third mouse button (right button);
- 5 will do a click with the currently selected mouse button;
- + will do a double-click with the currently selected button;
- 0 (Ins) will click and hold the currently selected button;
- . (Del) will release the currently selected button that was previously
clicked with the 0 (Ins) key.
The above key values work in a XFree86 3.2 (X11R6.1) X server but your
milleage may vary.
How to make a gdb backtrace
===========================
Backtraces can help us fix bugs that make Window Maker crash. If you
find a bug that crashes Window Maker, please send a backtrace with your
bug report.
To make a usefull backtrace, you need a core file with debugging
information produced by Window Maker when it crashes. The default
for Window Maker is to restart another window manager when it crashes,
so you will not get a core file. You need to edit the src/wconfig.h
file *after* running configure and change the line that looks like:
#undef NO_EMERGENCY_AUTORESTART
to:
#define NO_EMERGENCY_AUTORESTART
Then, in the src directory type:
make CFLAGS=-g
make install
and wait for Window Maker to be installed.
Once having Window Maker installed, start X and reproduce the bug so
that Window Maker crashes. When it does crash, type the following from
your shell:
script
gdb wmaker path_to_the_core_file
Then, in the gdb prompt type "bt". Quit from gdb by typing "quit"
and then, in the shell prompt, type "exit".
The file named typescript will contain the backtrace.
Copyrights Copyrights
@@ -171,7 +251,7 @@ project. The name of people who have helped with localization (translation)
can be found in po/README and Window Maker/README can be found in po/README and Window Maker/README
If you have any comments, fixes and bug reports (filled BUGFORMs) send them If you have any comments, fixes and bug reports (filled BUGFORMs) send them
to kojima@windowmaker.org to developers@windowmaker.org
Musicware Musicware

27
TODO
View File

@@ -3,43 +3,44 @@ Do ASAP:
======== ========
- fix bestvisual selection code. Broken. - fix bestvisual selection code. Broken.
- add a dialog to let user choose if we should restart, restart twm or continue crashing on crash. Do not forget to check if wmaker is already fully running. - add a dialog to let user choose if we should restart, restart twm or continue crashing on crash. Do not forget to check if wmaker is already fully running.
- fix stacking. buggy again - fix stacking. buggy again (maybe XFree 3.2 bug)
+ ICCCM compliant stuff: find what is missing
- WM_COLORMAP_NOTIFY clientmessage
- fix RemakeStackList() to account for transient windows - fix RemakeStackList() to account for transient windows
- change CommitStacking() on AddToStackingList() to more optimized thing
- differential update of appmenu - differential update of appmenu
- make unhide app map windows in the same stacking order they were before - make unhide app map windows in the same stacking order they were before
hiding hiding
Need to do: Need to do:
=========== ===========
- support for X11R6.4 extension for getting extra visual info in wrlib's
automatic best context guessing
- ICCCM 2.0 stuff (although nobody is 2.0 compliant, AFAIK. Not even twm)
- rewrite menu traversal code
- histeresys in menu item selection
- docklet to control AccessX (keyboard accessibility) functions
- rewrite all redundant stuff to use WINGs - rewrite all redundant stuff to use WINGs
- resizebartexture option - resizebartexture option
- add function to directly make a thumbnail of an image, using the - add function to directly make a thumbnail of an image, using the
functionality provided by the image libraries to load a minimal functionality provided by the image libraries to load a minimal
amount of data. amount of data.
- clickonclientarearaisewindow
- edge resistance (with timer)
- save client supplied icons in ~/GNUstep/.AppInfo/ClientIcons/ and
use them by default
- GNUstepWMAttributes update in propertynotify
+ investigate memory leaks + investigate memory leaks
- make Docked apps with WM_CLIENT_MACHINE be launched from respective - make Docked apps with WM_CLIENT_MACHINE be launched from respective
machines (also put a marking showing it's remote launched) machines (also put a marking showing it's remote launched)
- handle change of CLIENT_LEADER property
- rewrite defaults/wdefaults stuff to use WINGs UD stuff. Search list: - rewrite defaults/wdefaults stuff to use WINGs UD stuff. Search list:
~/G/D/WindowMaker /u/l/s/W/D/WindowMaker built-in-defaults ~/G/D/WindowMaker /u/l/s/W/D/WindowMaker built-in-defaults
- remake internal string processing to use wc? - remake internal string processing to use wchar? unicode?
- -statefile cmd arg to specify path for WMState file (multiple instance - -stateprefix cmd arg to specify sufix for WMState domain (multiple instance
support) support)
- R6 style session management (or something to make wmaker compatible/aware
of it)
Maybe some day: Maybe some day:
=============== ===============
- virtual desktop - virtual workspace
- optimize for size - optimize for size
- make dithering in 8bpp better - make dithering in 8bpp better
Never: (so, dont even bother to ask) Never: (so, dont even bother to ask)
====== ======
- different themes for each workspace. Unless you give us a SGI/Power Onyx - different themes for each workspace. Unless you give us a SGI/Power Onyx

View File

@@ -1,6 +1,13 @@
changes since wmaker 0.20.0: changes since wmaker 0.20.0:
............................ ............................
- added generic object field for WMListItem. This is for hanging generic
clientdata
changes since wmaker 0.20.0:
............................
- changed WMGetFilePanelFile() with WMGetFilePanelFileName() - changed WMGetFilePanelFile() with WMGetFilePanelFileName()
- made SavePanel - made SavePanel

View File

@@ -6,7 +6,7 @@ SUBDIRS = Resources
LIBLIST= -L$(top_builddir)/wrlib -lwraster @XLFLAGS@ @GFXLIBS@ @XLIBS@ \ LIBLIST= -L$(top_builddir)/wrlib -lwraster @XLFLAGS@ @GFXLIBS@ @XLIBS@ \
-lm @LIBPL_LIBS@ -lm -L$(top_builddir)/libPropList -lPropList
lib_LIBRARIES = libWINGs.a lib_LIBRARIES = libWINGs.a
@@ -84,7 +84,7 @@ libWINGs_a_SOURCES = \
## Find a better way than $(GFXFLAGS) to inform widgets.c wich of ## Find a better way than $(GFXFLAGS) to inform widgets.c wich of
## tiff or xpm images should be used ## tiff or xpm images should be used
INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/src @XCFLAGS@ \ INCLUDES = @XCFLAGS@ -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \
-DRESOURCE_PATH=\"$(datadir)/WINGs\" $(GFXFLAGS) -DDEBUG \ -DRESOURCE_PATH=\"$(datadir)/WINGs\" $(GFXFLAGS) -DDEBUG \
@LIBPL_INC_PATH@ -I$(top_srcdir)/libPropList

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@
@@ -96,7 +94,7 @@ AUTOMAKE_OPTIONS = no-dependencies
SUBDIRS = Resources SUBDIRS = Resources
LIBLIST= -L$(top_builddir)/wrlib -lwraster @XLFLAGS@ @GFXLIBS@ @XLIBS@ \ LIBLIST= -L$(top_builddir)/wrlib -lwraster @XLFLAGS@ @GFXLIBS@ @XLIBS@ \
-lm @LIBPL_LIBS@ -lm -L$(top_builddir)/libPropList -lPropList
lib_LIBRARIES = libWINGs.a lib_LIBRARIES = libWINGs.a
@@ -167,9 +165,9 @@ libWINGs_a_SOURCES = \
memory.c \ memory.c \
usleep.c usleep.c
INCLUDES = -I$(top_srcdir)/wrlib -I$(top_srcdir)/src @XCFLAGS@ \ INCLUDES = @XCFLAGS@ -I$(top_srcdir)/wrlib -I$(top_srcdir)/src \
-DRESOURCE_PATH=\"$(datadir)/WINGs\" $(GFXFLAGS) -DDEBUG \ -DRESOURCE_PATH=\"$(datadir)/WINGs\" $(GFXFLAGS) -DDEBUG \
@LIBPL_INC_PATH@ -I$(top_srcdir)/libPropList
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../src/config.h CONFIG_HEADER = ../src/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@

View File

@@ -6,7 +6,7 @@
#include <wraster.h> #include <wraster.h>
#include <X11/Xlib.h> #include <X11/Xlib.h>
#define WINGS_H_VERSION 980922 #define WINGS_H_VERSION 980930
@@ -286,6 +286,7 @@ typedef struct W_FontPanel WMFontPanel;
/* item for WMList */ /* item for WMList */
typedef struct WMListItem { typedef struct WMListItem {
char *text; char *text;
void *clientData; /* ptr for user clientdata. */
struct WMListItem *nextPtr; struct WMListItem *nextPtr;
@@ -393,6 +394,12 @@ void WMScreenMainLoop(WMScreen *scr);
RContext *WMScreenRContext(WMScreen *scr); RContext *WMScreenRContext(WMScreen *scr);
Display *WMScreenDisplay(WMScreen *scr);
int WMScreenDepth(WMScreen *scr);
void WMSetApplicationIconImage(WMScreen *app, WMPixmap *icon); void WMSetApplicationIconImage(WMScreen *app, WMPixmap *icon);
WMPixmap *WMGetApplicationIconImage(WMScreen *app); WMPixmap *WMGetApplicationIconImage(WMScreen *app);
@@ -434,11 +441,11 @@ WMHandlerID WMAddInputHandler(int fd, int condition, WMInputProc *proc,
void WMDeleteInputHandler(WMHandlerID handlerID); void WMDeleteInputHandler(WMHandlerID handlerID);
/* ....................................................................... */ /* ....................................................................... */
/*
void WMDragImageFromView(WMView *view, WMPixmap *image, WMPoint atLocation, void WMDragImageFromView(WMView *view, WMPixmap *image, WMPoint atLocation,
WMSize mouseOffset, XEvent *event, Bool slideBack); WMSize mouseOffset, XEvent *event, Bool slideBack);
*/
/* ....................................................................... */ /* ....................................................................... */
@@ -547,8 +554,6 @@ int WMWidthOfString(WMFont *font, char *text, int length);
WMScreen *WMWidgetScreen(WMWidget *w); WMScreen *WMWidgetScreen(WMWidget *w);
Display *WMScreenDisplay(WMScreen *scr);
void WMUnmapWidget(WMWidget *w); void WMUnmapWidget(WMWidget *w);
void WMMapWidget(WMWidget *w); void WMMapWidget(WMWidget *w);
@@ -898,6 +903,10 @@ WMScroller *WMGetScrollViewHorizontalScroller(WMScrollView *sPtr);
WMScroller *WMGetScrollViewVerticalScroller(WMScrollView *sPtr); WMScroller *WMGetScrollViewVerticalScroller(WMScrollView *sPtr);
void WMSetScrollViewLineScroll(WMScrollView *sPtr, int amount);
void WMSetScrollViewPageScroll(WMScrollView *sPtr, int amount);
/* ....................................................................... */ /* ....................................................................... */
WMSlider *WMCreateSlider(WMWidget *parent); WMSlider *WMCreateSlider(WMWidget *parent);
@@ -963,7 +972,7 @@ void WMDestroyInputPanel(WMInputPanel *panel);
/* ....................................................................... */ /* ....................................................................... */
/* only 1 instance per WMScreen */ /* only 1 instance per WMScreen */
WMOpenPanel *WMGetOpenPanel(WMScreen *app); WMOpenPanel *WMGetOpenPanel(WMScreen *scrPtr);
WMSavePanel *WMGetSavePanel(WMScreen *scrPtr); WMSavePanel *WMGetSavePanel(WMScreen *scrPtr);

View File

@@ -6,7 +6,7 @@
#include "WINGs.h" #include "WINGs.h"
#include "WUtil.h" #include "WUtil.h"
#if WINGS_H_VERSION < 980922 #if WINGS_H_VERSION < 980930
#error There_is_an_old_WINGs.h_file_somewhere_in_your_system._Please_remove_it. #error There_is_an_old_WINGs.h_file_somewhere_in_your_system._Please_remove_it.
#endif #endif
@@ -234,8 +234,8 @@ typedef struct W_View {
#if 0 #if 0
struct W_DragSourceProcs *dragSourceProcs; struct W_DragSourceProcs *dragSourceProcs;
struct W_DragDestinationProcs *dragDestinationProcs; struct W_DragDestinationProcs *dragDestinationProcs;
#endif
int helpContext; int helpContext;
#endif
struct { struct {
unsigned int realized:1; unsigned int realized:1;

View File

@@ -5,6 +5,13 @@
#include <sys/types.h> #include <sys/types.h>
/* SunOS 4.x Blargh.... */
#ifndef NULL
#define NULL ((void*)0)
#endif
/* /*
* Warning: proplist.h #defines BOOL which will clash with the * Warning: proplist.h #defines BOOL which will clash with the
* typedef BOOL in Xmd.h * typedef BOOL in Xmd.h
@@ -65,7 +72,12 @@ typedef struct {
} WMHashTableCallbacks; } WMHashTableCallbacks;
#if 0
typedef struct {
char character; /* the escape character */
char *value; /* value to place */
} WMSEscapes;
#endif
typedef void WMNotificationObserverAction(void *observerData, typedef void WMNotificationObserverAction(void *observerData,
@@ -105,6 +117,10 @@ char *wdefaultspathfordomain(char *domain);
void wusleep(unsigned int microsec); void wusleep(unsigned int microsec);
#if 0
int wsprintesc(char *buffer, int length, char *format, WMSEscapes **escapes,
int count);
#endif
/*......................................................................*/ /*......................................................................*/

View File

@@ -53,7 +53,8 @@ wfatal(const char *msg, ...)
fputs(_WINGS_progname, stderr); fputs(_WINGS_progname, stderr);
fputs(" fatal error: ",stderr); fputs(" fatal error: ",stderr);
fputs(buf, stderr); fputs(buf, stderr);
fflush(NULL); fflush(stdout);
fflush(stderr);
va_end(args); va_end(args);
} }
@@ -79,7 +80,8 @@ wwarning(const char *msg, ...)
fputs(_WINGS_progname, stderr); fputs(_WINGS_progname, stderr);
fputs(" warning: ",stderr); fputs(" warning: ",stderr);
fputs(buf, stderr); fputs(buf, stderr);
fflush(NULL); fflush(stdout);
fflush(stderr);
va_end(args); va_end(args);
} }
@@ -109,7 +111,8 @@ wsyserror(const char *msg, ...)
strcat(buf, strerror(error)); strcat(buf, strerror(error));
strcat(buf,"\n"); strcat(buf,"\n");
fputs(buf, stderr); fputs(buf, stderr);
fflush(NULL); fflush(stderr);
fflush(stdout);
#else #else
perror(buf); perror(buf);
#endif #endif

View File

@@ -7,17 +7,16 @@
# include <sys/time.h> # include <sys/time.h>
#endif #endif
#ifdef _AIX
#include <sys/select.h>
#endif
#ifdef HAVE_SYS_TYPES_H #ifdef HAVE_SYS_TYPES_H
# include <sys/types.h> # include <sys/types.h>
#endif #endif
#if defined(HAVE_SELECT) #if defined(HAVE_SELECT)
#ifdef HAVE_SYS_SELECT_H
# include <sys/select.h>
#endif
void void
wusleep(unsigned int microsecs) wusleep(unsigned int microsecs)

View File

@@ -436,6 +436,7 @@ paintItem(WMList *lPtr, Drawable d, char *text, int state, WMRect *rect)
else else
XClearArea(scr->display, d, x, y, width, height, False); XClearArea(scr->display, d, x, y, width, height, False);
if (text)
W_PaintText(view, d, scr->normalFont, x+4, y, width, W_PaintText(view, d, scr->normalFont, x+4, y, width,
WALeft, W_GC(scr->black), False, text, strlen(text)); WALeft, W_GC(scr->black), False, text, strlen(text));

View File

@@ -31,7 +31,7 @@ extern _WINGsConfiguration WINGsConfiguration;
typedef struct TimerHandler { typedef struct TimerHandler {
WMCallback *callback; /* procedure to call */ WMCallback *callback; /* procedure to call */
unsigned long msec; /* when to call the callback */ struct timeval when; /* when to call the callback */
void *clientData; void *clientData;
struct TimerHandler *next; struct TimerHandler *next;
} TimerHandler; } TimerHandler;
@@ -114,22 +114,32 @@ static WMEventHook *extraEventHandler=NULL;
#define idlePending() (idleHandler) #define idlePending() (idleHandler)
/* return current time in milliseconds */
#ifdef HAVE_GETTIMEOFDAY #ifdef HAVE_GETTIMEOFDAY
static unsigned long static void
rightNow(void) { rightNow(struct timeval *tv) {
struct timeval tv; gettimeofday(tv, NULL);
gettimeofday(&tv, NULL);
return 1000L*(unsigned long)tv.tv_sec + (unsigned long)tv.tv_usec/1000L;
} }
#else /* !HAVE_GETTIMEOFDAY */ #else /* !HAVE_GETTIMEOFDAY */
# define rightNow() (1000*(unsigned long)time(NULL)) # define rightNow(tv) (tv)->tv_sec==time(NULL),(tv)->tv_usec=0
#endif /* !HAVE_GETTIMEOFDAY */ #endif /* !HAVE_GETTIMEOFDAY */
/* is t1 after t2 ? */
#define IS_AFTER(t1, t2) (((t1).tv_sec > (t2).tv_sec) || \
(((t1).tv_sec == (t2).tv_sec) \
&& ((t1).tv_usec > (t2).tv_usec)))
static void
addmillisecs(struct timeval *tv, int milliseconds)
{
tv->tv_usec += milliseconds*1000;
tv->tv_sec += tv->tv_usec/1000000;
tv->tv_usec = tv->tv_usec%1000000;
}
WMHandlerID WMHandlerID
WMAddTimerHandler(int milliseconds, WMCallback *callback, void *cdata) WMAddTimerHandler(int milliseconds, WMCallback *callback, void *cdata)
{ {
@@ -139,17 +149,18 @@ WMAddTimerHandler(int milliseconds, WMCallback *callback, void *cdata)
if (!handler) if (!handler)
return NULL; return NULL;
handler->msec = rightNow()+milliseconds; rightNow(&handler->when);
addmillisecs(&handler->when, milliseconds);
handler->callback = callback; handler->callback = callback;
handler->clientData = cdata; handler->clientData = cdata;
/* insert callback in queue, sorted by time left */ /* insert callback in queue, sorted by time left */
if (!timerHandler || timerHandler->msec >= handler->msec) { if (!timerHandler || !IS_AFTER(handler->when, timerHandler->when)) {
/* first in the queue */ /* first in the queue */
handler->next = timerHandler; handler->next = timerHandler;
timerHandler = handler; timerHandler = handler;
} else { } else {
tmp = timerHandler; tmp = timerHandler;
while (tmp->next && tmp->next->msec < handler->msec) { while (tmp->next && IS_AFTER(handler->when, tmp->next->when)) {
tmp = tmp->next; tmp = tmp->next;
} }
handler->next = tmp->next; handler->next = tmp->next;
@@ -341,12 +352,11 @@ static void
checkTimerHandlers() checkTimerHandlers()
{ {
TimerHandler *handler; TimerHandler *handler;
unsigned long now = rightNow(); struct timeval now;
if (!timerHandler || (timerHandler->msec > now)) rightNow(&now);
return;
while (timerHandler && timerHandler->msec <= now) { while (timerHandler && IS_AFTER(now, timerHandler->when)) {
handler = timerHandler; handler = timerHandler;
timerHandler = timerHandler->next; timerHandler = timerHandler->next;
handler->next = NULL; handler->next = NULL;
@@ -357,22 +367,26 @@ checkTimerHandlers()
static unsigned long static void
msToNextTimerEvent() delayUntilNextTimerEvent(struct timeval *delay)
{ {
unsigned long now; struct timeval now;
if (!timerHandler) { if (!timerHandler) {
/* The return value of this function is only valid if there _are_ /* The return value of this function is only valid if there _are_
timers active. */ timers active. */
return 0; delay->tv_sec = 0;
delay->tv_usec = 0;
return;
} }
now = rightNow(); rightNow(&now);
if (timerHandler->msec < now) { if (IS_AFTER(now, timerHandler->when)) {
return 0; delay->tv_sec = 0;
delay->tv_usec = 0;
} else { } else {
return timerHandler->msec - now; delay->tv_sec = timerHandler->when.tv_sec - now.tv_sec;
delay->tv_usec = timerHandler->when.tv_usec - now.tv_usec;
} }
} }
@@ -693,7 +707,6 @@ W_WaitForEvent(Display *dpy, unsigned long xeventmask)
#ifndef HAVE_SELECT #ifndef HAVE_SELECT
#error This_system_does_not_have_select(2)_and_is_not_supported #error This_system_does_not_have_select(2)_and_is_not_supported
#endif #endif
unsigned long milliseconds;
struct timeval timeout; struct timeval timeout;
struct timeval *timeoutPtr; struct timeval *timeoutPtr;
fd_set rset, wset, eset; fd_set rset, wset, eset;
@@ -730,9 +743,7 @@ W_WaitForEvent(Display *dpy, unsigned long xeventmask)
* next timer expires. * next timer expires.
*/ */
if (timerPending()) { if (timerPending()) {
milliseconds = msToNextTimerEvent(); delayUntilNextTimerEvent(&timeout);
timeout.tv_sec = milliseconds / 1000;
timeout.tv_usec = (milliseconds % 1000) * 1000;
timeoutPtr = &timeout; timeoutPtr = &timeout;
} else { } else {
timeoutPtr = (struct timeval*)0; timeoutPtr = (struct timeval*)0;
@@ -841,9 +852,7 @@ WMMaskEvent(Display *dpy, long mask, XEvent *event)
* next timer expires. * next timer expires.
*/ */
if (timerPending()) { if (timerPending()) {
milliseconds = msToNextTimerEvent(); delayUntilNextTimerEvent(&timeout);
timeout.tv_sec = milliseconds / 1000;
timeout.tv_usec = (milliseconds % 1000) * 1000;
timeoutOrInfty = &timeout; timeoutOrInfty = &timeout;
} else { } else {
timeoutOrInfty = (struct timeval*)0; timeoutOrInfty = (struct timeval*)0;

View File

@@ -243,6 +243,9 @@ WMGetSavePanel(WMScreen *scrPtr)
void void
WMFreeFilePanel(WMFilePanel *panel) WMFreeFilePanel(WMFilePanel *panel)
{ {
if (panel == WMWidgetScreen(panel->win)->sharedSavePanel) {
WMWidgetScreen(panel->win)->sharedSavePanel = NULL;
}
if (panel == WMWidgetScreen(panel->win)->sharedOpenPanel) { if (panel == WMWidgetScreen(panel->win)->sharedOpenPanel) {
WMWidgetScreen(panel->win)->sharedOpenPanel = NULL; WMWidgetScreen(panel->win)->sharedOpenPanel = NULL;
} }
@@ -501,8 +504,12 @@ getCurrentFileName(WMFilePanel *panel)
if (path[len-1]=='/') { if (path[len-1]=='/') {
file = WMGetTextFieldText(panel->fileField); file = WMGetTextFieldText(panel->fileField);
tmp = wmalloc(strlen(path)+strlen(file)+8); tmp = wmalloc(strlen(path)+strlen(file)+8);
if (file[0]!='/') {
strcpy(tmp, path); strcpy(tmp, path);
strcat(tmp, file); strcat(tmp, file);
} else
strcpy(tmp, file);
free(file); free(file);
free(path); free(path);
return tmp; return tmp;

View File

@@ -421,7 +421,8 @@ loadPixmaps(WMScreen *scr)
image = RLoadImage(scr->rcontext, WINGS_IMAGES_FILE, 0); image = RLoadImage(scr->rcontext, WINGS_IMAGES_FILE, 0);
if (!image) { if (!image) {
wwarning("WINGs: could not load widget images file: %s", RErrorString); wwarning("WINGs: could not load widget images file: %s",
RMessageForError(RErrorCode));
return False; return False;
} }
/* make it have a gray background */ /* make it have a gray background */
@@ -653,6 +654,8 @@ WMCreateScreenWithRContext(Display *display, int screen, RContext *context)
scrPtr->rootView = W_CreateRootView(scrPtr); scrPtr->rootView = W_CreateRootView(scrPtr);
W_InitApplication(scrPtr);
return scrPtr; return scrPtr;
} }
@@ -886,6 +889,13 @@ WMScreenDisplay(WMScreen *scr)
} }
int
WMScreenDepth(WMScreen *scr)
{
return scr->depth;
}
void void
WMRedisplayWidget(WMWidget *w) WMRedisplayWidget(WMWidget *w)
{ {

View File

@@ -424,7 +424,7 @@ int main(int argc, char **argv)
* *
* Put the testSomething() function you want to test here. * Put the testSomething() function you want to test here.
*/ */
#if 0 #if 1
testOpenFilePanel(scr); testOpenFilePanel(scr);
testFontPanel(scr); testFontPanel(scr);
testList(scr); testList(scr);

View File

@@ -589,7 +589,7 @@ handleEvents(XEvent *event, void *data)
paintTextField(tPtr); paintTextField(tPtr);
if (!tPtr->flags.notIllegalMovement) { if (!tPtr->flags.notIllegalMovement) {
WMPostNotificationName(WMTextDidEndEditingNotification, tPtr, WMPostNotificationName(WMTextDidEndEditingNotification, tPtr,
WMIllegalTextMovement); (void*)WMIllegalTextMovement);
} }
break; break;
@@ -614,7 +614,6 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
int count, refresh = 0; int count, refresh = 0;
int control_pressed = 0; int control_pressed = 0;
int changed; int changed;
WMNotification *notif;
WMScreen *scr = tPtr->view->screen; WMScreen *scr = tPtr->view->screen;
changed = 0; changed = 0;
@@ -629,24 +628,22 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
switch (ksym) { switch (ksym) {
case XK_Tab: case XK_Tab:
if (event->xkey.state & ShiftMask) { if (event->xkey.state & ShiftMask) {
notif = WMCreateNotification(WMTextDidEndEditingNotification,
tPtr, (void*)WMBacktabTextMovement);
if (tPtr->view->prevFocusChain) { if (tPtr->view->prevFocusChain) {
W_SetFocusOfTopLevel(W_TopLevelOfView(tPtr->view), W_SetFocusOfTopLevel(W_TopLevelOfView(tPtr->view),
tPtr->view->prevFocusChain); tPtr->view->prevFocusChain);
tPtr->flags.notIllegalMovement = 1; tPtr->flags.notIllegalMovement = 1;
} }
WMPostNotificationName(WMTextDidEndEditingNotification, tPtr,
(void*)WMBacktabTextMovement);
} else { } else {
notif = WMCreateNotification(WMTextDidEndEditingNotification,
tPtr, (void*)WMTabTextMovement);
if (tPtr->view->nextFocusChain) { if (tPtr->view->nextFocusChain) {
W_SetFocusOfTopLevel(W_TopLevelOfView(tPtr->view), W_SetFocusOfTopLevel(W_TopLevelOfView(tPtr->view),
tPtr->view->nextFocusChain); tPtr->view->nextFocusChain);
tPtr->flags.notIllegalMovement = 1; tPtr->flags.notIllegalMovement = 1;
} }
WMPostNotificationName(WMTextDidEndEditingNotification,
tPtr, (void*)WMTabTextMovement);
} }
WMPostNotification(notif);
WMReleaseNotification(notif);
break; break;
case XK_Return: case XK_Return:

View File

@@ -149,7 +149,6 @@ WMWindow*
WMCreateWindowWithStyle(WMScreen *screen, char *name, int style) WMCreateWindowWithStyle(WMScreen *screen, char *name, int style)
{ {
_Window *win; _Window *win;
static int initedApp = 0;
win = wmalloc(sizeof(_Window)); win = wmalloc(sizeof(_Window));
memset(win, 0, sizeof(_Window)); memset(win, 0, sizeof(_Window));
@@ -175,11 +174,6 @@ WMCreateWindowWithStyle(WMScreen *screen, char *name, int style)
W_ResizeView(win->view, DEFAULT_WIDTH, DEFAULT_HEIGHT); W_ResizeView(win->view, DEFAULT_WIDTH, DEFAULT_HEIGHT);
if (!initedApp) {
W_InitApplication(screen);
initedApp = 1;
}
WMAddNotificationObserver(realizeObserver, win, WMAddNotificationObserver(realizeObserver, win,
WMViewRealizedNotification, win->view); WMViewRealizedNotification, win->view);

View File

@@ -127,6 +127,7 @@ createImages(WMScreen *scr, RContext *rc, RImage *xis, char *file,
{ {
RImage *icon; RImage *icon;
char *path; char *path;
RColor gray = {0xae,0xaa,0xae};
*icon1 = NULL; *icon1 = NULL;
*icon2 = NULL; *icon2 = NULL;
@@ -148,10 +149,11 @@ createImages(WMScreen *scr, RContext *rc, RImage *xis, char *file,
free(path); free(path);
return; return;
} }
RCombineImageWithColor(icon, &gray);
if (xis) { if (xis) {
RCombineImages(icon, xis); RCombineImagesWithOpaqueness(icon, xis, 180);
if (!(*icon2 = WMCreatePixmapFromRImage(scr, icon, 127))) if (!(*icon2 = WMCreatePixmapFromRImage(scr, icon, 127)))
wwarning(_("could not process icon %s:"), file, RErrorString); wwarning(_("could not process icon %s:"), file, RMessageForError(RErrorCode));
} }
RDestroyImage(icon); RDestroyImage(icon);
free(path); free(path);

View File

@@ -12,7 +12,7 @@ wpdatadir = @wprefsdir@
wpdata_DATA = WPrefs.tiff WPrefs.xpm wpdata_DATA = WPrefs.tiff WPrefs.xpm
EXTRA_DIST = $(wpdata_DATA) EXTRA_DIST = $(wpdata_DATA) TexturePanel.icons
WPrefs_SOURCES = \ WPrefs_SOURCES = \
main.c \ main.c \
@@ -31,6 +31,8 @@ WPrefs_SOURCES = \
Preferences.c \ Preferences.c \
Text.c \ Text.c \
TextureAndColor.c \ TextureAndColor.c \
TexturePanel.c \
TexturePanel.h \
WindowHandling.c \ WindowHandling.c \
Workspace.c \ Workspace.c \
double.c \ double.c \
@@ -48,14 +50,14 @@ INCLUDES = \
-I$(top_srcdir)/wrlib \ -I$(top_srcdir)/wrlib \
-I$(top_srcdir)/WINGs \ -I$(top_srcdir)/WINGs \
@XCFLAGS@ \ @XCFLAGS@ \
@LIBPL_INC_PATH@ -I$(top_srcdir)/libPropList
WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a
WPrefs_LDADD = \ WPrefs_LDADD = \
-L$(top_builddir)/WINGs -lWINGs\ -L$(top_builddir)/WINGs -lWINGs\
-L$(top_builddir)/wrlib -lwraster \ -L$(top_builddir)/wrlib -lwraster \
@LIBPL_LIBS@ \ -L$(top_builddir)/libPropList -lPropList \
@XLFLAGS@ \ @XLFLAGS@ \
@GFXLIBS@ \ @GFXLIBS@ \
@XLIBS@ \ @XLIBS@ \

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@
@@ -105,7 +103,7 @@ wpdatadir = @wprefsdir@
wpdata_DATA = WPrefs.tiff WPrefs.xpm wpdata_DATA = WPrefs.tiff WPrefs.xpm
EXTRA_DIST = $(wpdata_DATA) EXTRA_DIST = $(wpdata_DATA) TexturePanel.icons
WPrefs_SOURCES = \ WPrefs_SOURCES = \
main.c \ main.c \
@@ -124,6 +122,8 @@ WPrefs_SOURCES = \
Preferences.c \ Preferences.c \
Text.c \ Text.c \
TextureAndColor.c \ TextureAndColor.c \
TexturePanel.c \
TexturePanel.h \
WindowHandling.c \ WindowHandling.c \
Workspace.c \ Workspace.c \
double.c \ double.c \
@@ -140,14 +140,14 @@ INCLUDES = \
-I$(top_srcdir)/wrlib \ -I$(top_srcdir)/wrlib \
-I$(top_srcdir)/WINGs \ -I$(top_srcdir)/WINGs \
@XCFLAGS@ \ @XCFLAGS@ \
@LIBPL_INC_PATH@ -I$(top_srcdir)/libPropList
WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a
WPrefs_LDADD = \ WPrefs_LDADD = \
-L$(top_builddir)/WINGs -lWINGs\ -L$(top_builddir)/WINGs -lWINGs\
-L$(top_builddir)/wrlib -lwraster \ -L$(top_builddir)/wrlib -lwraster \
@LIBPL_LIBS@ \ -L$(top_builddir)/libPropList -lPropList \
@XLFLAGS@ \ @XLFLAGS@ \
@GFXLIBS@ \ @GFXLIBS@ \
@XLIBS@ \ @XLIBS@ \
@@ -169,7 +169,8 @@ X_PRE_LIBS = @X_PRE_LIBS@
WPrefs_OBJECTS = main.o WPrefs.o Configurations.o Expert.o Focus.o \ WPrefs_OBJECTS = main.o WPrefs.o Configurations.o Expert.o Focus.o \
Icons.o KeyboardSettings.o KeyboardShortcuts.o Menu.o MenuPreferences.o \ Icons.o KeyboardSettings.o KeyboardShortcuts.o Menu.o MenuPreferences.o \
MouseSettings.o Paths.o Preferences.o Text.o TextureAndColor.o \ MouseSettings.o Paths.o Preferences.o Text.o TextureAndColor.o \
WindowHandling.o Workspace.o double.o MenuGuru.o xmodifier.o TexturePanel.o WindowHandling.o Workspace.o double.o MenuGuru.o \
xmodifier.o
WPrefs_LDFLAGS = WPrefs_LDFLAGS =
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)

View File

@@ -1280,9 +1280,8 @@ showData(_Panel *panel)
strcat(menuPath, "/Defaults/WMRootMenu"); strcat(menuPath, "/Defaults/WMRootMenu");
menu = PLGetProplistWithPath(menuPath); menu = PLGetProplistWithPath(menuPath);
free(menuPath);
if (!PLIsArray(menu)) { if (!menu || !PLIsArray(menu)) {
sprintf(buffer, _("The format of the current menu in ~/G/D/WMRootMenu " sprintf(buffer, _("The format of the current menu in ~/G/D/WMRootMenu "
"is not supported by WPrefs. A new menu will be created.\n" "is not supported by WPrefs. A new menu will be created.\n"
"You can also replace ~/G/D/WMRootMenu with ~/G/L/W/plmenu " "You can also replace ~/G/D/WMRootMenu with ~/G/L/W/plmenu "
@@ -1303,7 +1302,10 @@ showData(_Panel *panel)
} else { } else {
pmenu = preProcessMenu(menu, &hasWSMenu); pmenu = preProcessMenu(menu, &hasWSMenu);
} }
PLSetFilename(pmenu, PLGetFilename(menu)); PLSetFilename(pmenu, menuPath);
free(menuPath);
if (menu)
PLRelease(menu); PLRelease(menu);
if (panel->itemClipboard) { if (panel->itemClipboard) {

View File

@@ -738,8 +738,8 @@ createPanel(Panel *p)
WMSetFrameTitle(panel->grabF, _("Mouse Grab Modifier")); WMSetFrameTitle(panel->grabF, _("Mouse Grab Modifier"));
panel->grabP = WMCreatePopUpButton(panel->grabF); panel->grabP = WMCreatePopUpButton(panel->grabF);
WMResizeWidget(panel->grabP, 120, 20); WMResizeWidget(panel->grabP, 160, 20);
WMMoveWidget(panel->grabP, 60, 25); WMMoveWidget(panel->grabP, 40, 25);
fillModifierPopUp(panel->grabP); fillModifierPopUp(panel->grabP);

View File

@@ -192,7 +192,7 @@ createPanel(Panel *p)
panel->raisB = WMCreateSwitchButton(panel->optF); panel->raisB = WMCreateSwitchButton(panel->optF);
WMResizeWidget(panel->raisB, 440, 20); WMResizeWidget(panel->raisB, 440, 20);
WMMoveWidget(panel->raisB, 20, 25); WMMoveWidget(panel->raisB, 20, 25);
WMSetButtonText(panel->raisB, _("Raise window when switching focus with keyboard.")); WMSetButtonText(panel->raisB, _("Raise window when switching focus with keyboard (CirculateRaise)."));
WMMapSubwidgets(panel->optF); WMMapSubwidgets(panel->optF);

View File

@@ -67,9 +67,8 @@ By default, WPrefs.app will be installed in the GNUstep applications
directory, which is /usr/local/GNUstep/Apps. If you want to install it directory, which is /usr/local/GNUstep/Apps. If you want to install it
somewhere else, like in /some_weird_path/Apps, set the GNUSTEP_LOCAL_ROOT somewhere else, like in /some_weird_path/Apps, set the GNUSTEP_LOCAL_ROOT
environment variable to some_weird_path before running configure for environment variable to some_weird_path before running configure for
WindowMaker. Leave this variable always set (make it be set from your WindowMaker. You can also configure Window Maker supplying the --with-appspath
.profile or .tcshrc or whatever), or WPrefs.app will not find it's resource option to configure, like ./configure --with-appspath=/usr/GNUstep/Apps
files (like icons).
If you change your mind after installing, you can move the .app directory If you change your mind after installing, you can move the .app directory
to one of the following GNUstep/Apps directories: to one of the following GNUstep/Apps directories:
@@ -91,6 +90,9 @@ Credits
User interface design, programming and a few icons: User interface design, programming and a few icons:
Alfredo K. Kojima <kojima@windowmaker.org> Alfredo K. Kojima <kojima@windowmaker.org>
Additional programming:
James Thompson <jamest@math.ksu.edu>
Icon and image artwork: Icon and image artwork:
Marco van Hylckama Vlieg <fatal@global.uibk.ac.at> Marco van Hylckama Vlieg <fatal@global.uibk.ac.at>

View File

@@ -23,6 +23,8 @@
#include "WPrefs.h" #include "WPrefs.h"
#include "TexturePanel.h"
typedef struct _Panel { typedef struct _Panel {
WMFrame *frame; WMFrame *frame;
char *sectionName; char *sectionName;
@@ -97,7 +99,7 @@ typedef struct _Panel {
WMTextField *iconT; WMTextField *iconT;
WMButton *iconB; WMButton *iconB;
Pixmap preview;
Pixmap ftitle; Pixmap ftitle;
Pixmap utitle; Pixmap utitle;
Pixmap otitle; Pixmap otitle;
@@ -123,10 +125,53 @@ typedef struct _Panel {
#define EVERYTHING 0xff #define EVERYTHING 0xff
static Pixmap
renderTexture(_Panel *panel, char *texture, int width, int height,
Bool bordered)
{
return None;
}
static void static void
updatePreviewBox(_Panel *panel, int elements) updatePreviewBox(_Panel *panel, int elements)
{ {
WMScreen *scr = WMWidgetScreen(panel->win);
Display *dpy = WMScreenDisplay(scr);
/* RContext *rc = WMScreenRContext(scr);*/
int refresh = 0;
char *tmp;
if (!panel->preview) {
panel->preview = XCreatePixmap(dpy, WMWidgetXID(panel->win),
220-4, 185-4, WMScreenDepth(scr));
refresh = -1;
}
if (elements & FTITLE) {
if (panel->ftitle)
XFreePixmap(dpy, panel->ftitle);
tmp = WMGetTextFieldText(panel->focT);
panel->ftitle = renderTexture(panel, tmp, 180, 20, True);
free(tmp);
}
/* have to repaint everything to make things simple, eliminating
* clipping stuff */
if (refresh) {
}
if (refresh<0) {
WMPixmap *pix;
pix = WMCreatePixmapFromXPixmaps(scr, panel->preview, None,
220-4, 185-4, WMScreenDepth(scr));
WMSetLabelImage(panel->prevL, pix);
WMReleasePixmap(pix);
}
} }

1027
WPrefs.app/TexturePanel.c Normal file

File diff suppressed because it is too large Load Diff

55
WPrefs.app/TexturePanel.h Normal file
View File

@@ -0,0 +1,55 @@
/* TexturePanel.h- texture editting panel
*
* WPrefs - WindowMaker Preferences Program
*
* Copyright (c) 1998 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.
*/
#ifndef TEXTUREPANEL_H_
#define TEXTUREPANEL_H_
typedef struct _TexturePanel TexturePanel;
TexturePanel *CreateTexturePanel(WMScreen *scr);
void DestroyTexturePanel(TexturePanel *panel);
void ShowTexturePanel(TexturePanel *panel);
void HideTexturePanel(TexturePanel *panel);
void SetTexturePanelTexture(TexturePanel *panel, char *texture);
char *GetTexturePanelTextureString(TexturePanel *panel);
RImage *RenderTexturePanelTexture(TexturePanel *panel, unsigned width,
unsigned height);
void SetTexturePanelOkAction(TexturePanel *panel, WMAction *action,
void *clientData);
void SetTexturePanelCancelAction(TexturePanel *panel, WMAction *action,
void *clientData);
#endif

View File

@@ -0,0 +1,601 @@
/* XPM */
static char * scaled_xpm[] = {
"32 32 174 2",
" c #000000000000",
". c #C71BBAEA8617",
"X c #CF3CBEFB8E38",
"o c #CF3CC30B8E38",
"O c #D75CC30B9658",
"+ c #D75CC71B9658",
"@ c #CF3CBEFB9658",
"# c #D75CC71B9E79",
"$ c #B6DAAEBA8617",
"% c #A6999E7971C6",
"& c #8E388A286185",
"* c #C71BC30B9E79",
"= c #618561854103",
"- c #5965596538E3",
"; c #71C675D65144",
": c #861782076185",
"> c #9E79A2898617",
", c #69A66DB65144",
"< c #59655D754103",
"1 c #5144555530C2",
"2 c #4924451428A2",
"3 c #410341032081",
"4 c #5144514430C2",
"5 c #6185618538E3",
"6 c #4924492428A2",
"7 c #C71BBEFB8E38",
"8 c #CF3CBAEA8E38",
"9 c #BEFBB2CA8E38",
"0 c #B6DAAAAA8617",
"q c #9E79965869A6",
"w c #9658924869A6",
"e c #8E388A2869A6",
"r c #86178A2869A6",
"t c #A699A2898617",
"y c #5144596538E3",
"u c #30C234D31861",
"i c #38E33CF31861",
"p c #79E775D65144",
"a c #69A669A64924",
"s c #CF3CC71BA699",
"d c #71C671C64924",
"f c #BEFBB6DA8E38",
"g c #C71BBAEA8E38",
"h c #CF3CC30B9E79",
"j c #A699A28979E7",
"k c #69A665954103",
"l c #596561854103",
"z c #9658965871C6",
"x c #BEFBBAEA9E79",
"c c #38E338E31861",
"v c #9E79965879E7",
"b c #71C671C65144",
"n c #BEFBB6DA9E79",
"m c #9E79965871C6",
"M c #5965555530C2",
"N c #CF3CC30BA699",
"B c #DF7DCB2B9E79",
"V c #AEBAAAAA8E38",
"C c #28A22CB21040",
"Z c #DF7DD75CBEFB",
"A c #96588E3871C6",
"S c #9E799A6979E7",
"D c #69A6618538E3",
"F c #BEFBBAEA9658",
"G c #D75CCB2BA699",
"H c #96588A285965",
"J c #C71BB6DA8617",
"K c #BEFBAEBA8617",
"L c #5965596530C2",
"P c #618565954924",
"I c #A699A6998E38",
"U c #30C230C21040",
"Y c #49244D3430C2",
"T c #EFBEEBADC71B",
"R c #B6DAB2CA8E38",
"E c #DF7DDB6CB6DA",
"W c #BEFBB2CA79E7",
"Q c #BEFBAAAA71C6",
"! c #861775D64924",
"~ c #C71BB2CA8617",
"^ c #CF3CC71B9E79",
"/ c #A6999A6971C6",
"( c #B6DAB2CA9658",
") c #5965555538E3",
"_ c #DF7DD34CAEBA",
"` c #6185596538E3",
"' c #8E3882075965",
"] c #B6DAA69971C6",
"[ c #59654D341861",
"{ c #9658924871C6",
"} c #38E334D31861",
"| c #79E779E75965",
" . c #79E775D65965",
".. c #8E3879E74924",
"X. c #C71BBAEA9658",
"o. c #86177DF76185",
"O. c #B6DAAEBA9658",
"+. c #71C669A64103",
"@. c #C71BBEFB9E79",
"#. c #AEBAA6998617",
"$. c #96588E3869A6",
"%. c #A6999E798617",
"&. c #BEFBB2CA9658",
"*. c #DF7DCF3CA699",
"=. c #BEFBB6DA9658",
"-. c #861782075965",
";. c #A6999E7979E7",
":. c #30C22CB21040",
">. c #C71BC30BA699",
",. c #8E38861769A6",
"<. c #9E799A6971C6",
"1. c #79E779E75144",
"2. c #8E3886176185",
"3. c #BEFBBEFBA699",
"4. c #9658965879E7",
"5. c #4103492428A2",
"6. c #79E76DB64103",
"7. c #AEBAAAAA79E7",
"8. c #38E33CF32081",
"9. c #4924514430C2",
"0. c #38E3410328A2",
"q. c #B6DAAAAA79E7",
"w. c #69A669A64103",
"e. c #69A675D65965",
"r. c #618569A64924",
"t. c #BEFBB2CA8617",
"y. c #BEFBBAEA8E38",
"u. c #CF3CC30B9658",
"i. c #AEBAAAAA8617",
"p. c #71C679E75965",
"a. c #69A675D65144",
"s. c #8E38924871C6",
"d. c #71C675D65965",
"f. c #96589A6979E7",
"g. c #410341031861",
"h. c #8E3882075144",
"j. c #C71BBEFB9658",
"k. c #492445142081",
"l. c #BEFBAAAA79E7",
"z. c #AEBAA28979E7",
"x. c #8617861769A6",
"c. c #5144555538E3",
"v. c #AEBAA28971C6",
"b. c #9E7992486185",
"n. c #D75CCB2B9E79",
"m. c #AEBAA69979E7",
"M. c #86177DF75965",
"N. c #61855D7538E3",
"B. c #618561854924",
"V. c #208118610000",
"C. c #41033CF31040",
"Z. c #514459654103",
"A. c #4924555538E3",
"S. c #186120810000",
"D. c #38E330C20820",
"F. c #96588E386185",
"G. c #186114510000",
"H. c #4103492430C2",
"J. c #28A224920000",
"K. c #38E338E31040",
"L. c #38E334D31040",
"P. c #618569A65144",
"I. c #61855D754103",
"U. c #492441032081",
"Y. c #D75CCF3CAEBA",
"T. c #30C22CB20820",
"R. c #492441031861",
"E. c #B6DAA69979E7",
"W. c #79E77DF76185",
"Q. c #71C66DB64924",
"!. c #861775D65144",
"~. c #51444D342081",
"^. c #D75CCF3CA699",
"/. c #8E388E3871C6",
" ",
" ",
" . X o o X X O + @ # @ $ % & * = - ; : > , < 1 2 3 4 5 6 ",
" . 7 X o o X 8 O X @ @ 9 0 q w & e = r t y u i p a & s d ",
" . . . . . . + + f g # h j k 6 l : z x 1 c v b n m M N j ",
" . . X o O O 8 B @ g @ h 0 p 4 ; : > V C 6 Z A S s D F G ",
" . o o O O O H J O f K f F % L P ; I e U Y Y T , , R 0 E ",
" 7 7 X J W Q ! ~ B # @ ^ h / p = ; ( < U ) _ n ` s h ' h ",
" . . X O . ] [ H @ g @ f h 0 m a e { } | ) .N . .E M % ",
" o . W . X o ] ..@ g ^ X.F h ( L - : 1 n o.} O.o.o.O.w +. ",
" . . . X o o B / O @ f h h @.#.5 b $.4 t %.u o.Z k &.v 6 ",
" W . o o X . o O X *.f @ s =.=.-.p & = ;.O.U :.>., ,.V = ",
" . 7 . J . O O O ~ f # 9 F h h <.p 1.2.m t U 2 3.4.L 5.c ",
" 7 . . X X o + W @ 6.@ X.9 h $ 7.w p $.p & 3 y 5.8.9.0.9. ",
" . . X o o J X ~ + ! q.h =.9 X.q.q w.w p & u 5.1 5.l e.r. ",
" g 7 ~ ~ X X X + J # t.f g y.u.$ i.k p P e i , - p.r a.s. ",
" q.t.K + Q X ~ . X X g 8 f g u.* $ d 3 ; d.C 0.r.f.r , : ",
" p R g g ~ 8 X o o ] + X . g =.9 &.& P P , Y C p.e s.& & ",
" g.h.# g f X X ] + *.X ] o $ y.$ j.j 2.6 < d.8.p.P P : & ",
" k.k.h @ K @ *.g q.l.t.# 9 u.X i.j.z.{ c Y x.c.< c.9.m F ",
" 2.6 % @.g K q.q.v.b.b.$ n.v.y.t.j.m.S g.3 , , l 9.c.{ : ",
" #.M.p h G q.j.b.q.h.$ R R n.f t.@ 0 i.N.2 1 c.B.8.< r 9. ",
" d.S k @.i.m./ 9 V.C.7.p q y.~ t.y.y.R -.- Y Z.P 8.5.A.S. ",
" u e a ( k / p D.m.F.G.9 d j g t.K y.R { a 1 < Z.< H.9.0. ",
" C ,.2 d -.$.C.M T @.C.1.F.w t.X K v.0 $. .U 9.Z.8.H.< u ",
" 3 ; m { J.K.@.% 4 9 * K.L.j g 7 X 0 z.V n 1 8.P.A.r.9.5. ",
" I.| & :.U.C.@.E k.M.Y.1.U.k.H t.@ i.<.{ t P H.< 9., < l ",
" P b 3 K.@.=.k.M.G % d Y.#.T.R.E.j.R @.,.e I W.9.8.8.9.1 ",
" - O.u Q.h =.!.k._ G ` h =.K.~.j 0 0 N { { I < 0.c.= l 1 ",
" b U #._ M !.^.0 M / s k D.F.h./ w 2.m /.v , r.A.3 6 u L ",
" ",
" "};
/* XPM */
static char * tiled_xpm[] = {
"32 32 109 2",
" c #000000000000",
". c #C71BBAEA8617",
"X c #CF3CBEFB8E38",
"o c #CF3CBEFB9658",
"O c #BEFBAEBA8E38",
"+ c #71C675D65144",
"@ c #79E77DF75965",
"# c #8E388E3871C6",
"$ c #618561854103",
"% c #61855D754103",
"& c #8E388A2869A6",
"* c #9E799A6971C6",
"= c #A6999E7971C6",
"- c #D75CC30B9658",
"; c #BEFBB2CA79E7",
": c #C71BB6DA8E38",
"> c #BEFBB6DA8E38",
", c #71C66DB64924",
"< c #9E799E798617",
"1 c #41033CF32081",
"2 c #BEFBBAEA9E79",
"3 c #A699A2898617",
"4 c #9E79965871C6",
"5 c #A6999A6971C6",
"6 c #965882075144",
"7 c #BEFBB2CA8617",
"8 c #C71BBEFB9658",
"9 c #71C671C65144",
"0 c #71C675D65965",
"q c #51444D3430C2",
"w c #AEBAA6998E38",
"e c #96588A2869A6",
"r c #9E79924871C6",
"t c #AEBAA28979E7",
"y c #C71BBEFB8E38",
"u c #B6DAA69971C6",
"i c #BEFBB6DA9658",
"p c #69A66DB64924",
"a c #9E799E7979E7",
"s c #96588E3871C6",
"d c #96588E3869A6",
"f c #861782075965",
"g c #79E779E75144",
"h c #38E334D31861",
"j c #410345142081",
"k c #BEFBB6DA8617",
"l c #9E7992486185",
"z c #C71BB6DA9658",
"x c #C71BBAEA8E38",
"c c #86177DF75965",
"v c #4103451428A2",
"b c #4103492428A2",
"n c #5144596538E3",
"m c #51445D754103",
"M c #C71BB6DA8617",
"N c #CF3CBAEA8E38",
"B c #B6DAB2CA8E38",
"V c #69A661854103",
"C c #861786176185",
"Z c #B6DAAAAA8617",
"A c #8E3886176185",
"S c #59655D754103",
"D c #49244D3430C2",
"F c #5965555530C2",
"G c #861779E75144",
"H c #B6DAAAAA79E7",
"J c #AEBAA28971C6",
"K c #A6999E7979E7",
"L c #410341032081",
"P c #69A66DB65144",
"I c #96589A6971C6",
"U c #8E3882075965",
"Y c #8E3886175965",
"T c #5144514438E3",
"R c #4924555538E3",
"E c #596561854103",
"W c #79E775D65144",
"Q c #69A665954103",
"! c #8E388A286185",
"~ c #AEBAA69979E7",
"^ c #B6DAAEBA8617",
"/ c #4924514430C2",
"( c #4103410328A2",
") c #861782076185",
"_ c #4924492428A2",
"` c #B6DAAEBA8E38",
"' c #96588A285965",
"] c #A699A6998617",
"[ c #514459654103",
"{ c #4924492430C2",
"} c #96588A286185",
"| c #BEFBBAEA9658",
" . c #41033CF31040",
".. c #8E388E3869A6",
"X. c #86178A2869A6",
"o. c #5144555538E3",
"O. c #69A669A64924",
"+. c #A699965871C6",
"@. c #A699965869A6",
"#. c #71C669A64924",
"$. c #96588E386185",
"%. c #9658924871C6",
"&. c #618569A64924",
"*. c #86177DF75144",
"=. c #5965596530C2",
"-. c #96589A6979E7",
";. c #49244D3428A2",
":. c #59655D7538E3",
">. c #71C671C64924",
" ",
" ",
" . X X o o O + @ # $ % & * = . . X X o o O + @ # $ % & * ",
" X - ; o : > , + < 1 2 3 4 5 . X - ; o : > , + < 1 2 3 4 ",
" . . 6 7 o 8 4 9 0 q w e r t y . . 6 7 o 8 4 9 0 q w e r ",
" . X X u o 8 i $ p a % s 3 d y . X X u o 8 i $ p a % s 3 ",
" X . X X o 8 8 f g 3 h 3 + j k X . X X o 8 8 f g 3 h 3 + ",
" . X X : l z x = c c v b n m . . X X : l z x = c c v b n ",
" 7 M N N X : 8 B V + v + @ C l 7 M N N X : 8 B V + v + @ ",
" Z : X N X . > > A S D 0 @ * F Z : X N X . > > A S D 0 @ ",
" G x : H J 8 > > K L P n + I f G x : H J 8 > > K L P n + ",
" c 8 Z U Y = 8 : O % T R E E + c 8 Z U Y = 8 : O % T R E ",
" 9 f W Y Q ! ~ 7 ^ c D R / n ( 9 f W Y Q ! ~ 7 ^ c D R / ",
" ) _ G U ` _ ' x ~ ] D [ E E { ) _ G U ` _ ' x ~ ] D [ E ",
" Q A } 4 d | .Z i ..X.b o.p { Q A } 4 d | .Z i ..X.b o. ",
" O.3 +.@.} #.f $.A %.&.( j $ O.O.3 +.@.} #.f $.A %.&.( j ",
" X X X X o 5 *.=.O.-.$ ;.:.>.. X X X X o 5 *.=.O.-.$ ;.:. ",
" . X X o o O + @ # $ % & * = . . X X o o O + @ # $ % & * ",
" X - ; o : > , + < 1 2 3 4 5 . X - ; o : > , + < 1 2 3 4 ",
" . . 6 7 o 8 4 9 0 q w e r t y . . 6 7 o 8 4 9 0 q w e r ",
" . X X u o 8 i $ p a % s 3 d y . X X u o 8 i $ p a % s 3 ",
" X . X X o 8 8 f g 3 h 3 + j k X . X X o 8 8 f g 3 h 3 + ",
" . X X : l z > 5 f c v b n m . . X X : l z > 5 f c v b n ",
" 7 M N N X : 8 B V + v + @ C l 7 M N N X : 8 B V + v + @ ",
" Z : X N X M > > A S D 0 @ * F Z : X N X M > > A S D 0 @ ",
" G x : H J 8 > > K L P n + -.f G x : H J 8 > > K L P n + ",
" c 8 Z U Y = x : O % T R S E + c 8 Z U Y = x : O % T R S ",
" 9 f W Y Q ! ~ 7 ^ c D R / n ( 9 f W Y Q ! ~ 7 ^ c D R / ",
" ) _ G U ` _ ' x ~ ] D [ E E { ) _ G U ` _ ' x ~ ] D [ E ",
" Q A } 4 d | .Z i ..X.b o.p D Q A } 4 d | .Z i ..X.b o. ",
" ",
" "};
/* XPM */
static char * pixmap_xpm[] = {
"32 32 79 1",
" c #000000000000",
". c #E79DCF3C8E38",
"X c #E79DBEFB9E79",
"o c #DF7DAEBAA699",
"O c #D75CA289A699",
"+ c #CF3C9A699E79",
"@ c #BEFB86179658",
"# c #E79DBAEAA699",
"$ c #D75C9248C71B",
"% c #CF3C8207C71B",
"& c #C71B75D6BEFB",
"* c #AEBA5965AEBA",
"= c #9E7941039658",
"- c #B6DA6DB69658",
"; c #D75C8617CF3C",
": c #C71B79E7C71B",
"> c #BEFB6DB6B6DA",
", c #A69949249E79",
"< c #96583CF39658",
"1 c #A6994D349E79",
"2 c #CF3C96589E79",
"3 c #BEFBCB2B8E38",
"4 c #B6DACB2B8E38",
"5 c #D75C9E79AEBA",
"6 c #B6DA6595B6DA",
"7 c #A6995144A699",
"8 c #B6DA6185AEBA",
"9 c #DF7DBEFB9658",
"0 c #C71BCB2B8E38",
"q c #69A6C30B8617",
"w c #9658C71B8617",
"e c #CF3C8E38AEBA",
"r c #9E7945149658",
"t c #CF3C8617B6DA",
"y c #DF7DCF3C8E38",
"u c #AEBA5555A699",
"i c #DF7DB2CAA699",
"p c #8617C71B8617",
"a c #B6DAB6DA8E38",
"s c #9E7949249E79",
"d c #BEFB69A6B6DA",
"f c #DF7D9E79B6DA",
"g c #A699C71B8617",
"h c #9E79B2CA8E38",
"j c #C71B8A28A699",
"k c #CF3C8A28B6DA",
"l c #DF7DAAAAAEBA",
"z c #71C6C30B8617",
"x c #79E7C30B8617",
"c c #DF7DCB2B8E38",
"v c #AEBAC71B8E38",
"b c #CF3CCB2B8E38",
"n c #9E79C71B8617",
"m c #8E38C71B8617",
"M c #D75CCB2B8E38",
"N c #DF7DBAEA8E38",
"B c #AEBA5D759E79",
"V c #C71B8E389E79",
"C c #E79DCB2B9658",
"Z c #E79DC71B9658",
"A c #A69951449E79",
"S c #BEFB75D6A699",
"D c #D75CA699AEBA",
"F c #AEBA5D75AEBA",
"G c #C71B75D6B6DA",
"H c #DF7DBAEA9E79",
"J c #D75C9A69B6DA",
"K c #96583CF38E38",
"L c #CF3C8207BEFB",
"P c #D75C9A69BEFB",
"I c #C71B71C6BEFB",
"U c #DF7DA289BEFB",
"Y c #B6DA5D75AEBA",
"T c #965838E38E38",
"R c #CF3C8617C71B",
"E c #E79DCF3C9658",
"W c #DF7DB6DAAEBA",
"Q c #CF3C7DF7C71B",
"! c #DF7DCF3C9658",
" ",
" ",
" ............................ ",
" ............................ ",
" ............................ ",
" .............XoO+@.......... ",
" ...........#$%&*=-.......... ",
" ..........X;:>,<12.......... ",
" ....34....5&6=<789.......... ",
" ....0qw...e8r=78t........... ",
" ....yqq4..2,=u6:i........... ",
" .....pqp..asud:f............ ",
" .....4qq.gqhjkl............4 ",
" ......pqgzxqxc.............x ",
" .......vq3wqqw............bq ",
" .......wn.3qqqc...........4q ",
" ......cqb..4zq4...........nm ",
" ......4z....Mgg...........y. ",
" ......gp.................... ",
" ......wp.................... ",
" ......mm.................... ",
" ......b..................... ",
" ...........N................ ",
" ...........BVC.............. ",
" ..........ZA,S9............. ",
" ..........DF=uGH............ ",
" ..........J>K16LZ........... ",
" ..........P&,=*If........... ",
" ..........U:YT76RE.......... ",
" ..........WQdsrFt!0430...... ",
" ",
" "};
/* XPM */
static char * gradient_xpm[] = {
"32 32 57 1",
" c #000000000000",
". c #E79DEBADE79D",
"X c #E79DE79DE79D",
"o c #DF7DE38DDF7D",
"O c #DF7DDF7DDF7D",
"+ c #D75CDB6CD75C",
"@ c #D75CD75CD75C",
"# c #CF3CCF3CCF3C",
"$ c #CF3CCB2BCF3C",
"% c #C71BC71BC71B",
"& c #C71BC30BC71B",
"* c #BEFBBEFBBEFB",
"= c #B6DAB6DAB6DA",
"- c #B6DAB2CAB6DA",
"; c #AEBAAEBAAEBA",
": c #AEBAAAAAAEBA",
"> c #A699A699A699",
", c #A699A289A699",
"< c #9E799E799E79",
"1 c #9E799A699E79",
"2 c #965896589658",
"3 c #965892489658",
"4 c #8E388E388E38",
"5 c #8E388A288E38",
"6 c #861786178617",
"7 c #79E77DF779E7",
"8 c #71C675D671C6",
"9 c #861782078617",
"0 c #79E779E779E7",
"q c #71C671C671C6",
"w c #69A669A669A6",
"e c #BEFBBAEABEFB",
"r c #69A66DB669A6",
"t c #618565956185",
"y c #618561856185",
"u c #59655D755965",
"i c #596559655965",
"p c #514455555144",
"a c #514451445144",
"s c #49244D344924",
"d c #492449244924",
"f c #492445144924",
"g c #410341034103",
"h c #41033CF34103",
"j c #38E338E338E3",
"k c #38E334D338E3",
"l c #30C230C230C2",
"z c #30C22CB230C2",
"x c #28A228A228A2",
"c c #28A2249228A2",
"v c #208120812081",
"b c #20811C712081",
"n c #186118611861",
"m c #104014511040",
"M c #104010401040",
"N c #08200C300820",
"B c #082008200820",
" ",
" ",
" .XoO+@#$%&**=-;:>,<123456778 ",
" XoO+@#$%&**=-;:>,<1235567788 ",
" oO+@#$%&**==;:>,<123456900qq ",
" O+@#$%&**=-;:>,<123456970qqw ",
" +@#$%&&ee--:>,<1234569788rrt ",
" @#$%&&e=-;:>,<1234569708rrty ",
" #$%&&e==;;>,<123456970qqwwyu ",
" $%&&ee-;:>,<1234569708qwwyui ",
" %&&ee-;;>,<1234569708rrttuip ",
" &&ee=-:>><1234569708qrttuipa ",
" &ee=;:>><1234569708qwwyyipas ",
" ee--::,<1234569708qrwyyipasd ",
" e=-:>,<1234569708qrwyyiiasdf ",
" =;;>><<234569708qrwyyipasdfg ",
" -;>,<1234569708qrwtuuppsdfgh ",
" ::,,1134559708qrwtuipasdfghj ",
" :><1234569708qrwtyiiaadfghjk ",
" ><<224566708qrwtyipasdfghjkl ",
" ,1234559708qrwtyuppssfghjklz ",
" 1224469708qrwtyupasdfghjklzx ",
" 224569908qrwtyupaaddghjklzxc ",
" 34466708qrwtyiipsdfghjklzxcv ",
" 3559700qrwtyuipsddghjklzxcvb ",
" 559778qrwtyuppssfggjklzxcvbn ",
" 59708qrwtyuipadfggjklzxcvbnm ",
" 9900qqwtyuppssffhjklzxcvbnmM ",
" 908qrwtyuipasfghjklzxcvbnmMN ",
" 00qqwtyuiaaddggjjlzxcvbnmMNB ",
" ",
" "};
/* XPM */
static char * solid_xpm[] = {
"32 32 2 1",
" c #000000000000",
". c #38E369A69658",
" ",
" ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ............................ ",
" ",
" "};

View File

@@ -269,11 +269,12 @@ createMainWindow(WMScreen *scr)
WMSetLabelText(WPrefs.statusL, _("Starting...")); WMSetLabelText(WPrefs.statusL, _("Starting..."));
WPrefs.creditsL = WMCreateLabel(WPrefs.banner); WPrefs.creditsL = WMCreateLabel(WPrefs.banner);
WMResizeWidget(WPrefs.creditsL, FRAME_WIDTH-20, 40); WMResizeWidget(WPrefs.creditsL, FRAME_WIDTH-20, 60);
WMMoveWidget(WPrefs.creditsL, 10, FRAME_HEIGHT-40); WMMoveWidget(WPrefs.creditsL, 10, FRAME_HEIGHT-60);
WMSetLabelTextAlignment(WPrefs.creditsL, WACenter); WMSetLabelTextAlignment(WPrefs.creditsL, WACenter);
WMSetLabelText(WPrefs.creditsL, _("Programming/Design: Alfredo K. Kojima\n" WMSetLabelText(WPrefs.creditsL, _("Programming/Design: Alfredo K. Kojima\n"
"Artwork: Marco van Hylckama Vlieg")); "Artwork: Marco van Hylckama Vlieg\n"
"More Programming: James Thompson"));
WMMapSubwidgets(WPrefs.win); WMMapSubwidgets(WPrefs.win);
@@ -465,7 +466,8 @@ Initialize(WMScreen *scr)
tmp = RLoadImage(WMScreenRContext(scr), path, 0); tmp = RLoadImage(WMScreenRContext(scr), path, 0);
if (!tmp) { if (!tmp) {
wwarning("could not load image file %s:%s", path, RErrorString); wwarning("could not load image file %s:%s", path,
RMessageForError(RErrorCode));
} else { } else {
icon = WMCreatePixmapFromRImage(scr, tmp, 0); icon = WMCreatePixmapFromRImage(scr, tmp, 0);
RDestroyImage(tmp); RDestroyImage(tmp);
@@ -563,7 +565,8 @@ loadConfigurations(WMScreen *scr, WMWindow *mainw)
if (file) if (file)
pclose(file); pclose(file);
if (sscanf(buffer, "WindowMaker %i.%i.%i",&v1,&v2,&v3)!=3) { if (sscanf(buffer, "Window Maker %i.%i.%i",&v1,&v2,&v3)!=3
&& sscanf(buffer, "WindowMaker %i.%i.%i",&v1,&v2,&v3)!=3) {
WMRunAlertPanel(scr, mainw, _("Error"), WMRunAlertPanel(scr, mainw, _("Error"),
_("Could not extract version from Window Maker. Make sure it is correctly installed."), _("Could not extract version from Window Maker. Make sure it is correctly installed."),
_("OK"), NULL, NULL); _("OK"), NULL, NULL);

View File

@@ -194,7 +194,7 @@ static char * image_name[] = {
". . . . . . ", ". . . . . . ",
". . . . . . ", ". . . . . . ",
". . . . . . ", ". . . . . . ",
". . X o X O + @ # # # # # # $ % X X . . ", ". . o X O + @ # # # # # # $ % X . . ",
". . & * $ = - . X X X X X X X X . ; ; o . . ", ". . & * $ = - . X X X X X X X X . ; ; o . . ",
". . : > - , X X . X X X X X X X X . X o O , X . . ", ". . : > - , 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 . . ", ". . < 1 , X X X X . X X X X X X X X . X X X o X 2 . . ",

View File

@@ -44,7 +44,6 @@ typedef struct _Panel {
WMFrame *maxiF; WMFrame *maxiF;
WMButton *miconB; WMButton *miconB;
WMButton *mdockB;
WMFrame *opaqF; WMFrame *opaqF;
WMButton *opaqB; WMButton *opaqB;
@@ -99,11 +98,11 @@ getPlacement(char *str)
if (strcasecmp(str, "auto")==0 || strcasecmp(str, "smart")==0) if (strcasecmp(str, "auto")==0 || strcasecmp(str, "smart")==0)
return 0; return 0;
else if (strcasecmp(str, "random")==0) else if (strcasecmp(str, "random")==0)
return 3; return 1;
else if (strcasecmp(str, "manual")==0) else if (strcasecmp(str, "manual")==0)
return 2; return 2;
else if (strcasecmp(str, "cascade")==0) else if (strcasecmp(str, "cascade")==0)
return 1; return 3;
else else
wwarning(_("bad option value %s in WindowPlacement. Using default value"), wwarning(_("bad option value %s in WindowPlacement. Using default value"),
str); str);
@@ -145,8 +144,6 @@ showData(_Panel *panel)
WMSetButtonSelected(panel->opaqB, GetBoolForKey("OpaqueMove")); WMSetButtonSelected(panel->opaqB, GetBoolForKey("OpaqueMove"));
WMSetButtonSelected(panel->miconB, GetBoolForKey("NoWindowOverIcons")); WMSetButtonSelected(panel->miconB, GetBoolForKey("NoWindowOverIcons"));
WMSetButtonSelected(panel->mdockB, GetBoolForKey("NoWindowUnderDock"));
} }
@@ -157,7 +154,6 @@ storeData(_Panel *panel)
char x[16], y[16]; char x[16], y[16];
SetBoolForKey(WMGetButtonSelected(panel->miconB), "NoWindowOverIcons"); SetBoolForKey(WMGetButtonSelected(panel->miconB), "NoWindowOverIcons");
SetBoolForKey(WMGetButtonSelected(panel->mdockB), "NoWindowUnderDock");
SetBoolForKey(WMGetButtonSelected(panel->opaqB), "OpaqueMove"); SetBoolForKey(WMGetButtonSelected(panel->opaqB), "OpaqueMove");
SetBoolForKey(WMGetButtonSelected(panel->tranB), "OnTopTransients"); SetBoolForKey(WMGetButtonSelected(panel->tranB), "OnTopTransients");
SetStringForKey(placements[WMGetPopUpButtonSelectedItem(panel->placP)], SetStringForKey(placements[WMGetPopUpButtonSelectedItem(panel->placP)],
@@ -296,15 +292,10 @@ createPanel(Panel *p)
WMSetFrameTitle(panel->maxiF, _("When maximizing...")); WMSetFrameTitle(panel->maxiF, _("When maximizing..."));
panel->miconB = WMCreateSwitchButton(panel->maxiF); panel->miconB = WMCreateSwitchButton(panel->maxiF);
WMResizeWidget(panel->miconB, 185, 20); WMResizeWidget(panel->miconB, 185, 35);
WMMoveWidget(panel->miconB, 10, 20); WMMoveWidget(panel->miconB, 10, 20);
WMSetButtonText(panel->miconB, _("...do not resize over icons")); WMSetButtonText(panel->miconB, _("...do not resize over icons"));
panel->mdockB = WMCreateSwitchButton(panel->maxiF);
WMResizeWidget(panel->mdockB, 185, 20);
WMMoveWidget(panel->mdockB, 10, 40);
WMSetButtonText(panel->mdockB, _("...do not resize over dock"));
WMMapSubwidgets(panel->maxiF); WMMapSubwidgets(panel->maxiF);
/**************** Transients On Top ****************/ /**************** Transients On Top ****************/

View File

@@ -64,6 +64,7 @@ createImages(WMScreen *scr, RContext *rc, RImage *xis, char *file,
WMPixmap **icon1, WMPixmap **icon2) WMPixmap **icon1, WMPixmap **icon2)
{ {
RImage *icon; RImage *icon;
RColor gray = {0xae,0xaa,0xae};
*icon1 = WMCreatePixmapFromFile(scr, file); *icon1 = WMCreatePixmapFromFile(scr, file);
if (!*icon1) { if (!*icon1) {
@@ -77,10 +78,11 @@ createImages(WMScreen *scr, RContext *rc, RImage *xis, char *file,
*icon2 = NULL; *icon2 = NULL;
return; return;
} }
RCombineImageWithColor(icon, &gray);
if (xis) { if (xis) {
RCombineImages(icon, xis); RCombineImagesWithOpaqueness(icon, xis, 180);
if (!(*icon2 = WMCreatePixmapFromRImage(scr, icon, 127))) { if (!(*icon2 = WMCreatePixmapFromRImage(scr, icon, 127))) {
wwarning(_("could not process icon %s:"), file, RErrorString); wwarning(_("could not process icon %s:"), file, RMessageForError(RErrorCode));
*icon2 = NULL; *icon2 = NULL;
} }
} }

View File

@@ -4,7 +4,7 @@ CATALOGS = @WPMOFILES@
CLEANFILES = $(CATALOGS) CLEANFILES = $(CATALOGS)
EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po
POTFILES = \ POTFILES = \
$(top_builddir)/WPrefs/Configurations.c \ $(top_builddir)/WPrefs/Configurations.c \

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@
@@ -97,7 +95,7 @@ CATALOGS = @WPMOFILES@
CLEANFILES = $(CATALOGS) CLEANFILES = $(CATALOGS)
EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po
POTFILES = \ POTFILES = \
$(top_builddir)/WPrefs/Configurations.c \ $(top_builddir)/WPrefs/Configurations.c \

View File

@@ -9,3 +9,4 @@ hr.po Croatian Toni Bili
fr.po French Bastien NOCERA <hadess@writeme.com> fr.po French Bastien NOCERA <hadess@writeme.com>
ko.po Korean Byeong-Chan, Kim <redhands@linux.sarang.net> ko.po Korean Byeong-Chan, Kim <redhands@linux.sarang.net>
cs.po Czech 3 David ©auer <xsauer@hwlab.felk.cvut.cz> cs.po Czech 3 David ©auer <xsauer@hwlab.felk.cvut.cz>
ja.po Japanese Kazuhide Takahashi <kazu@dgra.ne.jp>

View File

@@ -681,7 +681,7 @@ msgstr "Cr
#: ../../WPrefs/MouseSettings.c:756 #: ../../WPrefs/MouseSettings.c:756
msgid "could not rename file %s to %s\n" msgid "could not rename file %s to %s\n"
msgstr "Changement de nom de %s à %s impossible" msgstr "Changement de nom de %s à %s impossible\n"
#: ../../WPrefs/MouseSettings.c:839 #: ../../WPrefs/MouseSettings.c:839
msgid "Mouse Preferences" msgid "Mouse Preferences"

1169
WPrefs.app/po/ja.po Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@

View File

@@ -18,7 +18,7 @@ WindowMaker: $(srcdir)/WindowMaker.in ./Makefile
sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in > WindowMaker sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in > WindowMaker
chmod 644 WindowMaker chmod 644 WindowMaker
WMState: $(srcdir)/WMState.in ./Makefile WMState: $(srcdir)/WMState.in $(srcdir)/Makefile
-rm -f WMState -rm -f WMState
sed -e "s:#wprefs#:$(wprefsdir)/WPrefs:" $(srcdir)/WMState.in > WMState sed -e "s:#wprefs#:$(wprefsdir)/WPrefs:" $(srcdir)/WMState.in > WMState
chmod 644 WMState chmod 644 WMState

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@
@@ -218,7 +216,7 @@ WindowMaker: $(srcdir)/WindowMaker.in ./Makefile
sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in > WindowMaker sed -e "s:#pkgdatadir#:$(pkgdatadir):" $(srcdir)/WindowMaker.in > WindowMaker
chmod 644 WindowMaker chmod 644 WindowMaker
WMState: $(srcdir)/WMState.in ./Makefile WMState: $(srcdir)/WMState.in $(srcdir)/Makefile
-rm -f WMState -rm -f WMState
sed -e "s:#wprefs#:$(wprefsdir)/WPrefs:" $(srcdir)/WMState.in > WMState sed -e "s:#wprefs#:$(wprefsdir)/WPrefs:" $(srcdir)/WMState.in > WMState
chmod 644 WMState chmod 644 WMState

View File

@@ -2,8 +2,8 @@
Dock = { Dock = {
Applications = ( Applications = (
{ {
Command = dockit; Command = "";
Name = dockit.Dockit; Name = Logo.WMDock;
AutoLaunch = No; AutoLaunch = No;
Forced = No; Forced = No;
Position = "0,0"; Position = "0,0";

View File

@@ -2,8 +2,8 @@
Dock = { Dock = {
Applications = ( Applications = (
{ {
Command = dockit; Command = "";
Name = dockit.Dockit; Name = Logo.WMDock;
AutoLaunch = No; AutoLaunch = No;
Forced = No; Forced = No;
Position = "0,0"; Position = "0,0";

View File

@@ -1,4 +1,6 @@
{ {
EdgeResistance = 5;
IconificationStyle = Zoom;
IconPath = ( IconPath = (
"~/GNUstep/Library/Icons", "~/GNUstep/Library/Icons",
"/usr/local/share/WindowMaker/Icons", "/usr/local/share/WindowMaker/Icons",
@@ -17,7 +19,6 @@
"/usr/local/share/pixmaps", "/usr/local/share/pixmaps",
"/usr/share/pixmaps" "/usr/share/pixmaps"
); );
IconificationStyle = Zoom;
WindowTitleBalloons = YES; WindowTitleBalloons = YES;
IconSize = 64; IconSize = 64;
FocusMode = manual; FocusMode = manual;
@@ -36,7 +37,6 @@
SaveSessionOnExit = NO; SaveSessionOnExit = NO;
ColormapMode = auto; ColormapMode = auto;
RaiseDelay = 0; RaiseDelay = 0;
EdgeResistance = 0;
AutoFocus = YES; AutoFocus = YES;
WindowPlacement = auto; WindowPlacement = auto;
WindowPlaceOrigin = (64, 64); WindowPlaceOrigin = (64, 64);
@@ -48,7 +48,7 @@
AdvanceToNewWorkspace = NO; AdvanceToNewWorkspace = NO;
CycleWorkspaces = NO; CycleWorkspaces = NO;
ResizeDisplay = line; ResizeDisplay = line;
MoveDisplay = corner; MoveDisplay = floating;
OpaqueMove = YES; OpaqueMove = YES;
OnTopTransients = YES; OnTopTransients = YES;
IconPosition = "blh"; IconPosition = "blh";
@@ -59,7 +59,6 @@
ShadeSpeed = medium; ShadeSpeed = medium;
DoubleClickTime = 250; DoubleClickTime = 250;
AlignSubmenus = NO; AlignSubmenus = NO;
NoWindowUnderDock = YES;
NoWindowOverIcons = NO; NoWindowOverIcons = NO;
IgnoreFocusClick = NO; IgnoreFocusClick = NO;
CloseKey = None; CloseKey = None;

View File

@@ -1,4 +1,6 @@
{ {
EdgeResistance = 5;
IconificationStyle = Zoom;
IconPath = ( IconPath = (
"~/GNUstep/Library/Icons", "~/GNUstep/Library/Icons",
"#pkgdatadir#/Icons", "#pkgdatadir#/Icons",
@@ -17,7 +19,6 @@
"/usr/local/share/pixmaps", "/usr/local/share/pixmaps",
"/usr/share/pixmaps" "/usr/share/pixmaps"
); );
IconificationStyle = Zoom;
WindowTitleBalloons = YES; WindowTitleBalloons = YES;
IconSize = 64; IconSize = 64;
FocusMode = manual; FocusMode = manual;
@@ -36,7 +37,6 @@
SaveSessionOnExit = NO; SaveSessionOnExit = NO;
ColormapMode = auto; ColormapMode = auto;
RaiseDelay = 0; RaiseDelay = 0;
EdgeResistance = 0;
AutoFocus = YES; AutoFocus = YES;
WindowPlacement = auto; WindowPlacement = auto;
WindowPlaceOrigin = (64, 64); WindowPlaceOrigin = (64, 64);
@@ -48,7 +48,7 @@
AdvanceToNewWorkspace = NO; AdvanceToNewWorkspace = NO;
CycleWorkspaces = NO; CycleWorkspaces = NO;
ResizeDisplay = line; ResizeDisplay = line;
MoveDisplay = corner; MoveDisplay = floating;
OpaqueMove = YES; OpaqueMove = YES;
OnTopTransients = YES; OnTopTransients = YES;
IconPosition = "blh"; IconPosition = "blh";
@@ -59,7 +59,6 @@
ShadeSpeed = medium; ShadeSpeed = medium;
DoubleClickTime = 250; DoubleClickTime = 250;
AlignSubmenus = NO; AlignSubmenus = NO;
NoWindowUnderDock = YES;
NoWindowOverIcons = NO; NoWindowOverIcons = NO;
IgnoreFocusClick = NO; IgnoreFocusClick = NO;
CloseKey = None; CloseKey = None;

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@

View File

@@ -1,11 +1,11 @@
SUBDIRS = Defaults Styles Themes Icons Pixmaps Backgrounds IconSets Sounds SUBDIRS = Defaults Styles Themes Icons Pixmaps Backgrounds IconSets
prefsdatadir = $(pkgdatadir) prefsdatadir = $(pkgdatadir)
prefsdata_DATA = wmmacros README menu plmenu autostart.sh \ prefsdata_DATA = wmmacros README menu plmenu autostart.sh exitscript.sh \
menu.cz menu.de menu.fr menu.gl menu.ja menu.ko menu.nl menu.pt \ menu.cz menu.de menu.fr menu.gl menu.ja menu.ko menu.nl menu.pt \
menu.it menu.no menu.he menu.es menu.ru menu.tr menu.el menu.se \ menu.it menu.no menu.he menu.es menu.ru menu.tr menu.el menu.se \
menu.fi menu.hr menu.dk menu.fi menu.hr menu.dk menu.sl
EXTRA_DIST = $(prefsdata_DATA) wmmacros.in plmenu.in EXTRA_DIST = $(prefsdata_DATA) wmmacros.in plmenu.in

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@
@@ -91,14 +89,14 @@ X_LOCALE = @X_LOCALE@
pixmapdir = @pixmapdir@ pixmapdir = @pixmapdir@
wprefsdir = @wprefsdir@ wprefsdir = @wprefsdir@
SUBDIRS = Defaults Styles Themes Icons Pixmaps Backgrounds IconSets Sounds SUBDIRS = Defaults Styles Themes Icons Pixmaps Backgrounds IconSets
prefsdatadir = $(pkgdatadir) prefsdatadir = $(pkgdatadir)
prefsdata_DATA = wmmacros README menu plmenu autostart.sh \ prefsdata_DATA = wmmacros README menu plmenu autostart.sh exitscript.sh \
menu.cz menu.de menu.fr menu.gl menu.ja menu.ko menu.nl menu.pt \ menu.cz menu.de menu.fr menu.gl menu.ja menu.ko menu.nl menu.pt \
menu.it menu.no menu.he menu.es menu.ru menu.tr menu.el menu.se \ menu.it menu.no menu.he menu.es menu.ru menu.tr menu.el menu.se \
menu.fi menu.hr menu.dk menu.fi menu.hr menu.dk menu.sl
EXTRA_DIST = $(prefsdata_DATA) wmmacros.in plmenu.in EXTRA_DIST = $(prefsdata_DATA) wmmacros.in plmenu.in

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@

View File

@@ -19,6 +19,13 @@ Instructions for editing the plain text menus can be found in the menu
file itself, kindly translated to your tongue for your convenience, by file itself, kindly translated to your tongue for your convenience, by
the translation contributors. the translation contributors.
There is a script to convert plain text menus to property list menus
in the utils directory, named wm-oldmenu2new.
If you are unsure to wich format to use, stick with the plain text menus
as they are more flexible. If for some psychological reason you are
scared by text based configuration, use the property list menu.
Localized menu file translators: Localized menu file translators:
-------------------------------- --------------------------------
@@ -46,3 +53,5 @@ menu.hr Croatian Toni Bilic <tbilic@efos.hr>
menu.el Greek Nikolaos Papagrigoriou <papanikos@usa.net> menu.el Greek Nikolaos Papagrigoriou <papanikos@usa.net>
menu.dk Danish John M. Lockard <jlockard@math.lsa.umich.edu> menu.dk Danish John M. Lockard <jlockard@math.lsa.umich.edu>
Jacob Sparre Andersen <sparre@cats.nbi.dk> Jacob Sparre Andersen <sparre@cats.nbi.dk>
menu.sl Slovene Alen Salamun <snowman@hal9000.medinet.si>

View File

@@ -1,6 +0,0 @@
defsdatadir = $(pkgdatadir)/Sounds
defsdata_DATA =
EXTRA_DIST = $(defsdata_DATA)

View File

@@ -1,210 +0,0 @@
# Makefile.in generated automatically by automake 1.3 from Makefile.am
# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = /bin/sh
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DISTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
CC = @CC@
CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@
GFXFLAGS = @GFXFLAGS@
GFXLIBS = @GFXLIBS@
I18N = @I18N@
I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@
MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@
NLSDIR = @NLSDIR@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
REDUCE_APPICONS = @REDUCE_APPICONS@
SHAPE = @SHAPE@
SOUND = @SOUND@
VERSION = @VERSION@
WPMOFILES = @WPMOFILES@
XCFLAGS = @XCFLAGS@
XGETTEXT = @XGETTEXT@
XLFLAGS = @XLFLAGS@
XLIBS = @XLIBS@
XSHM = @XSHM@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LOCALE = @X_LOCALE@
pixmapdir = @pixmapdir@
wprefsdir = @wprefsdir@
defsdatadir = $(pkgdatadir)/Sounds
defsdata_DATA =
EXTRA_DIST = $(defsdata_DATA)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../../src/config.h
CONFIG_CLEAN_FILES =
DATA = $(defsdata_DATA)
DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP = --best
all: Makefile $(DATA)
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps WindowMaker/Sounds/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
install-defsdataDATA: $(defsdata_DATA)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(defsdatadir)
@list='$(defsdata_DATA)'; for p in $$list; do \
if test -f $(srcdir)/$$p; then \
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(defsdatadir)/$$p"; \
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(defsdatadir)/$$p; \
else if test -f $$p; then \
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(defsdatadir)/$$p"; \
$(INSTALL_DATA) $$p $(DESTDIR)$(defsdatadir)/$$p; \
fi; fi; \
done
uninstall-defsdataDATA:
@$(NORMAL_UNINSTALL)
list='$(defsdata_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(defsdatadir)/$$p; \
done
tags: TAGS
TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = WindowMaker/Sounds
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done
info:
dvi:
check: all
$(MAKE)
installcheck:
install-exec:
@$(NORMAL_INSTALL)
install-data: install-defsdataDATA
@$(NORMAL_INSTALL)
install: install-exec install-data all
@:
uninstall: uninstall-defsdataDATA
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
installdirs:
$(mkinstalldirs) $(DATADIR)$(defsdatadir)
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(DISTCLEANFILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
mostlyclean: mostlyclean-generic
clean: clean-generic mostlyclean
distclean: distclean-generic clean
-rm -f config.status
maintainer-clean: maintainer-clean-generic distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
.PHONY: uninstall-defsdataDATA install-defsdataDATA tags distdir info \
dvi installcheck install-exec install-data install uninstall all \
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -23,7 +23,6 @@ defsdata_DATA = \
Pink\ Pink\
Pumpkin\ Pumpkin\
Purple\ Purple\
Rainbow\
Red\ Red\
RednBlue\ RednBlue\
ShinyBrown\ ShinyBrown\

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@
@@ -116,7 +114,6 @@ defsdata_DATA = \
Pink\ Pink\
Pumpkin\ Pumpkin\
Purple\ Purple\
Rainbow\
Red\ Red\
RednBlue\ RednBlue\
ShinyBrown\ ShinyBrown\

View File

@@ -1,15 +0,0 @@
{
HighlightColor = white;
HighlightTextColor = black;
FTitleColor = black;
PTitleColor = gray60;
UTitleColor = white;
FTitleBack = (mhgradient, yellow, red, yellow, green, blue, purple);
PTitleBack = (mhgradient, yellow3, red3, yellow3, green3, blue3, purple3);
UTitleBack = (mhgradient, yellow4, red4, yellow4, green4, blue4, purple4);
MenuTitleColor = black;
MenuTextColor = white;
MenuDisabledColor = gray60;
MenuTitleBack = (mhgradient, yellow, red, yellow, green, blue, purple);
MenuTextBack = (mhgradient, yellow4, red4, yellow4, green4, blue4, purple4);
}

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@

6
WindowMaker/exitscript.sh Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/sh
#
# Place commands to be executed when WindowMaker is exited here.
# This file must be executable.
#

View File

@@ -148,7 +148,6 @@
"Magnify" EXEC xmag "Magnify" EXEC xmag
"Colormap" EXEC xcmap "Colormap" EXEC xcmap
"XKill" EXEC xkill "XKill" EXEC xkill
"ASClock" EXEC asclock -shape
"Clipboard" EXEC xclipboard "Clipboard" EXEC xclipboard
"Utils" END "Utils" END
@@ -185,8 +184,14 @@
"Wine" WS_BACK '(solid, "#400020")' "Wine" WS_BACK '(solid, "#400020")'
"Solid" END "Solid" END
"Gradient" MENU "Gradient" MENU
"Flag" WS_BACK '(mdgradient, green, red, white, green)' "Sunset" WS_BACK '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'
"Sky" WS_BACK '(vgradient, blue4, white)' "Sky" WS_BACK '(vgradient, blue4, white)'
"Blue Shades" WS_BACK '(vgradient, "#7080a5", "#101020")'
"Indigo Shades" WS_BACK '(vgradient, "#746ebc", "#242e4c")'
"Purple Shades" WS_BACK '(vgradient, "#654c66", "#151426")'
"Wheat Shades" WS_BACK '(vgradient, "#a09060", "#302010")'
"Grey Shades" WS_BACK '(vgradient, "#636380", "#131318")'
"Wine Shades" WS_BACK '(vgradient, "#600040", "#180010")'
"Gradient" END "Gradient" END
"Images" OPEN_MENU BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Images" OPEN_MENU BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Background" END "Background" END

View File

@@ -20,28 +20,28 @@
* END - το σημείο που τελειώνει ένα (υπο)μενού * END - το σημείο που τελειώνει ένα (υπο)μενού
* OPEN_MENU - ανοίγει ένα μενού από ένα αρχείο, pipe ή τα περιεχόμενα ενός * OPEN_MENU - ανοίγει ένα μενού από ένα αρχείο, pipe ή τα περιεχόμενα ενός
* καταλόγου(ων) και αντιστοιχεί μια εντολή στο καθένα. * καταλόγου(ων) και αντιστοιχεί μια εντολή στο καθένα.
* WORKSPACE_MENU - προσθέτει ένα υπομενού για τη διαχείρηση των Επιφανειών * WORKSPACE_MENU - προσθέτει ένα υπομενού για τη διαχείρηση των Επιφανειών.
* Εργασίας. Μόνο ένα workspace_menu επιτρέπεται. * Μόνο ένα workspace_menu επιτρέπεται.
* EXEC <program> - εκτέλεση προγράμματος * EXEC <program> - εκτέλεση προγράμματος
* EXIT - έξοδος από τον window manager * EXIT - έξοδος από τον window manager
* RESTART [<window manager>] - επανεκκινεί τον Window Maker ή ξεκινάει ένας * RESTART [<window manager>] - επανεκκινεί τον Window Maker ή ξεκινάει ένας
* άλλος window manager * άλλος window manager
* REFRESH - ανανεώνει την προβολή της επιφάνειας εργασίας στην οθόνη * REFRESH - ανανεώνει την προβολή της Επιφάνειας στην οθόνη
* ARRANGE_ICONS - τακτοποίηση των εικονιδίων στην επιφάνεια εργασίας * ARRANGE_ICONS - τακτοποίηση των εικονιδίων στην Επιφάνεια
* SHUTDOWN - τερματίζει βίαια όλους τους clients (και τερματίζει το X window * SHUTDOWN - τερματίζει βίαια όλους τους clients (και τερματίζει το X window
* session) * session)
* SHOW_ALL - εμφανίζει όλα τα "κρυμένα" παράθυρα στην επιφάνεια εργασίας * SHOW_ALL - εμφανίζει όλα τα "κρυμένα" παράθυρα στην Επιφάνεια
* HIDE_OTHERS - "κρύβει" όλα τα παράθυρα στην επιφάνεια εργασίας, εκτός από * HIDE_OTHERS - "κρύβει" όλα τα παράθυρα στην Επιφάνεια, εκτός από
* αυτό που είναι "ενεργό" (ή το τελευταίο που ήταν "ενεργό") * αυτό που είναι "ενεργό" (ή το τελευταίο που ήταν "ενεργό")
* SAVE_SESSION - αποθηκεύει το εκάστοτε "Περιβάλλον" εργασίας, το οποίο * SAVE_SESSION - αποθηκεύει το εκάστοτε "κατάσταση" της Επιφάνειας, το οποίο
* σημαίνει, όλα τα προγράμματα που εκτελούνται εκείνη τη * σημαίνει, όλα τα προγράμματα που εκτελούνται εκείνη τη
* στιγμή με όλες τους τις ιδιότητες (γεωμετρία, θέση στην * στιγμή με όλες τους τις ιδιότητες (γεωμετρία, θέση στην
* οθόνη, επιφάνεια εργασίας στην οποία έχουν εκτελεστεί, Dock ή * οθόνη, επιφάνεια εργασίας στην οποία έχουν εκτελεστεί, Dock ή
* Clip από όπου εκτελέστηκαν, αν είναι ελαχιστοποιημένα, * Clip από όπου εκτελέστηκαν, αν είναι ελαχιστοποιημένα,
* αναδιπλωμένα ή κρυμμένα). Επίσης αποθηκεύει σε πια επιφάνεια * αναδιπλωμένα ή κρυμμένα). Επίσης αποθηκεύει σε πια Επιφάνεια
* εργασίας ήταν ο χρήστης την τελευταία φορά. Όλες οι * εργασίας ήταν ο χρήστης την τελευταία φορά. Όλες οι
* πληροφορίες θα ανακληθούν την επόμενη φορά που ο χρήστης * θα ανακληθούν την επόμενη φορά που ο χρήστης
* εκκινίσει τον WindowMmaker μέχρι η εντολή SAVE_SESSION ή * εκκινίσει τον Window Maker μέχρι η εντολή SAVE_SESSION ή
* CLEAR_SESSION χρησιμοποιηθούν. Αν στο αρχείο Window Maker του * CLEAR_SESSION χρησιμοποιηθούν. Αν στο αρχείο Window Maker του
* καταλόγου "~/GNUstep/Defaults/" υπάρχει η εντολή: * καταλόγου "~/GNUstep/Defaults/" υπάρχει η εντολή:
* "SaveSessionOnExit = Yes;", τότε όλα τα παραπάνω γίνονται * "SaveSessionOnExit = Yes;", τότε όλα τα παραπάνω γίνονται
@@ -109,8 +109,8 @@
"Μενού" MENU "Μενού" MENU
"Πληροφορίες" MENU "Πληροφορίες" MENU
"Σχετικά..." INFO_PANEL "Info..." INFO_PANEL
"Νομικά..." LEGAL_PANEL "Legal..." LEGAL_PANEL
"System Console" EXEC xconsole "System Console" EXEC xconsole
"System Load" EXEC xosview || xload "System Load" EXEC xosview || xload
"Process List" EXEC xterm -e top "Process List" EXEC xterm -e top
@@ -118,7 +118,7 @@
"Πληροφορίες" END "Πληροφορίες" END
"XTerm" EXEC xterm -sb "XTerm" EXEC xterm -sb
"Rxvt" EXEC rxvt -bg black -fg white -fn fixed "Rxvt" EXEC rxvt -bg black -fg white -fn fixed
"Επιφάνειες Εργασίας" WORKSPACE_MENU "Επιφάνειες" WORKSPACE_MENU
"Προγράμματα" MENU "Προγράμματα" MENU
"Γραφικά" MENU "Γραφικά" MENU
"Gimp" EXEC gimp >/dev/null "Gimp" EXEC gimp >/dev/null
@@ -130,8 +130,8 @@
"OffiX Files" EXEC files "OffiX Files" EXEC files
"LyX" EXEC lyx "LyX" EXEC lyx
"Netscape" EXEC netscape "Netscape" EXEC netscape
"Ghostview" EXEC ghostview %a(Enter file to view) "Ghostview" EXEC ghostview %a(Αρχείο προς ανάγνωση)
"Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Enter PDF to view) "Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Αρχείο προς ανάγνωση)
"TkDesk" EXEC tkdesk "TkDesk" EXEC tkdesk
"Προγράμματα" END "Προγράμματα" END
"Κειμενογράφοι" MENU "Κειμενογράφοι" MENU
@@ -149,7 +149,7 @@
"Διάφορα" END "Διάφορα" END
"Εργαλεία" MENU "Εργαλεία" MENU
"Αριθμομηχανή" EXEC xcalc "Αριθμομηχανή" EXEC xcalc
"Ιδιότητες Παραθύρων" EXEC xprop | xmessage -center -title 'xprop' -file - "Ιδιότητες Παραθύρου" EXEC xprop | xmessage -center -title 'Ιδιότητες Παραθύρου' -file -
"Επιλογή Γραμματοσειράς" EXEC xfontsel "Επιλογή Γραμματοσειράς" EXEC xfontsel
"Εξομοιωτής Τερματικού" EXEC xminicom "Εξομοιωτής Τερματικού" EXEC xminicom
"Μεγέθυνση" EXEC xmag "Μεγέθυνση" EXEC xmag
@@ -166,15 +166,15 @@
"Αναζήτηση Βοήθειας" EXEC MANUAL_SEARCH(%s) "Αναζήτηση Βοήθειας" EXEC MANUAL_SEARCH(%s)
"Επιλογή" END "Επιλογή" END
"Επιφάνεια Εργασίας" MENU "Επιφάνεια" MENU
"Απόκρυψη των Άλλων" HIDE_OTHERS "Απόκρυψη των Άλλων" HIDE_OTHERS
"Εμφάνιση Όλων" SHOW_ALL "Εμφάνιση Όλων" SHOW_ALL
"Τακτοποίηση Εικονιδίων" ARRANGE_ICONS "Τακτοποίηση Εικονιδίων" ARRANGE_ICONS
"Ανανέωση Προβολής" REFRESH "Ανανέωση Προβολής" REFRESH
"Κλείδωμα" EXEC xlock -allowroot -usefirst "Κλείδωμα" EXEC xlock -allowroot -usefirst
"Αποθήκευση Περιβάλλοντος" SAVE_SESSION "Σώσιμο Κατάστασης" SAVE_SESSION
"Σβήσιμο Αποθηκευμένου Περιβάλλοντος" CLEAR_SESSION "Διαγραφή σωσμένης Κατάστασης" CLEAR_SESSION
"Επιφάνεια Εργασίας" END "Επιφάνεια" END
"Εμφάνιση" MENU "Εμφάνιση" MENU
"Θέματα" OPEN_MENU THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle "Θέματα" OPEN_MENU THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle
@@ -192,21 +192,20 @@
"Κρασιού" WS_BACK '(solid, "#400020")' "Κρασιού" WS_BACK '(solid, "#400020")'
"Μονόχρωμο" END "Μονόχρωμο" END
"Διαβαθμισμένο" MENU "Διαβαθμισμένο" MENU
"Σημαία" WS_BACK '(mdgradient, blue, white, blue, white)' "Σημαία" WS_BACK '(mdgradient, green, red, white, green)'
"Ουράνος" WS_BACK '(vgradient, blue4, white)' "Ουράνος" WS_BACK '(vgradient, blue4, white)'
"Διαβαθμισμένο" END "Διαβαθμισμένο" END
"Εικόνες" OPEN_MENU BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t "Εικόνες" OPEN_MENU BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Φόντο" END "Φόντο" END
"Αποθήκευση Θέματος" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)" "Αποθήκευση Θέματος" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Όνομα Θέματος)"
"Αποθήκευση Ομάδας Εικονιδίων" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)" "Αποθήκευση Ομάδας Εικονιδίων" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(Όνομα Ομάδας)"
"Εμφάνιση" END "Εμφάνιση" END
"Έξοδος" MENU "Έξοδος" MENU
"Επανεκκίνηση" RESTART "Επανεκκίνηση" RESTART
"Εκκίνηση του AfterStep" RESTART afterstep "Εκκίνηση του AfterStep" RESTART afterstep
"Έξοδος..." EXIT "Έξοδος..." EXIT
"Έξοδος από το Περιβάλλον..." SHUTDOWN "Πλήρης Έξοδος..." SHUTDOWN
"Έξοδος" END "Έξοδος" END
"Μενού" END "Μενού" END

203
WindowMaker/menu.sl Normal file
View File

@@ -0,0 +1,203 @@
/*
* Root Menu definition for WindowMaker in Slovenian language
*
* Syntax is:
*
* <Title> [SHORTCUT <Shortcut>] <Command> <Parameters>
*
* <Title> is any string to be used as title. Must be enclosed with " if it
* has spaces
*
* SHORTCUT specifies a shortcut for that item. <Shortcut> has the
* same syntax of the shortcuts key options in the
* ~/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or MiniaturizeKey.
*
* You can't specify a shortcut for a MENU or OPEN_MENU entry.
*
* <Command> one of the valid commands:
* MENU - starts (sub)menu definition
* END - end (sub)menu definition
* OPEN_MENU - opens a menu from a file, pipe or directory(ies) contents
* and eventually precede each with a command.
* WORKSPACE_MENU - adds a submenu for workspace operations. Only one
* workspace_menu is allowed.
* EXEC <program> - executes an external program
* EXIT - exits the window manager
* RESTART [<window manager>] - restarts WindowMaker or start another
* window manager
* REFRESH - refreshes the desktop
* ARRANGE_ICONS - rearranges the icons on the workspace
* SHUTDOWN - kills all clients (and close the X window session)
* SHOW_ALL - unhides all windows on workspace
* HIDE_OTHERS - hides all windows on the workspace, except the
* focused one (or the last one that received focus)
* SAVE_SESSION - saves the current state of the desktop, which include
* all running applications, all their hints (geometry,
* position on screen, workspace they live on, the dock
* or clip from where they were launched, and
* if minimized, shaded or hidden. Also saves the current
* workspace the user is on. All will be restored on every
* start of windowmaker until another SAVE_SESSION or
* CLEAR_SESSION is used. If SaveSessionOnExit = Yes; in
* WindowMaker domain file, then saving is automatically
* done on every windowmaker exit, overwriting any
* SAVE_SESSION or CLEAR_SESSION (see below).
* CLEAR_SESSION - clears any previous saved session. This will not have
* any effect if SaveSessionOnExit is True.
* INFO - shows the Info Panel
*
* OPEN_MENU syntax:
* 1. File menu handling.
* // opens file.menu which must contain a valid menu file and inserts
* // it in current position
* OPEN_MENU file.menu
* 2. Pipe menu handling.
* // opens command and uses it's stdout to construct menu.
* // Command's output must be a valid menu description.
* // The space between '|' and command itself is optional.
* OPEN_MENU | command
* 3. Directory handling.
* // Opens one or more directories and construct a menu with all
* // the subdirectories and executable files in them sorted
* // alphabetically.
* OPEN_MENU /some/dir [/some/other/dir ...]
* 4. Directory handling with command.
* // Opens one or more directories and construct menu with all
* // subdirectories and readable files in them sorted alphabetically,
* // preceding each of them with command.
* OPEN_MENU /some/dir [/some/other/dir ...] WITH command -options
*
*
* <Parameters> is the program to execute.
*
* ** Options for command line in EXEC:
* %s - substitute with current selection
* %a(message) - opens a input box with the message and do substitution with
* what you typed
* %w - substitute with XID for the current focused window
*
* You can override special characters (as % and ") with the \ character:
* ex: xterm -T "\"Hello World\""
*
* You can also use character escapes, like \n
*
* Each MENU statement must have one mathching END statement at the end.
*
* Example:
*
* "Test" MENU
* "XTerm" EXEC xterm
* // creates a submenu with the contents of /usr/openwin/bin
* "XView apps" OPEN_MENU "/usr/openwin/bin"
* // some X11 apps in different directories
* "X11 apps" OPEN_MENU /usr/X11/bin ~/bin/X11
* // set some background images
* "Background" OPEN_MENU ~/images /usr/share/images WITH wmsetbg -u -t
* // inserts the style.menu in this entry
* "Style" OPEN_MENU style.menu
* "Test" END
*/
#include "wmmacros"
"Aplikacije" MENU
"Informacije" MENU
"Informacije o programu..." INFO_PANEL
"Licenca..." LEGAL_PANEL
"Sistemska konzola" EXEC xconsole
"Obremenitev sistema" EXEC xosview || xload
"Seznam procesov" EXEC xterm -e top
"Pomoè (Iskalec man strani)" EXEC xman
"Informacije" END
"XTerm" EXEC xterm -sb
"Rxvt" EXEC rxvt -bg black -fg white -fn fixed
"Delovni prostori" WORKSPACE_MENU
"Aplikacije" MENU
"Grafika" MENU
"Gimp" EXEC gimp >/dev/null
"XV" EXEC xv
"XPaint" EXEC xpaint
"XFig" EXEC xfig
"Grafika" END
"X File Manager" EXEC xfm
"OffiX Files" EXEC files
"LyX" EXEC lyx
"Netscape" EXEC netscape
"Ghostview" EXEC ghostview %a(Enter file to view)
"Acrobat" EXEC /usr/local/Acrobat3/bin/acroread %a(Enter PDF to view)
"TkDesk" EXEC tkdesk
"Aplikacije" END
"Urejevalniki besedil" MENU
"XFte" EXEC xfte
"XEmacs" EXEC xemacs || emacs
"XJed" EXEC xjed
"NEdit" EXEC nedit
"Xedit" EXEC xedit
"VI" EXEC xterm -e vi
"Urejevalniki besedil" END
"Drugo" MENU
"Xmcd" EXEC xmcd 2> /dev/null
"Xplaycd" EXEC xplaycd
"Xmixer" EXEC xmixer
"Drugo" END
"Uporabi programi" MENU
"Kalkulator" EXEC xcalc
"Lastnosti oken" EXEC xprop | xmessage -center -title 'xprop' -file -
"Pregled pisav" EXEC xfontsel
"Terminal emulator" EXEC xminicom
"Povecevalno steklo" EXEC xmag
"Barvna lestvica" EXEC xcmap
"XKill" EXEC xkill
"ASClock" EXEC asclock -shape
"Odlagali¹èe (clipboard)" EXEC xclipboard
"Uporabni programi" END
"Izbira" MENU
"Kopiraj" EXEC echo '%s' | wxcopy
"Po¹lji po po¹ti" EXEC xterm -name mail -T "Pine" -e pine %s
"Odpri WEB stran" EXEC netscape %s
"Poi¹èi v navodilih" EXEC MANUAL_SEARCH(%s)
"Izbira" END
"Delovni prostor" MENU
"Skrij druge" HIDE_OTHERS
"Poka¾i vse" SHOW_ALL
"Poravnaj ikone" ARRANGE_ICONS
"Obnovi" REFRESH
"Zakleni" EXEC xlock -allowroot -usefirst
"Shrani session" SAVE_SESSION
"Izbri¹i shranjen session" CLEAR_SESSION
"Delovni prostor" END
"Izgled" MENU
"Teme" OPEN_MENU THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle
"Stili" OPEN_MENU STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle
"Zbirke ikon" OPEN_MENU ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons
"Odzadje" MENU
"Barva" MENU
"Èrna" WS_BACK '(solid, black)'
"Modra" WS_BACK '(solid, "#505075")'
"Indigo" WS_BACK '(solid, "#243e6c")'
"Temno modra" WS_BACK '(solid, "#180090")'
"Violièna" WS_BACK '(solid, "#554466")'
"P¹enièna" WS_BACK '(solid, "wheat4")'
"Temno siva" WS_BACK '(solid, "#333340")'
"Vinsko rdeèa" WS_BACK '(solid, "#400020")'
"Barva" END
"Preliv" MENU
"Zastava" WS_BACK '(mdgradient, green, red, white, green)'
"Nebo" WS_BACK '(vgradient, blue4, white)'
"Preliv" END
"Slike" OPEN_MENU BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"Odzadje" END
"Shrani temo" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"Shrani zbirko ikon" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"Izgled" END
"Izhod" MENU
"Ponovno za¾eni" RESTART
"Po¾eni AfterStep" RESTART afterstep
"Izhod..." EXIT
"Izhod iz session..." SHUTDOWN
"Izhod" END
"Aplikacije" END

View File

@@ -80,8 +80,14 @@
("Wine", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ("Wine", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'")
), ),
("Gradient", ("Gradient",
("Flag", EXEC, "wdwrite WindowMaker WorkspaceBack '(mdgradient, green, red, white, green)'"), ("Sunset", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"),
("Sky", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'") ("Sky", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"),
("Blue Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"),
("Indigo Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"),
("Purple Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"),
("Wheat Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"),
("Grey Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"),
("Wine Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'")
), ),
("Images", OPEN_MENU, "/usr/local/share/WindowMaker/Backgrounds ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ("Images", OPEN_MENU, "/usr/local/share/WindowMaker/Backgrounds ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t")
), ),

View File

@@ -80,8 +80,14 @@
("Wine", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ("Wine", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'")
), ),
("Gradient", ("Gradient",
("Flag", EXEC, "wdwrite WindowMaker WorkspaceBack '(mdgradient, green, red, white, green)'"), ("Sunset", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"),
("Sky", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'") ("Sky", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"),
("Blue Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"),
("Indigo Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"),
("Purple Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"),
("Wheat Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"),
("Grey Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"),
("Wine Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'")
), ),
("Images", OPEN_MENU, "#pkgdatadir#/Backgrounds ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ("Images", OPEN_MENU, "#pkgdatadir#/Backgrounds ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t")
), ),

962
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -2,13 +2,26 @@ dnl
dnl Window Maker autoconf input. dnl Window Maker autoconf input.
dnl dnl
dnl Process with: aclocal; autoconf; automake dnl Process with: aclocal; autoconf; automake
dnl
dnl
dnl Shared library generation stuff taken from configure script from zlib
dnl
AC_INIT(src/WindowMaker.h) AC_INIT(src/WindowMaker.h)
AM_INIT_AUTOMAKE(WindowMaker, 0.20.1) AM_INIT_AUTOMAKE(WindowMaker, 0.20.2)
dnl Shared Library Versions
WINGS_VER=0.0.1
WRASTER_VER=0.0.1
dnl configure/build bundled libraries
dnl ===================================
AC_CONFIG_SUBDIRS(libPropList)
AM_CONFIG_HEADER(src/config.h) AM_CONFIG_HEADER(src/config.h)
@@ -118,8 +131,8 @@ dnl ==================
dnl List of supported locales dnl List of supported locales
dnl ------------------------- dnl -------------------------
supported_locales="cs de es fr gl it ja ko nl no pt ru se tr fi hr el" supported_locales="cs de es fr gl it ja ko nl no pt ru se tr fi hr el pl ro"
supported_wprefs_locales="pt hr fr ko" supported_wprefs_locales="pt hr fr ko ja"
for lang in $LINGUAS; do for lang in $LINGUAS; do
ok=0 ok=0
@@ -184,17 +197,14 @@ fi
dnl Put it back once we have some real gnome support... dnl Put it back once we have some real gnome support...
dnl dnl
dnl AC_ARG_WITH(gnome, dnl AC_ARG_WITH(gnome,
dnl [ --with-gnome enable support for GNOME extensions ], dnl [ --enable-gnome enable support for GNOME extensions ],
dnl [with_gnome=$withval], [with_gnome=yes]) dnl [enable_gnome=$withval], [enable_gnome=yes])
dnl AC_MSG_CHECKING([for GNOME support]) dnl if test "$enable_gnome" = yes; then
dnl if test "x$with_gnome" = "xyes"; then dnl GNOME="#define GNOME"
dnl HAVE_GNOME="#define MWM_HINTS"
dnl AC_MSG_RESULT(yes)
dnl else dnl else
dnl HAVE_GNOME="#undef MWM_HINTS" dnl GNOME="#undef GNOME"
dnl AC_MSG_RESULT(no)
dnl fi dnl fi
dnl AC_SUBST(HAVE_GNOME) dnl AC_SUBST(GNOME)
AC_SUBST(I18N) AC_SUBST(I18N)
AC_SUBST(INTLIBS) AC_SUBST(INTLIBS)
@@ -267,6 +277,7 @@ dnl ==============================================
dnl Graphic Format Libraries dnl Graphic Format Libraries
dnl ============================================== dnl ==============================================
dnl dnl
dnl Specify paths to look for graphic format libraries dnl Specify paths to look for graphic format libraries
dnl ================================================== dnl ==================================================
@@ -292,8 +303,17 @@ AC_ARG_ENABLE(xpm,
if test "$xpm" = yes; then if test "$xpm" = yes; then
AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData,
[GFXFLAGS="$GFXFLAGS -DUSE_XPM" GFXLIBS="$GFXLIBS -lXpm"],, my_libok=yes, my_libok=no,
$GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS $XLIBS) $GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS $XLIBS)
if test "$my_libok" = yes; then
my_old_cppflags=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $GFX_INC_PATH $XCFLAGS"
AC_CHECK_HEADER(X11/xpm.h,
[GFXFLAGS="$GFXFLAGS -DUSE_XPM" GFXLIBS="$GFXLIBS -lXpm"
supported_gfx="XPM"], supported_gfx="XPM (builtin)")
CPPFLAGS=$my_old_cppflags
fi
fi fi
@@ -317,17 +337,23 @@ AC_CHECK_LIB(z, gzread, zlib=yes, zlib=no, $GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS)
dnl PNG Support dnl PNG Support
dnl =========== dnl ===========
png=yes png=yes
AC_ARG_ENABLE(png, # assume libz is present...
[ --disable-png disable PNG support through libpng], #AC_ARG_ENABLE(png,
png=$enableval, png=yes) #[ --disable-png disable PNG support through libpng],
# png=$enableval, png=yes)
if test "$png" = yes; then if test "$png" = yes -a "$zlib" = yes ; then
if test "$zlib" = yes; then AC_CHECK_LIB(png, png_get_valid, my_libok=yes, my_libok=no,
AC_CHECK_LIB(png, png_get_valid,
[GFXLIBS="$GFXLIBS -lpng -lz" GFXFLAGS="$GFXFLAGS -DUSE_PNG"
supported_gfx="$supported_gfx PNG"],,
$GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS -lz -lm) $GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS -lz -lm)
if test "$my_libok" = yes; then
my_old_cppflags=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $GFX_INC_PATH"
AC_CHECK_HEADER(png.h,
[GFXLIBS="$GFXLIBS -lpng -lz" GFXFLAGS="$GFXFLAGS -DUSE_PNG"
supported_gfx="$supported_gfx PNG"], )
CPPFLAGS=$my_old_cppflags
fi fi
fi fi
@@ -340,10 +366,17 @@ AC_ARG_ENABLE(jpeg,
jpeg=$enableval, jpeg=yes) jpeg=$enableval, jpeg=yes)
if test "$jpeg" = yes; then if test "$jpeg" = yes; then
AC_CHECK_LIB(jpeg, jpeg_destroy_compress, AC_CHECK_LIB(jpeg, jpeg_destroy_compress, my_libok=yes, my_libok=no,
[GFXLIBS="$GFXLIBS -ljpeg" GFXFLAGS="$GFXFLAGS -DUSE_JPEG"
supported_gfx="$supported_gfx JPEG"],,
$GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS) $GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS)
if test "$my_libok" = yes; then
my_old_cppflags=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $GFX_INC_PATH"
AC_TRY_CPP(jpeglib.h,
[GFXLIBS="$GFXLIBS -ljpeg" GFXFLAGS="$GFXFLAGS -DUSE_JPEG"
supported_gfx="$supported_gfx JPEG"], )
CPPFLAGS=$my_old_cppflags
fi
fi fi
@@ -360,18 +393,27 @@ AC_ARG_ENABLE(gif,
if test "$gif" = yes; then if test "$gif" = yes; then
retry=no retry=no
AC_CHECK_LIB(ungif, DGifOpenFileName, AC_CHECK_LIB(ungif, DGifOpenFileName,
[GFXLIBS="$GFXLIBS -lungif" GFXFLAGS="$GFXFLAGS -DUSE_GIF" [my_libok=yes my_libname=ungif],
supported_gfx="$supported_gfx GIF"],retry=yes, [retry=yes my_libok=no],
$GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS) $GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS)
dnl dnl
dnl libungif is the same thing as libgif for all practical purposes. dnl libungif is the same thing as libgif for all practical purposes.
dnl dnl
if test "$retry" = yes; then if test "$retry" = yes; then
AC_CHECK_LIB(gif, DGifOpenFileName, AC_CHECK_LIB(gif, DGifOpenFileName,
[GFXLIBS="$GFXLIBS -lgif" GFXFLAGS="$GFXFLAGS -DUSE_GIF" [my_libok=yes my_libname=gif],
supported_gfx="$supported_gfx GIF"],, my_libok=no,
$GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS) $GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS)
fi fi
if test "$my_libok" = yes; then
my_old_cppflags=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $GFX_INC_PATH"
AC_CHECK_HEADER(gif_lib.h,
[GFXLIBS="$GFXLIBS -l$my_libname" GFXFLAGS="$GFXFLAGS -DUSE_GIF"
supported_gfx="$supported_gfx GIF"], )
CPPFLAGS=$my_old_cppflags
fi
fi fi
@@ -393,28 +435,35 @@ ICONEXT="xpm"
# #
if test "$tif" = yes; then if test "$tif" = yes; then
my_libname=""
AC_CHECK_LIB(tiff, TIFFGetVersion, AC_CHECK_LIB(tiff, TIFFGetVersion,
[GFXFLAGS="$GFXFLAGS -DUSE_TIFF" GFXLIBS="-ltiff $GFXLIBS" [my_libok=yes my_libname="-ltiff"], my_libok=no,
ICONEXT="tiff"],,
[$GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS $XLIBS $GFXLIBS -lm]) [$GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS $XLIBS $GFXLIBS -lm])
dnl dnl
dnl Retry with zlib dnl Retry with zlib
dnl dnl
if test ! "$ICONEXT" = "tiff"; then if test "$my_libok" = no; then
if test "$zlib" = "yes"; then if test "$zlib" = "yes"; then
AC_CHECK_LIB(tiff, TIFFGetVersion, AC_CHECK_LIB(tiff, TIFFGetVersion,
[GFXFLAGS="$GFXFLAGS -DUSE_TIFF" GFXLIBS="-ltiff -lz $GFXLIBS" [my_libok=yes my_libname="-ltiff -lz"], my_libok=no,
ICONEXT="tiff"],,
[$GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS $XLIBS $GFXLIBS -lz -lm]) [$GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS $XLIBS $GFXLIBS -lz -lm])
fi fi
fi fi
if test ! "$ICONEXT" = "tiff"; then if test "$my_libok" = no; then
AC_CHECK_LIB(tiff34, TIFFGetVersion, AC_CHECK_LIB(tiff34, TIFFGetVersion,
[GFXFLAGS="$GFXFLAGS -DUSE_TIFF" GFXLIBS="-ltiff34 $GFXLIBS" [my_libok=yes my_libname="-ltiff34"], my_libok=no,
ICONEXT="tiff"],,
[$GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS $XLIBS $GFXLIBS -lm]) [$GFX_INC_PATH $GFX_LIB_PATH $XLFLAGS $XLIBS $GFXLIBS -lm])
fi fi
if test "$my_libok" = yes; then
my_old_cppflags=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $GFX_INC_PATH"
AC_CHECK_HEADER(tiffio.h,
[GFXFLAGS="$GFXFLAGS -DUSE_TIFF" GFXLIBS="$my_libname $GFXLIBS"
ICONEXT="tiff" supported_gfx="$supported_gfx TIFF"], )
CPPFLAGS=$my_old_cppflags
fi
fi fi
@@ -430,70 +479,76 @@ dnl ==============================================
dnl ===================================================== dnl =====================================================
dnl Check for libPropList dnl Check for libPropList
dnl Always use the included libPropList, even if it is
dnl already installed.
dnl ===================================================== dnl =====================================================
PLPATH=`pwd`/libPropList
#LIBPL_LIBS="-L${top_builddir}/libPropList -lPropList"
#LIBPL_INC_PATH="-I${top_srcdir}/libPropList"
#
#
#PLPATH=`pwd`/libPropList
#
#if test -f $PLPATH/libPropList.a; then
# echo "using bundled libPropList, already compiled."
# needtobuild=no
# LIBPL_LIBS="-L$PLPATH -lPropList"
# LIBPL_INC_PATH="-I$PLPATH"
#else
# AC_CHECK_LIB(PropList, PLGetString,
# [LIBPL_LIBS=-lPropList LIBPL_INC_PATH="" needtobuild=no],
# [LIBPL_LIBS="-L$PLPATH -lPropList"
# LIBPL_INC_PATH="-I$PLPATH"
# needtobuild=yes])
#fi
#
#
#if test "$needtobuild" = yes; then
# if test -f libPropList/libPropList.a; then
# echo "using included libPropList"
# else
# echo "********** WARNING *************"
# echo "libPropList is not installed in your system."
# echo "You need to build it before building Window Maker (if you already"
# echo "did that, remove config.cache and rerun configure)."
# echo "Please read the INSTALL file for detailed instructions."
# echo "Press <Return> to continue configuring Window Maker or"
# echo "type b and <Return> to build it now."
# read foo
# if test "$foo" = b; then
# echo
# echo "Building libPropList..."
# echo
# if test ! -d libPropList; then
# gzip -d -c libPropList.tar.gz | tar xf -
# fi
# ok=no
# if (cd libPropList; ./configure); then
# if (cd libPropList; make); then
# ok=yes
# fi
# fi
# if test "$ok" = no; then
# echo "********** WARNING **********"
# echo "An error occurred while building libPropList"
# echo "Please build it manually."
# echo "Press <Return> to continue."
# read foo
# fi
# echo
# echo "resuming Window Maker configuration..."
# echo
# fi
# fi
#fi
#
#AC_SUBST(LIBPL_LIBS)
#AC_SUBST(LIBPL_INC_PATH)
if test -f $PLPATH/libPropList.a; then dnl Debugging setup
echo Using compiled libPropList dnl ===============
needtobuild=no
LIBPL_LIBS="-L$PLPATH -lPropList"
LIBPL_INC_PATH="-I$PLPATH"
else
AC_CHECK_LIB(PropList, PLGetString,
[LIBPL_LIBS=-lPropList LIBPL_INC_PATH="" needtobuild=no],
[LIBPL_LIBS="-L$PLPATH -lPropList"
LIBPL_INC_PATH="-I$PLPATH"
needtobuild=yes])
fi
if test "$needtobuild" = yes; then
if test -f libPropList/libPropList.a; then
echo "using included libPropList"
else
echo "********** WARNING *************"
echo "libPropList is not installed in your system."
echo "You need to build it before building WindowMaker (if you already"
echo "did that, remove config.cache and rerun configure)."
echo "Please read the INSTALL file for detailed instructions."
echo "Press <Return> to continue configuring WindowMaker or"
echo "type b and <Return> to build it now."
read foo
if test "$foo" = b; then
echo
echo "Building libPropList..."
echo
if test ! -d libPropList; then
gzip -d -c libPropList.tar.gz | tar xf -
fi
ok=no
if (cd libPropList; ./configure); then
if (cd libPropList; make); then
ok=yes
fi
fi
if test "$ok" = no; then
echo "********** WARNING **********"
echo "An error occurred while building libPropList"
echo "Please build it manually."
echo "Press <Return> to continue."
read foo
fi
echo
echo "resuming WindowMaker configuration..."
echo
fi
fi
fi
AC_SUBST(LIBPL_LIBS)
AC_SUBST(LIBPL_INC_PATH)
dnl Paranoia setup
dnl ==============
AC_ARG_ENABLE(debug, AC_ARG_ENABLE(debug,
[ --enable-debug enable debugging ],, enable_debug=no) [ --enable-debug enable debugging ],, enable_debug=no)
@@ -544,15 +599,22 @@ AC_SUBST(pixmapdir)
dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
dnl ============================================== dnl ==============================================
appspath=""
AC_ARG_WITH(appspath,
[ --with-appspath=PATH specify the path of the GNUstep applications directory ])
if test "x$appspath" = "x"; then
gnustepdir="${prefix}/GNUstep" gnustepdir="${prefix}/GNUstep"
if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then if test "x$GNUSTEP_LOCAL_ROOT" != "x" ; then
gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s%${prefix}%\${prefix}%"` gnustepdir=`echo "$GNUSTEP_LOCAL_ROOT" | sed -e "s%${prefix}%\${prefix}%"`
fi fi
appsdir=$gnustepdir/Apps appspath=$gnustepdir/Apps
fi
wprefsdir=$appsdir/WPrefs.app wprefsdir=$appspath/WPrefs.app
AC_SUBST(wprefsdir) AC_SUBST(wprefsdir)
@@ -560,7 +622,8 @@ AC_SUBST(wprefsdir)
dnl Enable single appicon per wm instance+class combo -cls dnl Enable single appicon per wm instance+class combo -cls
dnl ===================================================== dnl =====================================================
AC_ARG_ENABLE(single-icon, AC_ARG_ENABLE(single-icon,
[ --enable-single-icon use single application icon per WM_INSTANCE+WM_CLASS (unsupported) ], [ --enable-single-icon use single application icon per WM_INSTANCE+WM_CLASS
],
if test "$enableval" = yes; then if test "$enableval" = yes; then
REDUCE_APPICONS="#define REDUCE_APPICONS" REDUCE_APPICONS="#define REDUCE_APPICONS"
else else
@@ -601,6 +664,75 @@ if test "$GCC" = "yes"; then
fi fi
dnl Shared Library Support (unfinished)
dnl ===================================
enable_shared=no
#AC_ARG_ENABLE(shared,
#[ --enable-shared build libraries as shared ], enable_shared=yes,
# enable_shared=no)
if test "$enable_shared" = yes; then
if test "$GCC" = yes; then
_CFLAGS="-fPIC"
LDSHARED='$CC -shared'
else
# find system name and corresponding cc options
case `(uname -sr || echo unknown) 2>/dev/null` in
SunOS\ 5*)
_CFLAGS="-fast -xcg89 -KPIC -R."
LDSHARED='$CC -G';;
SunOS\ 4*)
_CFLAGS="-PIC"
LDSHARED="ld";;
IRIX*)
_CFLAGS="-ansi -rpath ."
LDSHARED='$CC -shared';;
SCO_SV\ 3.2*)
_CFLAGS="-dy -KPIC "
LDSHARED='$CC -dy -KPIC -G';;
HP-UX*)
_CFLAGS="+z"
LDSHARED="ld -b"
SHAREDLIBS='libz.sl';;
*)
_CFLAGS=""
LDSHARED='$CC -shared';;
esac
fi
AC_MSG_CHECKING([for shared library support])
test=tmptest$$
cat > $test.c <<EOF
int hello() { printf("hello\n"); }
EOF
# we must test in two steps (cc then ld), required at least on SunOS 4.x
if test "`($CC -c $_CFLAGS $test.c) 2>&1`" = "" &&
test "`($LDSHARED -o $test.so $test.o) 2>&1`" = ""; then
CFLAGS="$CFLAGS $_CFLAGS"
WRASTERLIB='libwraster.so.$(WRASTER_VER)'
WINGSLIB='libWINGs.so.$(WINGS_VER)'
AC_MSG_RESULT([yes, building shared])
else
LDSHARED='$CC'
WRASTERLIB='libwraster.a'
WINGSLIB='libWINGs.a'
AC_MSG_RESULT([no, building static])
fi
rm -f $test.[co] $test.so
fi
#AC_SUBST(WRASTER_VER)
#AC_SUBST(WINGS_VER)
#AC_SUBST(WRASTERLIB)
# AC_SUBST(WINGSLIB)
# AC_SUBST(LDSHARED)
dnl dnl
dnl Nicolai: Program tests for Documentation Section dnl Nicolai: Program tests for Documentation Section
dnl ================================================= dnl =================================================
@@ -633,7 +765,6 @@ AC_OUTPUT(Makefile po/Makefile util/Makefile test/Makefile wmlib/Makefile \
WindowMaker/Themes/Makefile WindowMaker/Backgrounds/Makefile \ WindowMaker/Themes/Makefile WindowMaker/Backgrounds/Makefile \
WindowMaker/Pixmaps/Makefile WindowMaker/Icons/Makefile \ WindowMaker/Pixmaps/Makefile WindowMaker/Icons/Makefile \
WindowMaker/IconSets/Makefile \ WindowMaker/IconSets/Makefile \
WindowMaker/Sounds/Makefile \
WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \ WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
WPrefs.app/po/Makefile ) WPrefs.app/po/Makefile )
@@ -653,24 +784,7 @@ dnl
dnl Spit out the configuration dnl Spit out the configuration
dnl ========================== dnl ==========================
formats="XPM PPM" supported_gfx="$supported_gfx PPM (built-in)"
a=0
for i in $GFXFLAGS; do
case "$i" in
-DUSE_GIF)
formats="$formats GIF"
;;
-DUSE_TIFF)
formats="$formats TIFF"
;;
-DUSE_PNG)
formats="$formats PNG"
;;
-DUSE_JPEG)
formats="$formats JPEG"
;;
esac
done
echo echo
echo "Window Maker was configured as follows:" echo "Window Maker was configured as follows:"
@@ -678,7 +792,7 @@ echo
echo "Installation path prefix: $prefix" echo "Installation path prefix: $prefix"
echo "Installation path prefix for binaries: $exec_prefix" echo "Installation path prefix for binaries: $exec_prefix"
echo "Installation path for WPrefs.app: $wprefsdir" echo "Installation path for WPrefs.app: $wprefsdir"
echo "Graphic format libraries: $formats" echo "Graphic format libraries: $supported_gfx"
if test "x$MOFILES" = "x"; then if test "x$MOFILES" = "x"; then
mof=none mof=none
else else
@@ -689,9 +803,6 @@ if test "x$MOFILES" != "x"; then
echo "Installation path of translated messages: $NLSDIR" echo "Installation path of translated messages: $NLSDIR"
fi fi
echo "What!? WPrefs.app won't be installed where you want it?"
echo "May I point to you to the INSTALL file?"
dnl This is for Emacs. I'm lazy, I know... (nicolai) dnl This is for Emacs. I'm lazy, I know... (nicolai)
dnl ================================================ dnl ================================================

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@

View File

@@ -1,7 +1,7 @@
.\" Hey, Emacs! This is an -*- nroff -*- source file. .\" Hey, Emacs! This is an -*- nroff -*- source file.
.TH seticons 1x "March 1998" .TH seticons 1x "March 1998"
.SH NAME .SH NAME
seticons \- sets the WindowMaker icons seticons \- sets the icon images used in Window Maker
.SH SYNOPSIS .SH SYNOPSIS
.B seticons .B seticons
.I iconsfile .I iconsfile

View File

@@ -1,5 +1,5 @@
.\" Hey, Emacs! This is an -*- nroff -*- source file. .\" Hey, Emacs! This is an -*- nroff -*- source file.
.TH WindowMaker 1x "August 1998" .TH Window\ Maker 1x "August 1998"
.SH NAME .SH NAME
wmaker \- X11 window manager with a NEXTSTEP look wmaker \- X11 window manager with a NEXTSTEP look
.SH SYNOPSIS .SH SYNOPSIS
@@ -48,7 +48,8 @@ information about the Dock and Clip. DON'T edit this while running
Window Maker. It will be overwritten. Window Maker. It will be overwritten.
.TP .TP
.B ~/GNUstep/Defaults/WMRootMenu .B ~/GNUstep/Defaults/WMRootMenu
Contains the name of the file to read the root menu from. Contains the name of the file to read the root menu from or the
menu itself, in property list format.
.TP .TP
.B ~/GNUstep/Defaults/WMWindowAttributes .B ~/GNUstep/Defaults/WMWindowAttributes
Attributes for different application classes and instances. Use the Attributes for different application classes and instances. Use the
@@ -56,7 +57,7 @@ Attribute Editor (right drag the application's title bar, select
Attributes) instead of modifying this file directly. There are just a Attributes) instead of modifying this file directly. There are just a
few options not available using the Attributes Editor. few options not available using the Attributes Editor.
.TP .TP
.B /etc/GNUstep/Defaults/ .B /usr/share/WindowMaker/Defaults/
All the above-mentioned files are READ from here if not found except All the above-mentioned files are READ from here if not found except
for WMState, which is COPIED from here. No matter where they are read for WMState, which is COPIED from here. No matter where they are read
from, if it's necesary to write configuration changes back into this from, if it's necesary to write configuration changes back into this
@@ -65,11 +66,21 @@ files, user's files will be written to.
.B ~/GNUstep/Library/WindowMaker/autostart .B ~/GNUstep/Library/WindowMaker/autostart
This script is automatically executed when Window Maker is started. This script is automatically executed when Window Maker is started.
.TP .TP
.B ~/GNUstep/Library/WindowMaker/exitscript
This script is automatically executed immediately before Window Maker is
exited.
.B Note:
If you need to run something that requires the X server to be running
from this script, make sure you do not use the
.I SHUTDOWN
command from the root menu to exit Window Maker. Otherwise, the X server
might be shut down before the script is executed.
.TP
.B ~/GNUstep/Library/WindowMaker/ .B ~/GNUstep/Library/WindowMaker/
The menu file indicated in WMRootMenu is looked for here... The menu file indicated in WMRootMenu is looked for here...
.TP .TP
.B /etc/X11/WindowMaker/ .B /etc/X11/WindowMaker/
and here, in that order. and here, in that order. Unless, the indicated path is an absolute path.
.TP .TP
.B ~/GNUstep/Library/WindowMaker/Pixmaps/ .B ~/GNUstep/Library/WindowMaker/Pixmaps/
Window Maker looks for pixmaps here Window Maker looks for pixmaps here
@@ -115,7 +126,6 @@ The WindowMaker User Guide
The Window Maker FAQ The Window Maker FAQ
.PP .PP
.BR X (1x), .BR X (1x),
.BR convertstyle (1),
.BR wdwrite (1x), .BR wdwrite (1x),
.BR wxcopy (1x), .BR wxcopy (1x),
.BR geticonset (1x), .BR geticonset (1x),
@@ -126,8 +136,9 @@ The WindowMaker FAQ
.BR setstyle (1x), .BR setstyle (1x),
.BR wmsetbg (1x) .BR wmsetbg (1x)
.SH AUTHOR .SH AUTHOR
WindowMaker was written by Alfredo K. Kojima <kojima@windowmaker.org> Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.org>,
with help from many contributors. Dan Pascu <dan@windowmaker.org> with contributions from many people around
the Internet.
.PP .PP
This manual page was written by Marcelo E. Magallon, <mmagallo@debian.org>. This manual page was written by Marcelo E. Magallon, <mmagallo@debian.org>.

View File

@@ -48,3 +48,4 @@ colors per channel to use
This man page was written by Marcelo Magallon <mmagallo@debian.org>. This man page was written by Marcelo Magallon <mmagallo@debian.org>.
.PP .PP
Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.org>. Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.org>.
wmsetbg was written by Dan Pascu <dan@windowmaker.org>

View File

@@ -1,10 +1,10 @@
.\" Hey, Emacs! This is an -*- nroff -*- source file. .\" Hey, Emacs! This is an -*- nroff -*- source file.
.TH wxcopy 1x "March 1998" .TH wxcopy 1x "September 1998"
.SH NAME .SH NAME
wxcopy \- copy stdin or file into cutbuffer wxcopy \- copy stdin or file into cutbuffer
.SH SYNOPSIS .SH SYNOPSIS
.B wxcopy .B wxcopy
[\-cutbuffer number] [options]
[filename] [filename]
.SH DESCRIPTION .SH DESCRIPTION
.B wxcopy .B wxcopy
@@ -12,7 +12,26 @@ copies stdin or
.I filename .I filename
into the cutbuffer. If no cutbuffer is specified, the data will be into the cutbuffer. If no cutbuffer is specified, the data will be
copied into cutbuffer 0 and the other cutbuffers will be rotated, if present. copied into cutbuffer 0 and the other cutbuffers will be rotated, if present.
.I number If a cutbuffer is specified, the data is copied into that cutbuffer,
and no rotation of buffers is performed.
.SH OPTIONS
.TP
.B \-cutbuffer number
Specifies the number of the cutbuffer to copy data to.
.TP
.B \-display display\-name
The data will be copied in the cutbuffers of the specified display/screen.
.TP
.B \-nolimit
Makes the normal 64kb limit check not to be performed, making the buffer
attempt to grow to whatever size is required.
.TP
.B \-clearselection
Clears the PRIMARY selection owner. In practice it means that when you try
to paste the data with the middle mouse button (for example) it will paste
the data from cut buffer 0, instead of any eventually existing mouse
selection.
.PP
.SH SEE ALSO .SH SEE ALSO
.BR wxpaste (1x), .BR wxpaste (1x),
.BR wmaker (1x) .BR wmaker (1x)
@@ -20,3 +39,6 @@ copied into cutbuffer 0 and the other cutbuffers will be rotated, if present.
This man page was written by Marcelo Magallon <mmagallo@debian.org>. This man page was written by Marcelo Magallon <mmagallo@debian.org>.
.PP .PP
Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.org>. Window Maker was written by Alfredo K. Kojima <kojima@windowmaker.org>.
Binary data compatibility and \-nolimit stuff by Luke Kendall
<luke@research.canon.com.au>.

View File

@@ -4,12 +4,34 @@
wxpaste \- output a cutbuffer to stdout wxpaste \- output a cutbuffer to stdout
.SH SYNOPSIS .SH SYNOPSIS
.B wxpaste .B wxpaste
[\-cutbuffer number] [options]
.SH DESCRIPTION .SH DESCRIPTION
.B wxpaste .B wxpaste
outputs the most recent cutbuffer or cutbuffer outputs the contents of the specified cutbuffer to stdout. If no cutbuffer
.I number is specified, the cutbuffer 0 will be used as default.
to stdout .PP
.SH OPTIONS
.TP
.B \-cutbuffer number
The data will be pasted from the specified cutbuffer, instead of the default
0.
.TP
.B \-display display\-name
Specifies the display where wxpaste should look for the data to be pasted.
.TP
.B \-selection [selection\-name]
The data will be copied from the named selection. If cutting from the
selection fails, the cutbuffer will be used. The default value for the
selection name is PRIMARY.
.PP
.SH BUGS
.TP
The \-selection option must be the last one. The syntax could be
cleaned, but backwards compatibility prevents that...
INCR and MULTIPLE selection types are not handled. Actually, only simple
text selections are handled, wich should be enough for most uses of a
utility such as this.
.SH SEE ALSO .SH SEE ALSO
.BR wxcopy (1x), .BR wxcopy (1x),
.BR wmaker (1x) .BR wmaker (1x)

Binary file not shown.

13
mkpatch
View File

@@ -96,7 +96,7 @@ EOF
for i in $files; do for i in $files; do
echo $OTREE/$i echo $OTREE/$i
echo "echo \"Removing ../$i\"" >> $TMP/delfiles echo "echo \"Removing ../$i\"" >> $TMP/delfiles
if [ -d $OTREE/$i ]; then if [ -d $OTREE/$delfiles ]; then
echo "rm -rf ../$i" >> $TMP/delfiles echo "rm -rf ../$i" >> $TMP/delfiles
else else
echo "rm ../$i" >> $TMP/delfiles echo "rm ../$i" >> $TMP/delfiles
@@ -156,7 +156,7 @@ while [ $index -lt $dircount ]; do
mv tmpdir/`basename $origname` ../$origname mv tmpdir/`basename $origname` ../$origname
index=`expr $index + 1` index=`expr $index + 1`
done done
rmdir tmpdir rm -fr tmpdir
#copy files #copy files
index=0 index=0
@@ -250,7 +250,7 @@ check_text_changes() {
else else
cat $TMP/tmp >> $TMP/bindiff cat $TMP/tmp >> $TMP/bindiff
fi fi
rm -f $TMP/tmp rm -fr $TMP/tmp
done done
} }
@@ -300,7 +300,12 @@ dir=`pwd`
dir=`basename $dir` dir=`basename $dir`
cd $savedir cd $savedir
if test ! "$dir" = "$TARGET_TREE"; then if test "$USER" = root; then
echo "Do not run this script as the root user"
exit 1
fi
if test "$dir" != "$TARGET_TREE"; then
echo "You must move the \"TMP\" directory to inside the " echo "You must move the \"TMP\" directory to inside the "
echo "\"$TARGET_TREE\" directory before running this script." echo "\"$TARGET_TREE\" directory before running this script."
exit 1 exit 1

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@

View File

@@ -94,9 +94,9 @@ the top of the file, like:
# #
You may also want to translate the menu definition file. You may also want to translate the menu definition file.
Send me the translated files to me, so that I can include them Send the translated files to me, so that I can include them
in the next distribution. in the next distribution.
-- --
Alfredo Kojima <kojima@inf.ufrgs.br> Alfredo Kojima <kojima@windowmaker.org>

View File

@@ -1,33 +1,33 @@
# Message catalog for WindowMaker # Message catalog 1998.
# Copyright (C) 1998 Free Software Foundation, Inc. # Copyright (C) 1998 Free Software Foundation, Inc.
# David Sauer <xsauer@fel.cvut.cz>, 1998. # David Sauer <xsauer@fel.cvut.cz>, 1998.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WindowMaker 0.19.3\n" "Project-Id-Version: WindowMaker 0.18.0\n"
"POT-Creation-Date: 1998-09-12 13:26+0200\n" "POT-Creation-Date: 1998-08-18 01:41+0200\n"
"PO-Revision-Date: 1998-09-12 13:39+02:00\n" "PO-Revision-Date: 1998-08-18 01:52+02:00\n"
"Last-Translator: David Sauer <xsauer@fel.cvut.cz>\n" "Last-Translator: David Sauer <xsauer@fel.cvut.cz>\n"
"Language-Team: czech <cs@li.org>\n" "Language-Team: Czech <cs@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: unknown\n" "Content-Transfer-Encoding: unknown\n"
#: ../src/appicon.c:509 ../src/dialog.c:267 ../src/dialog.c:323 #: ../src/appicon.c:493 ../src/dialog.c:262 ../src/dialog.c:318
#: ../src/dock.c:2999 ../src/dockedapp.c:206 ../src/rootmenu.c:166 #: ../src/dock.c:2966 ../src/rootmenu.c:164 ../src/winspector.c:269
#: ../src/winspector.c:278 ../src/winspector.c:291 #: ../src/winspector.c:277
msgid "Error" msgid "Error"
msgstr "Chyba" msgstr "Chyba"
#: ../src/appicon.c:510 #: ../src/appicon.c:494 ../src/winspector.c:278
msgid "Could not open specified icon file" msgid "Could not open specified icon file"
msgstr "Nelze otevøí specifikovaný soubor s ikonou" msgstr "Nelze otevøí specifikovaný soubor s ikonou"
#: ../src/appicon.c:531 ../src/dock.c:281 ../src/winmenu.c:85 #: ../src/appicon.c:515 ../src/dock.c:238 ../src/winmenu.c:85
msgid "Kill Application" msgid "Kill Application"
msgstr "Ukonèit aplikaci" msgstr "Ukonèit aplikaci"
#: ../src/appicon.c:532 ../src/dock.c:282 ../src/winmenu.c:86 #: ../src/appicon.c:516 ../src/dock.c:239 ../src/winmenu.c:86
msgid "" msgid ""
"This will kill the application.\n" "This will kill the application.\n"
"Any unsaved changes will be lost.\n" "Any unsaved changes will be lost.\n"

1046
po/el.po

File diff suppressed because it is too large Load Diff

View File

@@ -348,23 +348,19 @@ msgstr "%s: dimensiuni invalide ale hartii de culori in linia \"%s\""
#: ../resource.c:579 #: ../resource.c:579
msgid "%s: invalid geometry display type \"%s\". Shouldbe center, corner, floating or line" msgid "%s: invalid geometry display type \"%s\". Shouldbe center, corner, floating or line"
msgstr "%s: tip de geometrie a monitorului invalid \"%s\". Valori permise: center, corner, floating msgstr "%s: tip de geometrie a monitorului invalid \"%s\". Valori permise: center, corner, floating sau line"
sau line"
#: ../resource.c:601 #: ../resource.c:601
msgid "%s: invalid focus mode \"%s.\" Should be manual, auto or semiauto" msgid "%s: invalid focus mode \"%s.\" Should be manual, auto or semiauto"
msgstr "%s: mod de focalizare invalid \"%s.\" Valori permise: manual, auto msgstr "%s: mod de focalizare invalid \"%s.\" Valori permise: manual, auto sau semiauto"
sau semiauto"
#: ../resource.c:619 #: ../resource.c:619
msgid "%s: invalid window placement mode \"%s\". Should be auto, cascade or manual" msgid "%s: invalid window placement mode \"%s\". Should be auto, cascade or manual"
msgstr "%s: modo al plasarii ferestrei invalid \"%s\". Valori permise: auto, cascade msgstr "%s: modo al plasarii ferestrei invalid \"%s\". Valori permise: auto, cascade sau manual"
sau manual"
#: ../resource.c:639 #: ../resource.c:639
msgid "%s: invalid texture type \"%s\" Should be solid, dgradient, vgradient or hgradient" msgid "%s: invalid texture type \"%s\" Should be solid, dgradient, vgradient or hgradient"
msgstr "%s: tip de textura invalid \"%s\" Valori permise: solid, dgradient, vgradient msgstr "%s: tip de textura invalid \"%s\" Valori permise: solid, dgradient, vgradient sau hgradient"
sau hgradient"
#: ../resource.c:666 #: ../resource.c:666
msgid "%s: invalid gradient spec. \"%s\"" msgid "%s: invalid gradient spec. \"%s\""
@@ -376,8 +372,7 @@ msgstr "%s: coordonata invalida \"%s\""
#: ../resource.c:701 #: ../resource.c:701
msgid "%s: invalid justification type \"%s\". Should be left, center or right" msgid "%s: invalid justification type \"%s\". Should be left, center or right"
msgstr "%s: tipul de justificare invalid \"%s\". Valori permise: left, center msgstr "%s: tipul de justificare invalid \"%s\". Valori permise: left, center sau right"
sau right"
#: ../resource.c:731 #: ../resource.c:731
msgid "could not make arguments for preference file preprocessor" msgid "could not make arguments for preference file preprocessor"
@@ -405,8 +400,7 @@ msgstr "nu se poate gasi icon-ul de bakground \"%s\" "
#: ../raster.c:183 #: ../raster.c:183
msgid "invalid dither colormap size specification.disabling" msgid "invalid dither colormap size specification.disabling"
msgstr "specificarea marimii hartii de culori e invalida. msgstr "specificarea marimii hartii de culori e invalida. Dezactivare"
Dezactivare"
#: ../raster.c:193 #: ../raster.c:193
msgid "Could not build PseudoColor color table\n" msgid "Could not build PseudoColor color table\n"
@@ -438,8 +432,7 @@ msgstr "Ferestre"
#: ../dock.c:171 #: ../dock.c:171
msgid "could not open file \"%s\" to save Dock state" msgid "could not open file \"%s\" to save Dock state"
msgstr "e' fisierul \"%s\" nu se poate deschide pt. salvarea starii msgstr "e' fisierul \"%s\" nu se poate deschide pt. salvarea starii Dock-ului"
Dock-ului"
#: ../dock.c:687 #: ../dock.c:687
msgid "Could not execute program \"%s\"" msgid "Could not execute program \"%s\""

View File

@@ -3,7 +3,7 @@ msgstr ""
"Date: 1998-03-12 18:29:09+EET\n" "Date: 1998-03-12 18:29:09+EET\n"
"From: KGF <kgf@wpi.edu>\n" "From: KGF <kgf@wpi.edu>\n"
"Content-Type: text/plain; charset=\n" "Content-Type: text/plain; charset=\n"
"Language-Team: TURKISH \n" "Language-Team: Turkish \n"
"Xgettext-Options: --default-domain=WindowMaker --add-comments --keyword=_\n" "Xgettext-Options: --default-domain=WindowMaker --add-comments --keyword=_\n"
"Files: ../main.c ../event.c ../window.c ../startup.c ../shutdown.c ../wcore.c ../properties.c ../texture.c ../actions.c ../menu.c ../client.c ../pixmap.c ../image.c ../gradient.c ../button.c ../screen.c ../icon.c ../rootmenu.c ../dialog.c ../resource.c ../moveres.c ../application.c ../colormap.c ../raster.c ../placement.c ../misc.c ../appmenu.c ../keybind.c ../stacking.c ../appicon.c ../switchmenu.c ../dock.c ../winmenu.c ../generic/error.c\n" "Files: ../main.c ../event.c ../window.c ../startup.c ../shutdown.c ../wcore.c ../properties.c ../texture.c ../actions.c ../menu.c ../client.c ../pixmap.c ../image.c ../gradient.c ../button.c ../screen.c ../icon.c ../rootmenu.c ../dialog.c ../resource.c ../moveres.c ../application.c ../colormap.c ../raster.c ../placement.c ../misc.c ../appmenu.c ../keybind.c ../stacking.c ../appicon.c ../switchmenu.c ../dock.c ../winmenu.c ../generic/error.c\n"

View File

@@ -42,7 +42,7 @@
#undef WINGS_BOOL_FLAG #undef WINGS_BOOL_FLAG
#endif #endif
#define WINDOWMAKER_WM_MINIATURIZE_WINDOW "_WINDOWMAKER_WM_MINIATURIZE_WINDOW" #define GNUSTEP_WM_MINIATURIZE_WINDOW "_GNUSTEP_WM_MINIATURIZE_WINDOW"
#define GNUSTEP_WM_ATTR_NAME "_GNUSTEP_WM_ATTR" #define GNUSTEP_WM_ATTR_NAME "_GNUSTEP_WM_ATTR"
@@ -67,8 +67,9 @@ enum {
}; };
#endif /* _WINGS_H_ */ #endif /* _WINGS_H_ */
/* GNUstep protocols atom names */ /* window manager -> appkit notifications */
#define GNUSTEP_WM_RESIZEBAR "_GNUSTEP_WM_RESIZEBAR" #define GNUSTEP_WM_NOTIFICATION "GNUSTEP_WM_NOTIFICATION"
typedef struct { typedef struct {
CARD32 flags; CARD32 flags;
@@ -92,6 +93,9 @@ typedef struct {
/* extra flags */ /* extra flags */
#define GSDocumentEditedFlag (1<<0) #define GSDocumentEditedFlag (1<<0)
#define GSWindowWillResizeNotificationsFlag (1<<1)
#define GSWindowWillMoveNotificationsFlag (1<<2)
#define GSNoApplicationIconFlag (1<<5) #define GSNoApplicationIconFlag (1<<5)

View File

@@ -102,16 +102,16 @@ CPPFLAGS = \
INCLUDES = \ INCLUDES = \
-I$(top_srcdir)/wrlib \
-I$(top_srcdir)/WINGs \
@XCFLAGS@ \ @XCFLAGS@ \
@LIBPL_INC_PATH@ -I$(top_srcdir)/libPropList \
-I$(top_srcdir)/wrlib \
-I$(top_srcdir)/WINGs
wmaker_LDADD = \ wmaker_LDADD = \
$(top_builddir)/WINGs/libWINGs.a\ -L$(top_builddir)/WINGs -lWINGs\
$(top_builddir)/wrlib/libwraster.a\ -L$(top_builddir)/wrlib -lwraster\
@LIBPL_LIBS@ \ -L$(top_builddir)/libPropList -lPropList\
@XLFLAGS@ \ @XLFLAGS@ \
@GFXLIBS@ \ @GFXLIBS@ \
@XLIBS@ \ @XLIBS@ \

View File

@@ -68,8 +68,6 @@ I18N = @I18N@
I18N_MB = @I18N_MB@ I18N_MB = @I18N_MB@
ICONEXT = @ICONEXT@ ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@ INTLIBS = @INTLIBS@
LIBPL_INC_PATH = @LIBPL_INC_PATH@
LIBPL_LIBS = @LIBPL_LIBS@
LN_S = @LN_S@ LN_S = @LN_S@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@ MOFILES = @MOFILES@
@@ -193,15 +191,15 @@ CPPFLAGS = \
-DPIXMAPDIR="\"$(pixmapdir)\"" -DPIXMAPDIR="\"$(pixmapdir)\""
INCLUDES = \ INCLUDES = \
-I$(top_srcdir)/wrlib \
-I$(top_srcdir)/WINGs \
@XCFLAGS@ \ @XCFLAGS@ \
@LIBPL_INC_PATH@ -I$(top_srcdir)/libPropList \
-I$(top_srcdir)/wrlib \
-I$(top_srcdir)/WINGs
wmaker_LDADD = \ wmaker_LDADD = \
$(top_builddir)/WINGs/libWINGs.a\ -L$(top_builddir)/WINGs -lWINGs\
$(top_builddir)/wrlib/libwraster.a\ -L$(top_builddir)/wrlib -lwraster\
@LIBPL_LIBS@ \ -L$(top_builddir)/libPropList -lPropList\
@XLFLAGS@ \ @XLFLAGS@ \
@GFXLIBS@ \ @GFXLIBS@ \
@XLIBS@ \ @XLIBS@ \
@@ -227,8 +225,7 @@ placement.o properties.o proplist.o resources.o rootmenu.o screen.o \
session.o shutdown.o stacking.o startup.o superfluous.o switchmenu.o \ session.o shutdown.o stacking.o startup.o superfluous.o switchmenu.o \
texture.o xmodifier.o xutil.o wcore.o wdefaults.o window.o winmenu.o \ texture.o xmodifier.o xutil.o wcore.o wdefaults.o window.o winmenu.o \
winspector.o workspace.o wmsound.o text.o winspector.o workspace.o wmsound.o text.o
wmaker_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a \ wmaker_DEPENDENCIES =
$(top_builddir)/wrlib/libwraster.a
wmaker_LDFLAGS = wmaker_LDFLAGS =
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)

View File

@@ -127,14 +127,6 @@ typedef struct WObjDescriptor {
#define WTJ_LEFT 1 #define WTJ_LEFT 1
#define WTJ_RIGHT 2 #define WTJ_RIGHT 2
/* icon box positions */
#define WIB_BOTTOM 0
#define WIB_TOP 1
#define WIB_LEFT 2
#define WIB_RIGHT 3
/* iconification styles */ /* iconification styles */
#define WIS_ZOOM 0 #define WIS_ZOOM 0
#define WIS_TWIST 1 #define WIS_TWIST 1
@@ -157,9 +149,6 @@ typedef struct WObjDescriptor {
#define SPEED_SLOW 3 #define SPEED_SLOW 3
#define SPEED_ULTRASLOW 4 #define SPEED_ULTRASLOW 4
/* startup warnings */
#define WAR_DEFAULTS_DIR 1 /* created defaults DB directory */
/* window states */ /* window states */
#define WS_FOCUSED 0 #define WS_FOCUSED 0
@@ -180,18 +169,19 @@ typedef struct WObjDescriptor {
#define IY_LEFT 0 #define IY_LEFT 0
/* program states */
#define WSTATE_NORMAL 0
#define WSTATE_NEED_EXIT 1
#define WSTATE_NEED_RESTART 2
#define WSTATE_EXITING 3
#define WSTATE_RESTARTING 4
typedef struct W2Color {
char *color1;
char *color2;
} W2Color;
typedef struct WCoord { typedef struct WCoord {
int x, y; int x, y;
} WCoord; } WCoord;
typedef struct WPreferences { typedef struct WPreferences {
char **pixmap_path; /* NULL terminated array of */ char **pixmap_path; /* NULL terminated array of */
/* paths to find pixmaps */ /* paths to find pixmaps */
@@ -213,8 +203,9 @@ typedef struct WPreferences {
char use_saveunders; /* turn on SaveUnders for menus, char use_saveunders; /* turn on SaveUnders for menus,
* icons etc. */ * icons etc. */
/*
char no_window_under_dock; char no_window_under_dock;
*/
char no_window_over_icons; char no_window_over_icons;
@@ -257,7 +248,7 @@ typedef struct WPreferences {
WCoord *win_menu_pos; WCoord *win_menu_pos;
int icon_yard; /* aka iconbox */ char icon_yard; /* aka iconbox */
int raise_delay; /* delay for autoraise. 0 is disabled */ int raise_delay; /* delay for autoraise. 0 is disabled */
@@ -298,13 +289,13 @@ typedef struct WPreferences {
int dblclick_time; /* double click delay time in ms */ int dblclick_time; /* double click delay time in ms */
/* animate menus */ /* animate menus */
int menu_scroll_speed; /* how fast menus are scrolled */ char menu_scroll_speed; /* how fast menus are scrolled */
/* animate icon sliding */ /* animate icon sliding */
int icon_slide_speed; /* icon slide animation speed */ char icon_slide_speed; /* icon slide animation speed */
/* shading animation */ /* shading animation */
int shade_speed; char shade_speed;
int edge_resistance; int edge_resistance;

View File

@@ -27,6 +27,7 @@
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>
#include <math.h> #include <math.h>
#include <time.h>
#include "WindowMaker.h" #include "WindowMaker.h"
#include "wcore.h" #include "wcore.h"
@@ -69,8 +70,8 @@ static struct {
{SHADE_STEPS_S, SHADE_DELAY_S}, {SHADE_STEPS_S, SHADE_DELAY_S},
{SHADE_STEPS_U, SHADE_DELAY_U}}; {SHADE_STEPS_U, SHADE_DELAY_U}};
#define SHADE_STEPS shadePars[wPreferences.shade_speed].steps #define SHADE_STEPS shadePars[(int)wPreferences.shade_speed].steps
#define SHADE_DELAY shadePars[wPreferences.shade_speed].delay #define SHADE_DELAY shadePars[(int)wPreferences.shade_speed].delay
static int ignoreTimestamp=0; static int ignoreTimestamp=0;
@@ -246,6 +247,7 @@ void
wShadeWindow(WWindow *wwin) wShadeWindow(WWindow *wwin)
{ {
XWindowAttributes attribs; XWindowAttributes attribs;
time_t time0 = time(NULL);
#ifdef ANIMATIONS #ifdef ANIMATIONS
int y, s, w, h; int y, s, w, h;
#endif #endif
@@ -276,6 +278,9 @@ wShadeWindow(WWindow *wwin)
wusleep(SHADE_DELAY*1000L); wusleep(SHADE_DELAY*1000L);
h-=s; h-=s;
y-=s; y-=s;
if (time(NULL)-time0 > MAX_ANIMATION_TIME)
break;
} }
XMoveWindow(dpy, wwin->client_win, 0, wwin->frame->top_width); XMoveWindow(dpy, wwin->client_win, 0, wwin->frame->top_width);
} }
@@ -302,6 +307,7 @@ wShadeWindow(WWindow *wwin)
#ifdef ANIMATIONS #ifdef ANIMATIONS
if (!wwin->screen_ptr->flags.startup) { if (!wwin->screen_ptr->flags.startup) {
/* Look at processEvents() for reason of this code. */
XSync(dpy, 0); XSync(dpy, 0);
processEvents(XPending(dpy)); processEvents(XPending(dpy));
} }
@@ -312,6 +318,7 @@ wShadeWindow(WWindow *wwin)
void void
wUnshadeWindow(WWindow *wwin) wUnshadeWindow(WWindow *wwin)
{ {
time_t time0 = time(NULL);
#ifdef ANIMATIONS #ifdef ANIMATIONS
int y, s, w, h; int y, s, w, h;
#endif /* ANIMATIONS */ #endif /* ANIMATIONS */
@@ -347,6 +354,9 @@ wUnshadeWindow(WWindow *wwin)
wusleep(SHADE_DELAY*2000L/3); wusleep(SHADE_DELAY*2000L/3);
h+=s; h+=s;
y+=s; y+=s;
if (time(NULL)-time0 > MAX_ANIMATION_TIME)
break;
} }
} }
XMoveWindow(dpy, wwin->client_win, 0, wwin->frame->top_width); XMoveWindow(dpy, wwin->client_win, 0, wwin->frame->top_width);
@@ -395,13 +405,19 @@ wMaximizeWindow(WWindow *wwin, int directions)
if (!(wPreferences.icon_yard & IY_RIGHT)) if (!(wPreferences.icon_yard & IY_RIGHT))
new_x += wPreferences.icon_size; new_x += wPreferences.icon_size;
} }
#if 0
if (wPreferences.no_window_under_dock if (wPreferences.no_window_under_dock
&& wwin->screen_ptr->dock) { && wwin->screen_ptr->dock) {
new_width -= wPreferences.icon_size + DOCK_EXTRA_SPACE; new_width -= wPreferences.icon_size + DOCK_EXTRA_SPACE;
if (!wwin->screen_ptr->dock->on_right_side) if (!wwin->screen_ptr->dock->on_right_side)
new_x += wPreferences.icon_size + DOCK_EXTRA_SPACE; new_x += wPreferences.icon_size + DOCK_EXTRA_SPACE;
} }
#endif
if (wwin->screen_ptr->dock && !wwin->screen_ptr->dock->lowered) {
new_width -= wPreferences.icon_size + DOCK_EXTRA_SPACE;
if (!wwin->screen_ptr->dock->on_right_side)
new_x += wPreferences.icon_size + DOCK_EXTRA_SPACE;
}
} else { } else {
new_x = wwin->frame_x; new_x = wwin->frame_x;
new_width = wwin->frame->core->width; new_width = wwin->frame->core->width;
@@ -679,181 +695,6 @@ animateResize(WScreen *scr, int x, int y, int w, int h,
#endif /* ANIMATIONS */ #endif /* ANIMATIONS */
/* Here are defined the miniaturize animation functions. The above defined
* functions, use a separate function that implements the animation for each
* different style, and a wrapper that calls them accordingly.
* The below function is a single function that implements all the miniaturize
* animation styles in one single function, using switch{} and if() statements
* to differentiate them.
* The above code is more generic and elegant, letting one to extend it very
* easily (though I don't think one would ;), but will make the code a little
* bit bigger, using three functions and a wrapper.
* The below version, is smaller, being optimised for size, but is less
* elegant, and harder to be extended. Also is harder to read.
* I let them both here so you can take a look, and decide which one you like
* more. I would use the above functions because they are nicer, and easier to
* read and follow, and only a little bit bigger. -Dan
*/
#ifdef ANIMATIONS_DONT_USE_THIS
static void
animateResize(WScreen *scr, int x, int y, int w, int h,
int fx, int fy, int fw, int fh, int hiding)
{
#define FRAMES (MINIATURIZE_ANIMATION_FRAMES_Z)
float cx[FRAMES], cy[FRAMES], cw[FRAMES], ch[FRAMES];
float xstep, ystep, wstep, hstep;
XPoint points[5];
float angle, final_angle, a, d, delta, dx, dch, midy, twist=0.5;
int style = wPreferences.iconification_style; /* Catch the value */
/* to avoid changes while animating */
int frames, steps, delay, i, j;
if (style == WIS_NONE)
return;
switch(style) {
case WIS_TWIST:
frames = MINIATURIZE_ANIMATION_FRAMES_T;
steps = MINIATURIZE_ANIMATION_STEPS_T;
delay = MINIATURIZE_ANIMATION_DELAY_T;
twist = MINIATURIZE_ANIMATION_TWIST_T;
break;
case WIS_FLIP:
frames = MINIATURIZE_ANIMATION_FRAMES_F;
steps = MINIATURIZE_ANIMATION_STEPS_F;
delay = MINIATURIZE_ANIMATION_DELAY_F;
twist = MINIATURIZE_ANIMATION_TWIST_F;
break;
case WIS_ZOOM:
default:
frames = MINIATURIZE_ANIMATION_FRAMES_Z;
steps = MINIATURIZE_ANIMATION_STEPS_Z;
delay = MINIATURIZE_ANIMATION_DELAY_Z;
break;
}
steps = (hiding ? (steps*2)/3 : steps);
if (steps == 0)
return;
if (style == WIS_TWIST) {
x += w/2;
y += h/2;
fx += fw/2;
fy += fh/2;
}
xstep = (float)(fx-x)/steps;
ystep = (float)(fy-y)/steps;
wstep = (float)(fw-w)/steps;
hstep = (float)(fh-h)/steps;
for (j=0; j<frames; j++) {
cx[j] = (float)x;
cy[j] = (float)y;
cw[j] = (float)w;
ch[j] = (float)h;
}
if (style==WIS_TWIST || style==WIS_FLIP) {
final_angle = 2*WM_PI*twist;
delta = (float)(final_angle/frames);
for (angle=0;; angle+=delta) {
if (angle > final_angle)
angle = final_angle;
switch (style) {
case WIS_TWIST:
a = atan(ch[0]/cw[0]);
d = sqrt((cw[0]/2)*(cw[0]/2)+(ch[0]/2)*(ch[0]/2));
points[0].x = cx[0]+cos(angle-a)*d;
points[0].y = cy[0]+sin(angle-a)*d;
points[1].x = cx[0]+cos(angle+a)*d;
points[1].y = cy[0]+sin(angle+a)*d;
points[2].x = cx[0]+cos(angle-a+WM_PI)*d;
points[2].y = cy[0]+sin(angle-a+WM_PI)*d;
points[3].x = cx[0]+cos(angle+a+WM_PI)*d;
points[3].y = cy[0]+sin(angle+a+WM_PI)*d;
points[4].x = cx[0]+cos(angle-a)*d;
points[4].y = cy[0]+sin(angle-a)*d;
break;
case WIS_FLIP:
dx = (cw[0]/10) - ((cw[0]/5) * sin(angle));
dch = (ch[0]/2) * cos(angle);
midy = cy[0] + (ch[0]/2);
points[0].x = cx[0] + dx; points[0].y = midy - dch;
points[1].x = cx[0] + cw[0] - dx; points[1].y = points[0].y;
points[2].x = cx[0] + cw[0] + dx; points[2].y = midy + dch;
points[3].x = cx[0] - dx; points[3].y = points[2].y;
points[4].x = points[0].x; points[4].y = points[0].y;
break;
}
XGrabServer(dpy);
XDrawLines(dpy, scr->root_win, scr->frame_gc, points, 5, CoordModeOrigin);
XFlush(dpy);
if (delay>0)
wusleep(delay);
XDrawLines(dpy, scr->root_win, scr->frame_gc, points, 5, CoordModeOrigin);
XUngrabServer(dpy);
cx[0]+=xstep;
cy[0]+=ystep;
cw[0]+=wstep;
ch[0]+=hstep;
if (angle >= final_angle)
break;
}
XFlush(dpy);
} else {
/* Zoom or default */
XGrabServer(dpy);
for (i=0; i<steps; i++) {
for (j=0; j<frames; j++) {
XDrawRectangle(dpy, scr->root_win, scr->frame_gc,
(int)cx[j], (int)cy[j], (int)cw[j], (int)ch[j]);
}
XFlush(dpy);
if (delay>0)
wusleep(delay);
for (j=0; j<frames; j++) {
XDrawRectangle(dpy, scr->root_win, scr->frame_gc,
(int)cx[j], (int)cy[j], (int)cw[j], (int)ch[j]);
if (j<frames-1) {
cx[j]=cx[j+1];
cy[j]=cy[j+1];
cw[j]=cw[j+1];
ch[j]=ch[j+1];
} else {
cx[j]+=xstep;
cy[j]+=ystep;
cw[j]+=wstep;
ch[j]+=hstep;
}
}
}
for (j=0; j<frames; j++) {
XDrawRectangle(dpy, scr->root_win, scr->frame_gc,
(int)cx[j], (int)cy[j], (int)cw[j], (int)ch[j]);
}
XFlush(dpy);
if (delay>0)
wusleep(MINIATURIZE_ANIMATION_DELAY_Z);
for (j=0; j<frames; j++) {
XDrawRectangle(dpy, scr->root_win, scr->frame_gc,
(int)cx[j], (int)cy[j], (int)cw[j], (int)ch[j]);
}
XUngrabServer(dpy);
}
}
#undef FRAMES
#endif /* ANIMATIONS */
static void static void
flushExpose() flushExpose()
{ {
@@ -942,12 +783,23 @@ setupIconGrabs(WIcon *icon)
static WWindow* static WWindow*
recursiveTransientFor(WWindow *wwin) recursiveTransientFor(WWindow *wwin)
{ {
int i;
if (!wwin) if (!wwin)
return None; return None;
/* TODO: a buggy client can put this in a infinite loop */ /* hackish way to detect transient_for cycle */
while (wwin->transient_for != None) i = wwin->screen_ptr->window_count+1;
while (wwin && wwin->transient_for != None && i>0) {
wwin = wWindowFor(wwin->transient_for); wwin = wWindowFor(wwin->transient_for);
i--;
}
if (i==0 && wwin) {
wwarning("%s has a severely broken WM_TRANSIENT_FOR hint.",
wwin->frame->title);
return NULL;
}
return wwin; return wwin;
} }
@@ -1009,6 +861,10 @@ wIconifyWindow(WWindow *wwin)
unmapTransientsFor(wwin); unmapTransientsFor(wwin);
if (present) { if (present) {
#ifdef WMSOUND
wSoundPlay(WMSOUND_ICONIFY);
#endif
XUngrabPointer(dpy, CurrentTime); XUngrabPointer(dpy, CurrentTime);
/* prevent window withdrawal when getting UnmapNotify */ /* prevent window withdrawal when getting UnmapNotify */
XSelectInput(dpy, wwin->client_win, XSelectInput(dpy, wwin->client_win,
@@ -1043,9 +899,10 @@ wIconifyWindow(WWindow *wwin)
#endif #endif
if (present) { if (present) {
WWindow *owner = recursiveTransientFor(wwin->screen_ptr->focused_window);
setupIconGrabs(wwin->icon); setupIconGrabs(wwin->icon);
if ((wwin->flags.focused || wwin->client_win == if ((wwin->flags.focused
recursiveTransientFor(wwin->screen_ptr->focused_window)->client_win) || (owner && wwin->client_win == owner->client_win))
&& wPreferences.focus_mode==WKF_CLICK) { && wPreferences.focus_mode==WKF_CLICK) {
WWindow *tmp; WWindow *tmp;
@@ -1061,19 +918,17 @@ wIconifyWindow(WWindow *wwin)
wSetFocusTo(wwin->screen_ptr, NULL); wSetFocusTo(wwin->screen_ptr, NULL);
} }
#ifdef WMSOUND
if (present) {
wSoundPlay(WMSOUND_ICONIFY);
}
#endif
#ifdef ANIMATIONS #ifdef ANIMATIONS
/*
if (!wwin->screen_ptr->flags.startup) { if (!wwin->screen_ptr->flags.startup) {
Window clientwin = wwin->client_win;
XSync(dpy, 0); XSync(dpy, 0);
processEvents(XPending(dpy)); processEvents(XPending(dpy));
/* the window can disappear while doing the processEvents() */
if (!wWindowFor(clientwin))
return;
} }
*/
#endif #endif
} }
@@ -1112,6 +967,10 @@ wDeiconifyWindow(WWindow *wwin)
XUnmapWindow(dpy, wwin->icon->core->window); XUnmapWindow(dpy, wwin->icon->core->window);
#ifdef WMSOUND
wSoundPlay(WMSOUND_DEICONIFY);
#endif
/* if the window is in another workspace, do it silently */ /* if the window is in another workspace, do it silently */
#ifdef ANIMATIONS #ifdef ANIMATIONS
if (!wwin->screen_ptr->flags.startup && !wPreferences.no_animations if (!wwin->screen_ptr->flags.startup && !wPreferences.no_animations
@@ -1144,14 +1003,15 @@ wDeiconifyWindow(WWindow *wwin)
|| wPreferences.focus_mode==WKF_SLOPPY) || wPreferences.focus_mode==WKF_SLOPPY)
wSetFocusTo(wwin->screen_ptr, wwin); wSetFocusTo(wwin->screen_ptr, wwin);
#ifdef WMSOUND
wSoundPlay(WMSOUND_DEICONIFY);
#endif
#ifdef ANIMATIONS #ifdef ANIMATIONS
if (!wwin->screen_ptr->flags.startup) { if (!wwin->screen_ptr->flags.startup) {
Window clientwin = wwin->client_win;
XSync(dpy, 0); XSync(dpy, 0);
processEvents(XPending(dpy)); processEvents(XPending(dpy));
if (!wWindowFor(clientwin))
return;
} }
#endif #endif
@@ -1209,6 +1069,9 @@ hideWindow(WIcon *icon, int icon_x, int icon_y, WWindow *wwin, int animate)
XUnmapWindow(dpy, wwin->frame->core->window); XUnmapWindow(dpy, wwin->frame->core->window);
wClientSetState(wwin, IconicState, icon->icon_win); wClientSetState(wwin, IconicState, icon->icon_win);
flushExpose(); flushExpose();
#ifdef WMSOUND
wSoundPlay(WMSOUND_HIDE);
#endif
#ifdef ANIMATIONS #ifdef ANIMATIONS
if (!wwin->screen_ptr->flags.startup && !wPreferences.no_animations && if (!wwin->screen_ptr->flags.startup && !wPreferences.no_animations &&
!wwin->flags.skip_next_animation && animate) { !wwin->flags.skip_next_animation && animate) {
@@ -1221,10 +1084,6 @@ hideWindow(WIcon *icon, int icon_x, int icon_y, WWindow *wwin, int animate)
wwin->flags.skip_next_animation = 0; wwin->flags.skip_next_animation = 0;
UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_CHANGE_STATE); UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_CHANGE_STATE);
#ifdef WMSOUND
wSoundPlay(WMSOUND_HIDE);
#endif
} }
@@ -1269,7 +1128,7 @@ wHideOtherApplications(WWindow *awin)
} }
#endif #endif
if (wwin->main_window==None) { if (wwin->main_window==None || wwin->window_flags.no_appicon) {
if (!wwin->window_flags.no_miniaturizable) { if (!wwin->window_flags.no_miniaturizable) {
wwin->flags.skip_next_animation = 1; wwin->flags.skip_next_animation = 1;
wIconifyWindow(wwin); wIconifyWindow(wwin);
@@ -1412,14 +1271,13 @@ unhideWindow(WIcon *icon, int icon_x, int icon_y, WWindow *wwin, int animate,
wwin->flags.hidden=0; wwin->flags.hidden=0;
wwin->flags.mapped=1; wwin->flags.mapped=1;
#ifdef WMSOUND
wSoundPlay(WMSOUND_UNHIDE);
#endif
#ifdef ANIMATIONS #ifdef ANIMATIONS
/* something is redundant here. animate passed here is if (!wwin->screen_ptr->flags.startup && !wPreferences.no_animations
* !wwin->flags.skip_next_animation, so this flag is tested twice. && animate) {
* Either we shold not test skip_next_animation here, or don't pass
* animate to this function. -Dan
*/
if (!wwin->screen_ptr->flags.startup && !wPreferences.no_animations &&
!wwin->flags.skip_next_animation && animate) {
animateResize(wwin->screen_ptr, icon_x, icon_y, animateResize(wwin->screen_ptr, icon_x, icon_y,
icon->core->width, icon->core->height, icon->core->width, icon->core->height,
wwin->frame_x, wwin->frame_y, wwin->frame_x, wwin->frame_y,
@@ -1443,10 +1301,6 @@ unhideWindow(WIcon *icon, int icon_x, int icon_y, WWindow *wwin, int animate,
} }
UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_CHANGE_STATE); UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_CHANGE_STATE);
#ifdef WMSOUND
wSoundPlay(WMSOUND_UNHIDE);
#endif
} }

View File

@@ -153,7 +153,9 @@ wAppIconCreate(WWindow *leader_win)
aicon->prev = NULL; aicon->prev = NULL;
aicon->next = scr->app_icon_list; aicon->next = scr->app_icon_list;
if (scr->app_icon_list) { if (scr->app_icon_list) {
#ifdef REDUCE_APPICONS #ifndef REDUCE_APPICONS
scr->app_icon_list->prev = aicon;
#else
/* If we aren't going to have a match, jump straight to new appicon */ /* If we aren't going to have a match, jump straight to new appicon */
if (leader_win->wm_class == NULL || leader_win->wm_class == NULL) if (leader_win->wm_class == NULL || leader_win->wm_class == NULL)
atmp = NULL; atmp = NULL;
@@ -185,11 +187,9 @@ wAppIconCreate(WWindow *leader_win)
atmp = atmp->next; atmp = atmp->next;
} }
if (atmp == NULL) { if (atmp == NULL) {
#endif
scr->app_icon_list->prev = aicon; scr->app_icon_list->prev = aicon;
#ifdef REDUCE_APPICONS
} }
#endif #endif /* REDUCE_APPICONS */
} }
scr->app_icon_list = aicon; scr->app_icon_list = aicon;
@@ -658,6 +658,9 @@ appIconMouseDown(WObjDescriptor *desc, XEvent *event)
int clickButton = event->xbutton.button; int clickButton = event->xbutton.button;
Pixmap ghost = None; Pixmap ghost = None;
if (aicon->editing)
return;
if (IsDoubleClick(scr, event)) { if (IsDoubleClick(scr, event)) {
iconDblClick(desc, event); iconDblClick(desc, event);
return; return;

View File

@@ -132,36 +132,9 @@ extractIcon(WWindow *wwin)
} }
void static void
wApplicationExtractDirPackIcon(WScreen *scr, char *path, saveIconNameFor(char *iconPath, char *wm_instance, char *wm_class)
char *wm_instance, char *wm_class)
{ {
char *iconPath=NULL;
/* Maybe the app is a .app and it has an icon in it, like
* /usr/local/GNUstep/Apps/WPrefs.app/WPrefs.tiff
*/
if (strstr(path, ".app")) {
char *tmp;
tmp = wmalloc(strlen(path)+16);
if (scr->flags.supports_tiff) {
strcpy(tmp, path);
strcat(tmp, ".tiff");
if (access(tmp, R_OK)==0)
iconPath = tmp;
}
if (!path) {
strcpy(tmp, path);
strcat(tmp, ".xpm");
if (access(tmp, R_OK)==0)
iconPath = tmp;
}
if (!iconPath)
free(tmp);
}
if (iconPath) {
proplist_t dict = WDWindowAttributes->dictionary; proplist_t dict = WDWindowAttributes->dictionary;
proplist_t adict, key, iconk; proplist_t adict, key, iconk;
proplist_t val; proplist_t val;
@@ -209,12 +182,63 @@ wApplicationExtractDirPackIcon(WScreen *scr, char *path,
if (val) if (val)
PLSave(dict, YES); PLSave(dict, YES);
}
void
wApplicationExtractDirPackIcon(WScreen *scr, char *path,
char *wm_instance, char *wm_class)
{
char *iconPath=NULL;
/* Maybe the app is a .app and it has an icon in it, like
* /usr/local/GNUstep/Apps/WPrefs.app/WPrefs.tiff
*/
if (strstr(path, ".app")) {
char *tmp;
tmp = wmalloc(strlen(path)+16);
if (scr->flags.supports_tiff) {
strcpy(tmp, path);
strcat(tmp, ".tiff");
if (access(tmp, R_OK)==0)
iconPath = tmp;
}
if (!path) {
strcpy(tmp, path);
strcat(tmp, ".xpm");
if (access(tmp, R_OK)==0)
iconPath = tmp;
}
if (!iconPath)
free(tmp);
}
if (iconPath) {
saveIconNameFor(iconPath, wm_instance, wm_class);
free(iconPath); free(iconPath);
} }
} }
static Bool
extractClientIcon(WAppIcon *icon)
{
char *path;
path = wIconStore(icon->icon);
if (!path)
return False;
saveIconNameFor(path, icon->wm_instance, icon->wm_class);
free(path);
return True;
}
WApplication* WApplication*
wApplicationCreate(WScreen *scr, Window main_window) wApplicationCreate(WScreen *scr, Window main_window)
{ {
@@ -337,6 +361,9 @@ wApplicationCreate(WScreen *scr, Window main_window)
if (wapp->app_icon && !wapp->app_icon->docked) { if (wapp->app_icon && !wapp->app_icon->docked) {
#else #else
if (wapp->app_icon && !wapp->app_icon->docked && wapp->app_icon->num_apps == 1) { if (wapp->app_icon && !wapp->app_icon->docked && wapp->app_icon->num_apps == 1) {
#ifdef THIS_SUCKS
}
#endif
#endif #endif
WIcon *icon = wapp->app_icon->icon; WIcon *icon = wapp->app_icon->icon;
WDock *clip = scr->workspaces[scr->current_workspace]->clip; WDock *clip = scr->workspaces[scr->current_workspace]->clip;
@@ -348,7 +375,7 @@ wApplicationCreate(WScreen *scr, Window main_window)
wapp->app_icon->icon->shadowed = 1; wapp->app_icon->icon->shadowed = 1;
wapp->app_icon->icon->force_paint = 1; wapp->app_icon->icon->force_paint = 1;
/* We don't do an wAppIconPaint() here because it's in /* We don't do an wAppIconPaint() here because it's in
* wDockAttachIcon(). -Dan * wDockAttachIcon(). -Dan.
*/ */
} }
wDockAttachIcon(clip, wapp->app_icon, x, y); wDockAttachIcon(clip, wapp->app_icon, x, y);
@@ -367,6 +394,16 @@ wApplicationCreate(WScreen *scr, Window main_window)
wArrangeIcons(scr, True); wArrangeIcons(scr, True);
} }
if (wapp->app_icon) {
char *tmp;
/* if the displayed icon was supplied by the client, save the icon */
tmp = wDefaultGetIconFile(scr, wapp->app_icon->wm_instance,
wapp->app_icon->wm_class, True);
if (!tmp)
extractClientIcon(wapp->app_icon);
}
wapp->prev = NULL; wapp->prev = NULL;
wapp->next = scr->wapp_list; wapp->next = scr->wapp_list;
if (scr->wapp_list) if (scr->wapp_list)

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