mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 04:20:27 +01:00
Update for 0.51.0
This commit is contained in:
26
AUTHORS
26
AUTHORS
@@ -24,6 +24,9 @@ ConfigureNotify
|
|||||||
Olly Betts <olly@muscat.co.uk>
|
Olly Betts <olly@muscat.co.uk>
|
||||||
shaded window indication in window list
|
shaded window indication in window list
|
||||||
|
|
||||||
|
Tudor Bosman <tudorb@caltech.edu>
|
||||||
|
autoraise bugfix
|
||||||
|
|
||||||
Rob Clark <rclark@turing.cs.hmc.edu>
|
Rob Clark <rclark@turing.cs.hmc.edu>
|
||||||
Text input field, 15bpp support
|
Text input field, 15bpp support
|
||||||
|
|
||||||
@@ -62,12 +65,15 @@ Better detection of gfx libraries, added IconTitleColor/IconTitleBack
|
|||||||
Greg Hayes <sdc@choice.net>
|
Greg Hayes <sdc@choice.net>
|
||||||
Twisted miniaturization animation
|
Twisted miniaturization animation
|
||||||
|
|
||||||
|
Alban Hertroys
|
||||||
|
WINGs color panel
|
||||||
|
|
||||||
HIDEKI Fujimoto <hideki70@osk2.threewebnet.or.jp>
|
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>
|
Pascal Hofstee <daeron@wit401305.student.utwente.nl>
|
||||||
WINGs bug fixes
|
WINGs bug fixes, WINGs color panel
|
||||||
|
|
||||||
Robert A. Holak <panthar@tradeservices.com>
|
Robert A. Holak <panthar@tradeservices.com>
|
||||||
bug fix
|
bug fix
|
||||||
@@ -108,7 +114,7 @@ Stuart Luppescu <s-luppescu@uchicago.edu>
|
|||||||
Documentation help
|
Documentation help
|
||||||
|
|
||||||
Marcelo E. Magallon <mmagallo@efis.ucr.ac.cr>
|
Marcelo E. Magallon <mmagallo@efis.ucr.ac.cr>
|
||||||
CPP search path improvement, man pages
|
CPP search path improvement, man pages, bug fixes
|
||||||
|
|
||||||
Tim Malone <mrgone@eskimo.com>
|
Tim Malone <mrgone@eskimo.com>
|
||||||
bug fix, jpeg bug fix
|
bug fix, jpeg bug fix
|
||||||
@@ -125,6 +131,9 @@ Andrea Mistrali <andre@ulmo.aleph.it>
|
|||||||
Jeff Meininger <jeffm@boxybutgood.com>
|
Jeff Meininger <jeffm@boxybutgood.com>
|
||||||
Fix for unassociated alpha tiff
|
Fix for unassociated alpha tiff
|
||||||
|
|
||||||
|
Craig Nellist <crn@ozemail.com.au>
|
||||||
|
selection in textfield
|
||||||
|
|
||||||
Dan Pascu <dan@services.iiruc.ro>
|
Dan Pascu <dan@services.iiruc.ro>
|
||||||
dock ghost (superfluous mode) fix, enhancement for scrollable menus,
|
dock ghost (superfluous mode) fix, enhancement for scrollable menus,
|
||||||
clip, numerous other stuff, project maintainer
|
clip, numerous other stuff, project maintainer
|
||||||
@@ -174,7 +183,12 @@ Sam Varner <varner@nmr.physics.wm.edu>
|
|||||||
many fixes and enhancements for move, resize and window placement code.
|
many fixes and enhancements for move, resize and window placement code.
|
||||||
|
|
||||||
Marco van Hylckama Vlieg <fatal@global.uibk.ac.at>
|
Marco van Hylckama Vlieg <fatal@global.uibk.ac.at>
|
||||||
house icon for WINGs file dialogs, defaultAppIcon and Clip xpm icon
|
house icon for WINGs file dialogs, defaultAppIcon and Clip xpm tchX.tiff
|
||||||
|
Plus the following icons:
|
||||||
|
DefaultAppIcon.tiff GNUterm.tiff clip2.tiff defaultterm.tiff draw.tiff
|
||||||
|
linuxterm.tiff mixer.tiff notepad.tiff pdf.tiff ps.tiff real.tiff sgiterm.tiff
|
||||||
|
sound.tiff staroffice2.tiff timer.tiff wilber.tiff write.tiff xdvi.tiff
|
||||||
|
xv.tiff
|
||||||
|
|
||||||
David Wang <dwang@cisco.com>
|
David Wang <dwang@cisco.com>
|
||||||
edge resistance, 8bpp balloon bug fix, other 8bpp related fixes
|
edge resistance, 8bpp balloon bug fix, other 8bpp related fixes
|
||||||
@@ -186,10 +200,12 @@ libproplist. Chooses best depth in screen.
|
|||||||
FRBall <frb@umr.edu>
|
FRBall <frb@umr.edu>
|
||||||
dgradient fix
|
dgradient fix
|
||||||
|
|
||||||
"]d" <mhz@gpf.or.th>
|
|
||||||
|
"]d" <id@maliwan.org>
|
||||||
Window list menu miniaturized/hidden hints, XDE support, XKB lock
|
Window list menu miniaturized/hidden hints, XDE support, XKB lock
|
||||||
language status, WINGs enhancements, bug fixes, window commands menu
|
language status, WINGs enhancements, bug fixes, window commands menu
|
||||||
enhancement, window move/resize by keyboard
|
enhancement, window move/resize by keyboard. GNUstepGlow.tiff icon,
|
||||||
|
WINGs color panel
|
||||||
|
|
||||||
|
|
||||||
Trae Mc Combs <x@themes.org>
|
Trae Mc Combs <x@themes.org>
|
||||||
|
|||||||
6
BUGFORM
6
BUGFORM
@@ -34,10 +34,10 @@ to bugs@windowmaker.org
|
|||||||
4. Configure time options you specified:
|
4. Configure time options you specified:
|
||||||
[ ] --enable-kanji
|
[ ] --enable-kanji
|
||||||
[ ] --disable-shape
|
[ ] --disable-shape
|
||||||
[ ] --disable-xpm
|
|
||||||
[ ] --disable-tiff
|
|
||||||
[ ] --disable-png
|
|
||||||
[ ] --enable-single-icon
|
[ ] --enable-single-icon
|
||||||
|
[ ] --enable-kde
|
||||||
|
[ ] --enable-gnome
|
||||||
|
[ ] --enable-openlook
|
||||||
[ ] Others: .......................
|
[ ] Others: .......................
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
2
BUGS
2
BUGS
@@ -1,3 +1,5 @@
|
|||||||
|
- wmaker will not stop managing a screen even if another window manager
|
||||||
|
requests that, through the ICCCM 2.0 manager selection stuff
|
||||||
- the app menu does not update after a style/theme change without restart.
|
- the app menu does not update after a style/theme change without restart.
|
||||||
- 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
|
||||||
|
|||||||
38
ChangeLog
38
ChangeLog
@@ -1,3 +1,41 @@
|
|||||||
|
Changes since version 0.50.2:
|
||||||
|
.............................
|
||||||
|
|
||||||
|
- added some new icons made by Marco
|
||||||
|
- kde: fixed stacking order reporting for modules
|
||||||
|
- gnome: fixed state change request handling
|
||||||
|
- fixed handling of file names with non-alphanum characters in wmsetbg
|
||||||
|
- hopefully fixed timestamp problem that caused regeneration of configure
|
||||||
|
- fixed a bug in the auto raise code
|
||||||
|
- made SIGHUP exit wmaker and SIGUSR1 restart for GNOME compatibility
|
||||||
|
- fixed %a() bug (now it really is fixed!)
|
||||||
|
- fixed docking icons in last icon
|
||||||
|
- fixed WMInsertPopUpButtonItem()
|
||||||
|
- fixed bug that caused fonts of themes to be ignored
|
||||||
|
- fixed bug in path handling in getstyle
|
||||||
|
- stop icon explosion animation by clicking on root window
|
||||||
|
- made SAVE_SESSION save the state of the dock
|
||||||
|
- added command line option aliases that adhere to the GNU standards
|
||||||
|
- fixed png gamma bug (actually unmade buggy fix)
|
||||||
|
- fixed bug in property notify handling
|
||||||
|
- removed KeepTransientsOnTop
|
||||||
|
- fixed window focus when switching workspaces
|
||||||
|
- fixed attribute inspector Apply for dont bind keys
|
||||||
|
- fixed bad colormap bug (I hope)
|
||||||
|
- added acceleration to keyboard window move
|
||||||
|
- %W expand to current workspace #
|
||||||
|
- fixed background pixmap color problem (cpixmap etc)
|
||||||
|
- applied drop shadow patch
|
||||||
|
- fixed crash on startup with xconsole and xdm
|
||||||
|
- fixed portability prob with MkLinux/PPC
|
||||||
|
- fixed portability prob with Alpha
|
||||||
|
- added color panel to WINGs
|
||||||
|
- added support for olwm/OPEN LOOK(tm) hints
|
||||||
|
- added SaveYourself support
|
||||||
|
- fixed bug in start maximized
|
||||||
|
- added _WINDOWMAKER_NOTICEBOARD protocol
|
||||||
|
- added docklib
|
||||||
|
|
||||||
Changes since version 0.50.1:
|
Changes since version 0.50.1:
|
||||||
.............................
|
.............................
|
||||||
|
|
||||||
|
|||||||
22
FAQ
22
FAQ
@@ -58,6 +58,8 @@ Summary of Contents:
|
|||||||
shaded and I can't run new instances.
|
shaded and I can't run new instances.
|
||||||
3.9 When I run wmaker it complains about not being able to load any
|
3.9 When I run wmaker it complains about not being able to load any
|
||||||
fonts.
|
fonts.
|
||||||
|
3.10 When I set the root background with wmsetbg by hand it works,
|
||||||
|
but when I do that from the configuration files it doesnt!
|
||||||
|
|
||||||
4 - Configuration
|
4 - Configuration
|
||||||
4.1 What are those files inside my ~/GNUstep directory?
|
4.1 What are those files inside my ~/GNUstep directory?
|
||||||
@@ -680,6 +682,7 @@ the WM_CLASS hint for the window, like the -name parameter for
|
|||||||
xterm, rxvt and other programs.
|
xterm, rxvt and other programs.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
3.9 When I run wmaker it complains about not being able to load any fonts.
|
3.9 When I run wmaker it complains about not being able to load any fonts.
|
||||||
----------------------------------
|
----------------------------------
|
||||||
Check if the locale settings are correct. If you're not sure what to
|
Check if the locale settings are correct. If you're not sure what to
|
||||||
@@ -687,6 +690,25 @@ do, unset the LANG environment variable before running wmaker.
|
|||||||
|
|
||||||
TODO: give complete explanation
|
TODO: give complete explanation
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
3.10 When I set the root background with wmsetbg by hand it works,
|
||||||
|
but when I do that from the configuration files it doesnt!
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
DOH! If you set the root background with wmsetbg by hand, it will obviously
|
||||||
|
find the image, since you have explicitly specified it by hand. But if you
|
||||||
|
simply put it in ~/GNUstep/Defaults/WindowMaker in some option like
|
||||||
|
WorkspaceBack, it will not find the image because Window Maker can't read
|
||||||
|
your mind to figure where you put the image. So, to fix it, you have to
|
||||||
|
either place the full path for the image in the texture specification or put
|
||||||
|
the path for the directory you put your background images in the PixmapPath
|
||||||
|
option. You can also put all your background images in places like
|
||||||
|
~/GNUstep/Library/WindowMaker/Backgrounds or
|
||||||
|
/usr/local/share/WindowMaker/Backgrounds
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-=-=-=-=-=-=-=-
|
-=-=-=-=-=-=-=-
|
||||||
Configuration:
|
Configuration:
|
||||||
-=-=-=-=-=-=-=-
|
-=-=-=-=-=-=-=-
|
||||||
|
|||||||
150
INSTALL
150
INSTALL
@@ -7,11 +7,11 @@ SUPPORTED PLATFORMS
|
|||||||
===================
|
===================
|
||||||
(ie: I've heard someone has compiled it on...)
|
(ie: I've heard someone has compiled it on...)
|
||||||
|
|
||||||
- Intel/Linux Slackware 3.5 (primary platform)
|
- Intel GNU/Linux Slackware 3.5 (primary platform)
|
||||||
- Intel/Linux other distributions
|
- Intel GNU/Linux other distributions
|
||||||
- Sparc/Linux RedHat 5.1
|
- Sparc GNU/Linux RedHat 5.1
|
||||||
- PowerPC/MkLinux
|
- PowerPC GNU/MkLinux
|
||||||
- Alpha/Linux RedHat 5.1
|
- Alpha GNU/Linux RedHat 5.1
|
||||||
- FreeBSD
|
- FreeBSD
|
||||||
- NetBSD
|
- NetBSD
|
||||||
- Solaris 2.5.1, 2.5.2
|
- Solaris 2.5.1, 2.5.2
|
||||||
@@ -30,6 +30,7 @@ SUPPORTED PLATFORMS
|
|||||||
- Corel NetWinder
|
- Corel NetWinder
|
||||||
- SunOS 4.x
|
- SunOS 4.x
|
||||||
- PowerMac / Power MachTen 4.1.1 over MacOS
|
- PowerMac / Power MachTen 4.1.1 over MacOS
|
||||||
|
- Amiga 3000 running RedHat Linux 5.1 (Rawhide)
|
||||||
|
|
||||||
Patches to make it work on other platforms are welcome.
|
Patches to make it work on other platforms are welcome.
|
||||||
|
|
||||||
@@ -59,7 +60,7 @@ The following is required to build Window Maker:
|
|||||||
program, including Window Maker.
|
program, including Window Maker.
|
||||||
|
|
||||||
- autoconf, automake and libtool
|
- autoconf, automake and libtool
|
||||||
autoconf and automake are not required, but if you have one or
|
These tools are not needed, but IF you have one or
|
||||||
more of them installed, make sure you have ALL of the following
|
more of them installed, make sure you have ALL of the following
|
||||||
with exactly these versions:
|
with exactly these versions:
|
||||||
autoconf 2.12
|
autoconf 2.12
|
||||||
@@ -67,7 +68,8 @@ The following is required to build Window Maker:
|
|||||||
libtool 1.2
|
libtool 1.2
|
||||||
If you have a different version, disable them by temporarily
|
If you have a different version, disable them by temporarily
|
||||||
renaming them to something else or uninstalling them from your
|
renaming them to something else or uninstalling them from your
|
||||||
system.
|
system. If you don't develop software you don't need them,
|
||||||
|
so you can safely uninstall.
|
||||||
|
|
||||||
- lex (or flex) and yacc (or bison)
|
- lex (or flex) and yacc (or bison)
|
||||||
These are used by libPropList. lex is actually not needed since
|
These are used by libPropList. lex is actually not needed since
|
||||||
@@ -127,55 +129,69 @@ support compiled in.
|
|||||||
|
|
||||||
To get a list of other options, run ./configure --help
|
To get a list of other options, run ./configure --help
|
||||||
|
|
||||||
--enable-kanji support to display Kanji characters, Korean, Chinese
|
--enable-kanji
|
||||||
and other languagues that require special characters.
|
support to display Kanji characters, Korean, Chinese and other
|
||||||
|
languagues that require special characters.
|
||||||
|
|
||||||
--enable-single-icon enables the collapsing of all appicons of the
|
--enable-single-icon
|
||||||
WM_CLASS+WM_INSTANCE into a single one. This feature is not
|
enables the collapsing of all appicons of the WM_CLASS+WM_INSTANCE
|
||||||
supported at all by the developers. If you have some trouble with it,
|
into a single one. This feature is not supported at all by the
|
||||||
contact it's author: Christopher Seawood <cls@seawood.org>
|
developers. If you have some trouble with it, contact it's author:
|
||||||
|
Christopher Seawood <cls@seawood.org>
|
||||||
|
|
||||||
--disable-shm disable use of the MIT shared memory extension. This will
|
--disable-shm
|
||||||
slow down texture generation a little bit, but in some cases
|
disable use of the MIT shared memory extension. This will slow down
|
||||||
it seems to be necessary due to a bug that manifests as messed
|
texture generation a little bit, but in some cases it seems to be
|
||||||
icons and textures.
|
necessary due to a bug that manifests as messed icons and textures.
|
||||||
|
|
||||||
--disable-motif disable support for mwm hints
|
--disable-motif
|
||||||
|
disable support for mwm window manager hints
|
||||||
|
|
||||||
--enable-gnome enable support for stuff needed by GNOME
|
--enable-openlook
|
||||||
(GNOME compliant bla bla bla)
|
enable support for OPEN LOOK(tm) window manager hints
|
||||||
|
|
||||||
--enable-kde enable support for kde/kwm hints
|
--enable-gnome
|
||||||
|
enable support for GNOME window manager hints
|
||||||
|
|
||||||
--enable-lite remove things that are already supported in desktop
|
--enable-kde
|
||||||
environments, like KDE and GNOME. Disabled things
|
enable support for kde/kwm window manager hints
|
||||||
are: window list, root applications menu,
|
|
||||||
multiple window selection. Note that you will not
|
|
||||||
be able to exit Window Maker from itself anymore;
|
|
||||||
you will have to use kill with the SIGTERM signal
|
|
||||||
or exit it from KDE.
|
|
||||||
|
|
||||||
--enable-modelock XKB language status lock support. If you don't know
|
--enable-lite
|
||||||
what it is you probably don't need it.
|
remove things that are already supported in desktop environments,
|
||||||
|
like KDE and GNOME. Disabled things are: window list, root
|
||||||
|
applications menu, multiple window selection. Note that you will not
|
||||||
|
be able to exit Window Maker from itself anymore; you will have to
|
||||||
|
use kill with the SIGTERM signal or exit it from KDE. It is not
|
||||||
|
advisable to enable it.
|
||||||
|
|
||||||
--enable-sound enable support of sound effects module
|
--enable-modelock
|
||||||
|
XKB language status lock support. If you don't know what it is you
|
||||||
|
probably don't need it.
|
||||||
|
|
||||||
--disable-xpm disables use of the XPM library even if it is available on
|
--enable-sound
|
||||||
your system.
|
enable support of sound effects module
|
||||||
|
|
||||||
--disable-png disables use of PNG library
|
--disable-xpm
|
||||||
|
disables use of the XPM library even if it is available on your
|
||||||
|
system.
|
||||||
|
|
||||||
--disable-tiff disable use of TIFF library
|
--disable-png
|
||||||
|
disables use of PNG library
|
||||||
|
|
||||||
--disable-gif disable use of GIF library
|
--disable-tiff
|
||||||
|
disable use of TIFF library
|
||||||
|
|
||||||
--disable-jpeg disable use of JPEG library
|
--disable-gif
|
||||||
|
disable use of GIF library
|
||||||
|
|
||||||
--disable-shape disables shaped windows (for oclock, xeyes etc.)
|
--disable-jpeg
|
||||||
|
disable use of JPEG library
|
||||||
|
|
||||||
--enable-debug adds extra debugging information. Do not use it
|
--disable-shape
|
||||||
unless you're debugging Window Maker.
|
disables shaped windows (for oclock, xeyes etc.)
|
||||||
|
|
||||||
|
--enable-debug
|
||||||
|
Do not use it unless you know what you're doing.
|
||||||
|
|
||||||
|
|
||||||
PLATFORM SPECIFIC NOTES:
|
PLATFORM SPECIFIC NOTES:
|
||||||
@@ -194,27 +210,48 @@ PLATFORM SPECIFIC NOTES:
|
|||||||
If you have a Ultra Creator 3D or some other machine with high-end
|
If you have a Ultra Creator 3D or some other machine with high-end
|
||||||
graphics, be sure to start the X server with the default visual
|
graphics, be sure to start the X server with the default visual
|
||||||
set to 24bpp or you might experience problems with mangled colors.
|
set to 24bpp or you might experience problems with mangled colors.
|
||||||
This is a bug and will be fixed.
|
This is a wmaker bug and will be fixed.
|
||||||
|
|
||||||
- RedHat Linux
|
- GNU/Linux in general
|
||||||
Make sure you don't have the LANG and LINGUAS environment variables
|
Make sure you have /usr/local/lib in /etc/ld.so.conf and that you
|
||||||
set to en_RN. Also, make sure you have /usr/local/bin in your
|
run ldconfig after installing.
|
||||||
PATH environment variable, as for some mysterious reason the folks
|
|
||||||
at RedHat did not include it in the default configuration files
|
- RedHat GNU/Linux
|
||||||
in RH 5.{0,1}.
|
RedHat systems have several annoying problems. If you use it,
|
||||||
Check the TROUBLESHOOTING section if you have problems with libtool.
|
be sure to follow the steps below or Window Maker will not work:
|
||||||
Before trying to install, uninstall libtool-1.2b and install
|
|
||||||
libtool-1.2, which you can get from ftp.gnu.org or it's mirrors.
|
* make sure you don't have the LANG and LINGUAS environment variables
|
||||||
|
set to en_RN;
|
||||||
|
|
||||||
|
* make sure you have /usr/local/bin in your PATH environment
|
||||||
|
variable, as for some mysterious reason the folks at RedHat did not
|
||||||
|
include it in the default configuration files in RH 5.x;
|
||||||
|
|
||||||
|
* make sure you have /usr/local/lib in /etc/ld.so.conf before running
|
||||||
|
ldconfig;
|
||||||
|
|
||||||
|
* if you have problems that mention an error message with --no-reexec
|
||||||
|
uninstall libtool-1.2b and install libtool-1.2 instead. libtool-1.2
|
||||||
|
can be found in ftp.gnu.org Also read the TROUBLESHOOTING section;
|
||||||
|
|
||||||
|
* if you installed the Window Maker package from RedHat and are
|
||||||
|
installing a new version of it by hand (compiling yourself), uninstall
|
||||||
|
the package from RedHat before.
|
||||||
|
|
||||||
|
* make a symbolic link from /usr/X11 to /usr/X11R6
|
||||||
|
(type ln -s /usr/X11R6 /usr/X11 ) and make sure you have a symbolic
|
||||||
|
link from /usr/include/X11 to /usr/X11R6/include/X11 (if not,
|
||||||
|
type ln -s /usr/X11R6/include/X11 /usr/include/X11 )
|
||||||
|
|
||||||
- PowerPC MkLinux
|
- PowerPC MkLinux
|
||||||
You will need to have the latest version of Xpmac. Older versions
|
You will need to have the latest version of Xpmac. Older versions
|
||||||
seem to have bugs that cause the system to hang.
|
seem to have bugs that cause the system to hang.
|
||||||
|
|
||||||
- Debian Linux
|
- Debian GNU/Linux
|
||||||
If you want JPEG and TIFF support, make sure you have libtiff-dev
|
If you want JPEG and TIFF support, make sure you have libtiff-dev
|
||||||
and libjpeg-dev installed.
|
and libjpeg-dev installed.
|
||||||
|
|
||||||
- SuSE Linux
|
- SuSE GNU/Linux
|
||||||
If you installed the Window Maker package from SuSE,
|
If you installed the Window Maker package from SuSE,
|
||||||
uninstall it before trying to compile wmaker or you
|
uninstall it before trying to compile wmaker or you
|
||||||
might have problems.
|
might have problems.
|
||||||
@@ -225,7 +262,6 @@ PLATFORM SPECIFIC NOTES:
|
|||||||
textures, do not use textures in titlebars. Or use a different
|
textures, do not use textures in titlebars. Or use a different
|
||||||
X server.
|
X server.
|
||||||
|
|
||||||
|
|
||||||
INSTALLATION:
|
INSTALLATION:
|
||||||
=============
|
=============
|
||||||
|
|
||||||
@@ -246,14 +282,15 @@ Build Window Maker
|
|||||||
then, login as root and type:
|
then, login as root and type:
|
||||||
|
|
||||||
make install
|
make install
|
||||||
|
ldconfig
|
||||||
|
|
||||||
or if you want to strip the debugging symbols from the binaries 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
|
||||||
|
ldconfig
|
||||||
|
|
||||||
This will build and install Window Maker with default parameters.
|
This will build and install Window Maker with default parameters.
|
||||||
If you run on a Linux system, also run ldconfig -v
|
|
||||||
|
|
||||||
If you want to customize some compile-time options, you can do the
|
If you want to customize some compile-time options, you can do the
|
||||||
following.
|
following.
|
||||||
@@ -349,10 +386,9 @@ ltconfig: unrecognized option `--no-reexec'
|
|||||||
Try `ltconfig --help' for more information.
|
Try `ltconfig --help' for more information.
|
||||||
configure: error: libtool configure failed
|
configure: error: libtool configure failed
|
||||||
|
|
||||||
remove the --no-reexec option from aclocal.m4 and libPropList/aclocal/m4
|
remove the --no-reexec option from aclocal.m4 and libPropList/aclocal.m4
|
||||||
and reconfigure
|
and reconfigure
|
||||||
Also make sure the autoconf and automake versions you have installed are at
|
Also make sure the autoconf and automake versions you have installed are:
|
||||||
least:
|
|
||||||
autoconf 2.12
|
autoconf 2.12
|
||||||
automake 1.3
|
automake 1.3
|
||||||
libtool 1.2
|
libtool 1.2
|
||||||
|
|||||||
54
Install
54
Install
@@ -2,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
# WindowMaker configuration and compilation script.
|
# WindowMaker configuration and compilation script.
|
||||||
#
|
#
|
||||||
# Copyright (c) 1997, 1998 Alfredo K. Kojima
|
# Copyright (c) 1997, 1998, 1999 Alfredo K. Kojima
|
||||||
#
|
#
|
||||||
|
|
||||||
export LINGUAS;LINGUAS=""
|
export LINGUAS;LINGUAS=""
|
||||||
@@ -57,6 +57,35 @@ if [ "$rtfm" != y ]; then
|
|||||||
echo "Please read the INSTALL file before installing"
|
echo "Please read the INSTALL file before installing"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
echo "Are you lying?"
|
||||||
|
echo -n "<y/n> "
|
||||||
|
read rtfm
|
||||||
|
if [ "$rtfm" != n ]; then
|
||||||
|
echo "What a shame!"
|
||||||
|
echo "Please read the INSTALL file before installing"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
echo "Do you *swear* that you really read the INSTALL file?"
|
||||||
|
echo -n "<y/n> "
|
||||||
|
read rtfm
|
||||||
|
if [ "$rtfm" != y ]; then
|
||||||
|
echo "Please read the INSTALL file before installing"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
echo "Last chance. You will not get help if you have some problem"
|
||||||
|
echo "because you didn't read that file. Even if your computer explodes."
|
||||||
|
echo "Do you *really* read it?"
|
||||||
|
echo -n "<y/n> "
|
||||||
|
read rtfm
|
||||||
|
if [ "$rtfm" != y ]; then
|
||||||
|
echo "Please read the INSTALL file before installing"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
echo "Ok, you have been warned."
|
||||||
|
echo
|
||||||
|
perai
|
||||||
|
|
||||||
|
|
||||||
if test "$USER" != "root"; then
|
if test "$USER" != "root"; then
|
||||||
echo
|
echo
|
||||||
@@ -78,13 +107,6 @@ echo -n "<y/n> [n] "
|
|||||||
read kde
|
read kde
|
||||||
if [ "$kde" = y -o "$kde" = Y ]; then
|
if [ "$kde" = y -o "$kde" = Y ]; then
|
||||||
OPTIONS="$OPTIONS --enable-kde"
|
OPTIONS="$OPTIONS --enable-kde"
|
||||||
echo "Do you want to disable features that become duplicated with"
|
|
||||||
echo "KDE support (like root menus)?"
|
|
||||||
echo -n "<y/n> [n] "
|
|
||||||
read lite
|
|
||||||
if [ "$lite" = y -o "lite" = Y ]; then
|
|
||||||
OPTIONS="$OPTIONS --enable-lite"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
######################## GNOME
|
######################## GNOME
|
||||||
@@ -96,6 +118,15 @@ if [ "$gnome" = y -o "$gnome" = Y ]; then
|
|||||||
OPTIONS="$OPTIONS --enable-gnome"
|
OPTIONS="$OPTIONS --enable-gnome"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
######################## OLWM
|
||||||
|
echo
|
||||||
|
echo "Do you want OPEN LOOK(tm)/olwm support?"
|
||||||
|
echo -n "<y/n> [n] "
|
||||||
|
read olwm
|
||||||
|
if [ "$olwm" = y -o "$olwm" = Y ]; then
|
||||||
|
OPTIONS="$OPTIONS --enable-openlook"
|
||||||
|
fi
|
||||||
|
|
||||||
######################## NLS
|
######################## NLS
|
||||||
echo
|
echo
|
||||||
echo "Do you want National Language Support?"
|
echo "Do you want National Language Support?"
|
||||||
@@ -184,8 +215,9 @@ while [ $done = 0 ]; do
|
|||||||
done=1
|
done=1
|
||||||
fi
|
fi
|
||||||
echo
|
echo
|
||||||
echo " $PREFIX/bin must be in the PATH environment variable of all users"
|
echo " $PREFIX/bin must be in the PATH environment variable"
|
||||||
echo "will who use Window Maker"
|
echo "of all users who will use Window Maker"
|
||||||
|
echo
|
||||||
echo " Make sure $PREFIX/lib is in the /etc/ld.so.conf file"
|
echo " Make sure $PREFIX/lib is in the /etc/ld.so.conf file"
|
||||||
perai
|
perai
|
||||||
done
|
done
|
||||||
@@ -227,7 +259,7 @@ echo "--------------------------"
|
|||||||
perform make install
|
perform make install
|
||||||
|
|
||||||
if [ `uname -s` = "Linux" ]; then
|
if [ `uname -s` = "Linux" ]; then
|
||||||
/sbin/ldconfig -v
|
/sbin/ldconfig
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
|||||||
12
MIRRORS
12
MIRRORS
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
WindowMaker FTP Mirror Sites
|
Window Maker FTP Mirror Sites
|
||||||
============================
|
=======-=====================
|
||||||
|
|
||||||
Official Site (USA):
|
Official Site (USA):
|
||||||
--------------------
|
--------------------
|
||||||
@@ -43,8 +43,8 @@ ftp://ftp.ameth.org/pub/mirrors/ftp.windowmaker.org/
|
|||||||
Contact: Chase Phillips <shepard@ameth.org>
|
Contact: Chase Phillips <shepard@ameth.org>
|
||||||
|
|
||||||
|
|
||||||
Third Party WindowMaker Distribution Packages
|
Third Party Window Maker Distribution Packages
|
||||||
=============================================
|
==============================================
|
||||||
|
|
||||||
Debian GNU/Linux (deb)
|
Debian GNU/Linux (deb)
|
||||||
----------------------
|
----------------------
|
||||||
@@ -54,8 +54,8 @@ Sites:
|
|||||||
http://master.debian.org/~mmagallo/packages/wmaker/
|
http://master.debian.org/~mmagallo/packages/wmaker/
|
||||||
|
|
||||||
|
|
||||||
RedHat Linux (RPM)
|
RedHat GNU/Linux (RPM)
|
||||||
------------------
|
----------------------
|
||||||
|
|
||||||
Contact: Jim Knoble <jmknoble@pobox.com>
|
Contact: Jim Knoble <jmknoble@pobox.com>
|
||||||
Sites:
|
Sites:
|
||||||
|
|||||||
12
Makefile.am
12
Makefile.am
@@ -3,4 +3,14 @@
|
|||||||
SUBDIRS = libPropList 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\
|
||||||
mkpatch README.KDE README.GNOME
|
mkpatch README.KDE README.GNOME WindowMaker.lsm.in\
|
||||||
|
docklib-0.0.tar.gz
|
||||||
|
|
||||||
|
|
||||||
|
windowmaker.lsm:
|
||||||
|
size=`wc -c $(distdir).tar.gz|cut -d\ -f1`;\
|
||||||
|
size=`echo scale=2\;$$size/1048576|bc`;\
|
||||||
|
sed -e "s/VERSION/"$(VERSION)"/" \
|
||||||
|
-e "s/DATE/`date +%d%b%Y|tr a-z A-Z`/"\
|
||||||
|
-e "s/SIZE/$$size M/"\
|
||||||
|
WindowMaker.lsm.in > WindowMaker.lsm
|
||||||
|
|||||||
19
Makefile.in
19
Makefile.in
@@ -65,8 +65,6 @@ DFLAGS = @DFLAGS@
|
|||||||
GFXFLAGS = @GFXFLAGS@
|
GFXFLAGS = @GFXFLAGS@
|
||||||
GFXLFLAGS = @GFXLFLAGS@
|
GFXLFLAGS = @GFXLFLAGS@
|
||||||
GFXLIBS = @GFXLIBS@
|
GFXLIBS = @GFXLIBS@
|
||||||
I18N = @I18N@
|
|
||||||
I18N_MB = @I18N_MB@
|
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
LD = @LD@
|
LD = @LD@
|
||||||
@@ -79,25 +77,20 @@ NLSDIR = @NLSDIR@
|
|||||||
NM = @NM@
|
NM = @NM@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
REDUCE_APPICONS = @REDUCE_APPICONS@
|
|
||||||
SHAPE = @SHAPE@
|
|
||||||
SOUND = @SOUND@
|
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
WPMOFILES = @WPMOFILES@
|
WPMOFILES = @WPMOFILES@
|
||||||
XCFLAGS = @XCFLAGS@
|
XCFLAGS = @XCFLAGS@
|
||||||
XGETTEXT = @XGETTEXT@
|
XGETTEXT = @XGETTEXT@
|
||||||
XLFLAGS = @XLFLAGS@
|
XLFLAGS = @XLFLAGS@
|
||||||
XLIBS = @XLIBS@
|
XLIBS = @XLIBS@
|
||||||
XSHM = @XSHM@
|
|
||||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||||
X_LOCALE = @X_LOCALE@
|
|
||||||
pixmapdir = @pixmapdir@
|
|
||||||
wprefsdir = @wprefsdir@
|
wprefsdir = @wprefsdir@
|
||||||
|
|
||||||
SUBDIRS = libPropList 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\
|
||||||
mkpatch README.KDE README.GNOME
|
mkpatch README.KDE README.GNOME WindowMaker.lsm.in\
|
||||||
|
docklib-0.0.tar.gz
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
CONFIG_HEADER = ./src/config.h
|
CONFIG_HEADER = ./src/config.h
|
||||||
@@ -315,6 +308,14 @@ installdirs mostlyclean-generic distclean-generic clean-generic \
|
|||||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
||||||
|
|
||||||
|
|
||||||
|
windowmaker.lsm:
|
||||||
|
size=`wc -c $(distdir).tar.gz|cut -d\ -f1`;\
|
||||||
|
size=`echo scale=2\;$$size/1048576|bc`;\
|
||||||
|
sed -e "s/VERSION/"$(VERSION)"/" \
|
||||||
|
-e "s/DATE/`date +%d%b%Y|tr a-z A-Z`/"\
|
||||||
|
-e "s/SIZE/$$size M/"\
|
||||||
|
WindowMaker.lsm.in > WindowMaker.lsm
|
||||||
|
|
||||||
# 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:
|
||||||
|
|||||||
56
NEWS
56
NEWS
@@ -2,13 +2,45 @@
|
|||||||
NEWS for veteran Window Maker users
|
NEWS for veteran Window Maker users
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
--- 0.51.0
|
||||||
|
|
||||||
|
SIGHUP will exit wmaker instead of restarting it!!! This is because
|
||||||
|
GNOME expects the window manager to exit instead of restarting...
|
||||||
|
Complaints should go to gnome people. SIGUSR1 will restart wmaker now.
|
||||||
|
|
||||||
|
|
||||||
|
docklib
|
||||||
|
-------
|
||||||
|
|
||||||
|
docklib is a little library for making dock applets. It's in the
|
||||||
|
docklib-0.0.tar.gz file. Unpack it and read the README file there.
|
||||||
|
|
||||||
|
|
||||||
|
Option Changes
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Removed OnTopTransients option
|
||||||
|
|
||||||
|
Added OpenTransientOnOwnerWorkspace
|
||||||
|
|
||||||
|
|
||||||
|
Olwm Hint Support
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
OPEN LOOK(tm)/olwm hints support was added.
|
||||||
|
|
||||||
|
Read the appropriate section in the README file.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- 0.50.1
|
--- 0.50.1
|
||||||
|
|
||||||
New option for WorkspaceBack. mpixmap is the same as spixmap, but
|
New option for WorkspaceBack. mpixmap is the same as spixmap, but
|
||||||
it will scale the pixmap by keeping the aspect ratio (maximize or maxpect).
|
it will scale the pixmap by keeping the aspect ratio (maximize or maxpect).
|
||||||
The option only works for workspace backgrounds.
|
The option only works for workspace backgrounds.
|
||||||
|
|
||||||
Also added IGNORE_NOPPOSITION compile time flag, which is equivalent
|
Also added IGNORE_PPOSITION compile time flag, which is equivalent
|
||||||
to NoPPosition from fvwm.
|
to NoPPosition from fvwm.
|
||||||
|
|
||||||
|
|
||||||
@@ -142,28 +174,6 @@ big value, will make the Clip to practically do not auto raise unless clicked,
|
|||||||
but to be automatically lowered after AUTO_LOWER_DELAY (ms) when leaved.
|
but to be automatically lowered after AUTO_LOWER_DELAY (ms) when leaved.
|
||||||
|
|
||||||
|
|
||||||
AutoRaiseLower option for the Clip. This allows automatic Raise/Lower of the
|
|
||||||
Clip icons when the mouse pointer enter/leave the Clip. To avoid unwanted
|
|
||||||
raising/lowering there is a time threshold before raising/lowering.
|
|
||||||
The thresholds can be changed in wconfig.h by changing one or both of
|
|
||||||
AUTO_LOWER_DELAY and AUTO_RAISE_DELAY (expressed in miliseconds).
|
|
||||||
For example if you set AUTO_RAISE_DELAY to 0, then the Clip will be raised as
|
|
||||||
soon as the mouse pointer enters it's area. Setting AUTO_RAISE_DELAY to a very
|
|
||||||
big value, will make the Clip to practically do not auto raise unless clicked,
|
|
||||||
but to be automatically lowered after AUTO_LOWER_DELAY (ms) when leaved.
|
|
||||||
|
|
||||||
|
|
||||||
AutoRaiseLower option for the Clip. This allows automatic Raise/Lower of the
|
|
||||||
Clip icons when the mouse pointer enter/leave the Clip. To avoid unwanted
|
|
||||||
raising/lowering there is a time threshold before raising/lowering.
|
|
||||||
The thresholds can be changed in wconfig.h by changing one or both of
|
|
||||||
AUTO_LOWER_DELAY and AUTO_RAISE_DELAY (expressed in miliseconds).
|
|
||||||
For example if you set AUTO_RAISE_DELAY to 0, then the Clip will be raised as
|
|
||||||
soon as the mouse pointer enters it's area. Setting AUTO_RAISE_DELAY to a very
|
|
||||||
big value, will make the Clip to practically do not auto raise unless clicked,
|
|
||||||
but to be automatically lowered after AUTO_LOWER_DELAY (ms) when leaved.
|
|
||||||
|
|
||||||
|
|
||||||
New ThemePack Format
|
New ThemePack Format
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
|||||||
51
README
51
README
@@ -41,27 +41,20 @@
|
|||||||
Description
|
Description
|
||||||
===========
|
===========
|
||||||
|
|
||||||
Window Maker is a window manager designed to emulate the look and feel of
|
Window Maker is the GNU window manager for the X Window System. It was
|
||||||
part of the NEXTSTEP(tm) GUI. It's supposed to be relatively fast and small,
|
designed to emulate the look and feel of part of the NEXTSTEP(tm) GUI. It's
|
||||||
feature rich, easy to configure and easy to use, with a simple and elegant
|
supposed to be relatively fast and small, feature rich, easy to configure and
|
||||||
appearance borrowed from NEXTSTEP(tm).
|
easy to use, with a simple and elegant appearance borrowed from NEXTSTEP(tm).
|
||||||
|
|
||||||
Window Maker was designed keeping integration with GNUstep in mind and is the
|
Window Maker was designed keeping integration with GNUstep in mind and is the
|
||||||
"official" window manager for it. Read more about GNUstep further on this
|
"official" window manager for it. Read more about GNUstep further on this
|
||||||
file.
|
file.
|
||||||
|
|
||||||
\begin{marketing babble}
|
Hints (information given by applications to integrate well with the window
|
||||||
Window Maker is also KDE and GNOME compliant, which means you can use
|
manager) for Motif(tm), OPEN LOOK(tm), KDE and GNOME are also supported.
|
||||||
it as the window manager of these desktop environments and even fully
|
So you can replace any of the window managers for these environments
|
||||||
replace kwm with wmaker if you use KDE. In that case, you would benefit
|
with Window Maker while keeping most, if not all, of the window manager
|
||||||
from the best of both worlds, being able to take advantage of the usability
|
functionality.
|
||||||
and unique features of Window Maker, while still having access to KDE
|
|
||||||
features such as the panel, pager and tight integration with all KDE
|
|
||||||
applications. I've known of many cases where people keep switching KDE
|
|
||||||
and Window Maker depending on their mood or needs of the day, but now
|
|
||||||
you don't need that anymore :)
|
|
||||||
As GNOME components become more available, the same can be said about it.
|
|
||||||
\end{marketing babble}
|
|
||||||
|
|
||||||
Window Maker was previously called WindowMaker.
|
Window Maker was previously called WindowMaker.
|
||||||
|
|
||||||
@@ -136,6 +129,7 @@ options/features and other stuff.
|
|||||||
* po/ has message catalogs wich are the translated versions of the messages
|
* po/ has message catalogs wich are the translated versions of the messages
|
||||||
displayed by Window Maker.
|
displayed by Window Maker.
|
||||||
|
|
||||||
|
* docklib-x.x.tar.gz a library for writing dockapps
|
||||||
|
|
||||||
|
|
||||||
Mailing List
|
Mailing List
|
||||||
@@ -203,6 +197,31 @@ Note that you must compile Window Maker with the --enable-sound configure
|
|||||||
flag and set the DisableSound option to NO.
|
flag and set the DisableSound option to NO.
|
||||||
|
|
||||||
|
|
||||||
|
OpenL**k support
|
||||||
|
================
|
||||||
|
|
||||||
|
I guess many users, mainly from the academic world, have to use
|
||||||
|
applications written using the OpenL**k toolkits, so having support
|
||||||
|
for these apps must be of some use.
|
||||||
|
|
||||||
|
To enable, use --enable-openlook when doing the configure. Note that
|
||||||
|
not everything is implemented.
|
||||||
|
|
||||||
|
Implemented stuff include decoration hints and the push-pin. Not implemented
|
||||||
|
stuff include _SUN_WINDOW_STATE (the compose led state stuff), header (not
|
||||||
|
sure what's it) and footer strings.
|
||||||
|
|
||||||
|
Please give me feedback if something doesn't work. If the feature is
|
||||||
|
already implemented, but is not working because of a bug, I'll try to
|
||||||
|
have that fixed. If it's a non-implemented feature and you mention that
|
||||||
|
it's important (ie: not just cosmetical), I'll consider implementing it.
|
||||||
|
|
||||||
|
The "out" state of the pushpin is emulated as a pushed-in close button.
|
||||||
|
Just click on the button to make it pushed-out, which corresponds
|
||||||
|
to the pinned-in state of the pushpin. If you push again in the pushed-out
|
||||||
|
close button, it will act as a normal close button: it will close the window.
|
||||||
|
|
||||||
|
|
||||||
Performance Tuning
|
Performance Tuning
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
|||||||
@@ -9,11 +9,10 @@ Status of GNOME support
|
|||||||
|
|
||||||
GNOME window manager protocols seem to be a work in progress.
|
GNOME window manager protocols seem to be a work in progress.
|
||||||
Things still change fairly frequently, so, the stuff implemented
|
Things still change fairly frequently, so, the stuff implemented
|
||||||
may not reflect the protocol-of-the-day. If something doesn't
|
may not reflect the latest protocol. If something doesn't work,
|
||||||
work, that's because the protocols have changed again and I still
|
that's probably because the protocols have changed again and I still
|
||||||
didn't have time to reimplement everything or noticed that it
|
didn't have time to reimplement everything or noticed that it
|
||||||
changed (there are no version numbers in the specification).
|
changed. If that happens, please tell me exactly what doesn't work.
|
||||||
If that happens, please tell me exactly what doesn't work.
|
|
||||||
|
|
||||||
Other than that, the so called "GNOME Window Manager Compliance - How to
|
Other than that, the so called "GNOME Window Manager Compliance - How to
|
||||||
write a GNOME compliant Window Manager" document, says this:
|
write a GNOME compliant Window Manager" document, says this:
|
||||||
@@ -48,3 +47,4 @@ Also, do not disable mwm hints support (they are enabled by default).
|
|||||||
|
|
||||||
I am not sure, but using --enable-lite or DisableWSMouseActions=YES;
|
I am not sure, but using --enable-lite or DisableWSMouseActions=YES;
|
||||||
might be a bad idea in case of GNOME.
|
might be a bad idea in case of GNOME.
|
||||||
|
|
||||||
|
|||||||
35
README.KDE
35
README.KDE
@@ -10,8 +10,8 @@ Window Maker, if you think these advantages are worthy:
|
|||||||
|
|
||||||
Window Maker KWM
|
Window Maker KWM
|
||||||
=============================================================================
|
=============================================================================
|
||||||
Looks NEXTSTEP/NEXTSTEP enhanced Original, but reminds
|
Looks NEXTSTEP(tm)/NEXTSTEP(tm) Original, but reminds
|
||||||
Weendoze
|
enhanced Windows(tm)
|
||||||
|
|
||||||
Decoration solid, gradient, multi-color solid, vertical and
|
Decoration solid, gradient, multi-color solid, vertical and
|
||||||
Textures gradient, pixmaps, textured horizontal gradient,
|
Textures gradient, pixmaps, textured horizontal gradient,
|
||||||
@@ -23,11 +23,13 @@ Textures gradient, pixmaps, textured horizontal gradient,
|
|||||||
Configurable No Yes, but not totally
|
Configurable No Yes, but not totally
|
||||||
Titlebar Buttons
|
Titlebar Buttons
|
||||||
|
|
||||||
Window Specific Yes No
|
Mini CLI Yes, but limited Yes
|
||||||
Configuration
|
|
||||||
|
|
||||||
Quick Keyboard Yes No
|
Window Specific Yes In KDE 1.1, yes.
|
||||||
Navigation
|
Configuration In KDE 1.0, no.
|
||||||
|
|
||||||
|
Quick Keyboard Yes In KDE 1.1, yes
|
||||||
|
Navigation In KDE 1.0, no.
|
||||||
|
|
||||||
Pager KDE pagers will work as Yes
|
Pager KDE pagers will work as Yes
|
||||||
well as GNOME pagers
|
well as GNOME pagers
|
||||||
@@ -35,11 +37,12 @@ Pager KDE pagers will work as Yes
|
|||||||
Session Not yet supported, but Yes, old (pre-X11R6) style
|
Session Not yet supported, but Yes, old (pre-X11R6) style
|
||||||
Management X11R6 style SM is being worked.
|
Management X11R6 style SM is being worked.
|
||||||
|
|
||||||
Dock kpanel and the Dock kpanel
|
Dock kpanel, GNOME panel and Dock kpanel
|
||||||
|
|
||||||
GNOME support Yes No
|
GNOME support Yes No
|
||||||
|
|
||||||
Memory Usage(1) 1.85Mb Lite: 1.79Mb 3.13Mb
|
Memory Usage(1) 1.85Mb Lite: 1.79Mb In KDE 1.0, 3.13Mb
|
||||||
|
In KDE 1.1, probably more
|
||||||
|
|
||||||
|
|
||||||
(1) Memory usage was tested by running wmaker and kwm at the same machine
|
(1) Memory usage was tested by running wmaker and kwm at the same machine
|
||||||
@@ -56,15 +59,20 @@ To enable KDE support in Window Maker, you must compile it after
|
|||||||
configuring it as follows:
|
configuring it as follows:
|
||||||
./configure --enable-kde --enable-lite
|
./configure --enable-kde --enable-lite
|
||||||
|
|
||||||
The --enable-lite flag is optional, but will reduce some memory
|
The --enable-lite flag is *optional*, but will reduce some memory
|
||||||
usage by removing things that are duplicated in Window Maker and KDE.
|
usage by removing things that are duplicated in Window Maker and KDE.
|
||||||
|
Do not enable it if you don't care about a few dozen kbytes of memory
|
||||||
|
savings (see table above). It won't make KDE or Window Maker any
|
||||||
|
slower/faster.
|
||||||
|
|
||||||
Then, open WPrefs and turn on the "Disable mouse actions"
|
Then, open WPrefs and turn on the "Disable mouse actions"
|
||||||
option in the Mouse related options panel. Or enable the
|
option in the Mouse related options panel. Or enable the
|
||||||
DisableWSMouseActions option by hand.
|
DisableWSMouseActions option by hand.
|
||||||
|
|
||||||
Then, just replace kwm with wmaker in your startkde script.
|
Then, just replace kwm with wmaker in your startkde script.
|
||||||
|
If you are going to use Window Makers sound server, comment out
|
||||||
|
kwmsound in startkde. Also if wmaker sets your root window
|
||||||
|
background, comment out kbgndwm, kde's wallpaper setter.
|
||||||
|
|
||||||
Make sure to disable workspace background setting in KDE. If you
|
Make sure to disable workspace background setting in KDE. If you
|
||||||
wont be using Window Maker themes anyway, you can set
|
wont be using Window Maker themes anyway, you can set
|
||||||
@@ -109,3 +117,10 @@ positioning/maximization code and kpanel's position.
|
|||||||
* It seems kpanel (and maybe KDE in general) doesn't like dynamically
|
* It seems kpanel (and maybe KDE in general) doesn't like dynamically
|
||||||
changing the number of workspaces. So, don't create or destroy workspaces
|
changing the number of workspaces. So, don't create or destroy workspaces
|
||||||
while running on KDE, unless you really need.
|
while running on KDE, unless you really need.
|
||||||
|
|
||||||
|
* If kpanel, kwmpager or kpager becomes confused about the number of
|
||||||
|
windows present, restart them.
|
||||||
|
|
||||||
|
* Wmaker opens windows by default under/over the panel, when the panel is
|
||||||
|
at top or left of screen. Use the GUI configuration tool WPrefs to change
|
||||||
|
this.
|
||||||
|
|||||||
7
TODO
7
TODO
@@ -2,13 +2,10 @@
|
|||||||
Do ASAP:
|
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.
|
|
||||||
- fix RemakeStackList() to account for transient windows
|
- fix RemakeStackList() to account for transient windows
|
||||||
- make unhide app map windows in the same stacking order they were before
|
|
||||||
hiding
|
|
||||||
- blink border of clients with UrgencyHint set between red and black
|
- blink border of clients with UrgencyHint set between red and black
|
||||||
- finish session stuff
|
- finish session stuff
|
||||||
- fix scroller to not jump while dragging knob (lock setparameters() while dragging?)
|
- fix scroller to not jump while dragging knob
|
||||||
- add multiline support for balloons
|
- add multiline support for balloons
|
||||||
- move/add balloon to WINGs
|
- move/add balloon to WINGs
|
||||||
- finish XStandardColormap stuff in wrlib
|
- finish XStandardColormap stuff in wrlib
|
||||||
@@ -26,8 +23,6 @@ Need to do:
|
|||||||
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.
|
||||||
+ investigate memory leaks
|
+ investigate memory leaks
|
||||||
- make Docked apps with WM_CLIENT_MACHINE be launched from respective
|
|
||||||
machines (also put a marking showing it's remote launched)
|
|
||||||
- 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 wchar? unicode?
|
- remake internal string processing to use wchar? unicode?
|
||||||
|
|||||||
@@ -1,3 +1,15 @@
|
|||||||
|
|
||||||
|
changes since wmaker 0.50.2:
|
||||||
|
............................
|
||||||
|
|
||||||
|
- added wsetabort() - look WUtil.h
|
||||||
|
- fixed bug in WMList resize
|
||||||
|
- added notification sending when changing textfield programatically
|
||||||
|
- removed WMHideWindow()
|
||||||
|
- fixed bug in WMCloseWindow()
|
||||||
|
- added textfield selection patch
|
||||||
|
- added color panel code
|
||||||
|
|
||||||
changes since wmaker 0.20.3:
|
changes since wmaker 0.20.3:
|
||||||
............................
|
............................
|
||||||
|
|
||||||
|
|||||||
@@ -18,9 +18,7 @@ lib_LIBRARIES = libWINGs.a
|
|||||||
|
|
||||||
include_HEADERS = WINGs.h WUtil.h WINGsP.h
|
include_HEADERS = WINGs.h WUtil.h WINGsP.h
|
||||||
|
|
||||||
bin_SCRIPTS = WINGs-flags
|
noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget testcolorpanel
|
||||||
|
|
||||||
noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget
|
|
||||||
|
|
||||||
testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h
|
testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h
|
||||||
|
|
||||||
@@ -40,6 +38,10 @@ wmfile_SOURCES = wmfile.c
|
|||||||
|
|
||||||
wmfile_LDADD = libWINGs.a $(LIBLIST)
|
wmfile_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
|
testcolorpanel_SOURCES = testcolorpanel.c
|
||||||
|
|
||||||
|
testcolorpanel_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
|
|
||||||
wmquery_SOURCES = wmquery.c
|
wmquery_SOURCES = wmquery.c
|
||||||
|
|
||||||
@@ -61,6 +63,7 @@ libWINGs_a_SOURCES = \
|
|||||||
wbrowser.c \
|
wbrowser.c \
|
||||||
wbutton.c \
|
wbutton.c \
|
||||||
wcolor.c \
|
wcolor.c \
|
||||||
|
wcolorpanel.c \
|
||||||
wcolorwell.c \
|
wcolorwell.c \
|
||||||
wevent.c \
|
wevent.c \
|
||||||
wfilepanel.c \
|
wfilepanel.c \
|
||||||
|
|||||||
@@ -65,8 +65,6 @@ DFLAGS = @DFLAGS@
|
|||||||
GFXFLAGS = @GFXFLAGS@
|
GFXFLAGS = @GFXFLAGS@
|
||||||
GFXLFLAGS = @GFXLFLAGS@
|
GFXLFLAGS = @GFXLFLAGS@
|
||||||
GFXLIBS = @GFXLIBS@
|
GFXLIBS = @GFXLIBS@
|
||||||
I18N = @I18N@
|
|
||||||
I18N_MB = @I18N_MB@
|
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
LD = @LD@
|
LD = @LD@
|
||||||
@@ -79,19 +77,13 @@ NLSDIR = @NLSDIR@
|
|||||||
NM = @NM@
|
NM = @NM@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
REDUCE_APPICONS = @REDUCE_APPICONS@
|
|
||||||
SHAPE = @SHAPE@
|
|
||||||
SOUND = @SOUND@
|
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
WPMOFILES = @WPMOFILES@
|
WPMOFILES = @WPMOFILES@
|
||||||
XCFLAGS = @XCFLAGS@
|
XCFLAGS = @XCFLAGS@
|
||||||
XGETTEXT = @XGETTEXT@
|
XGETTEXT = @XGETTEXT@
|
||||||
XLFLAGS = @XLFLAGS@
|
XLFLAGS = @XLFLAGS@
|
||||||
XLIBS = @XLIBS@
|
XLIBS = @XLIBS@
|
||||||
XSHM = @XSHM@
|
|
||||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||||
X_LOCALE = @X_LOCALE@
|
|
||||||
pixmapdir = @pixmapdir@
|
|
||||||
wprefsdir = @wprefsdir@
|
wprefsdir = @wprefsdir@
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = no-dependencies
|
AUTOMAKE_OPTIONS = no-dependencies
|
||||||
@@ -110,9 +102,7 @@ lib_LIBRARIES = libWINGs.a
|
|||||||
|
|
||||||
include_HEADERS = WINGs.h WUtil.h WINGsP.h
|
include_HEADERS = WINGs.h WUtil.h WINGsP.h
|
||||||
|
|
||||||
bin_SCRIPTS = WINGs-flags
|
noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget testcolorpanel
|
||||||
|
|
||||||
noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget
|
|
||||||
|
|
||||||
testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h
|
testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h
|
||||||
|
|
||||||
@@ -132,6 +122,10 @@ wmfile_SOURCES = wmfile.c
|
|||||||
|
|
||||||
wmfile_LDADD = libWINGs.a $(LIBLIST)
|
wmfile_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
|
testcolorpanel_SOURCES = testcolorpanel.c
|
||||||
|
|
||||||
|
testcolorpanel_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
wmquery_SOURCES = wmquery.c
|
wmquery_SOURCES = wmquery.c
|
||||||
|
|
||||||
wmquery_LDADD = libWINGs.a $(LIBLIST)
|
wmquery_LDADD = libWINGs.a $(LIBLIST)
|
||||||
@@ -151,6 +145,7 @@ libWINGs_a_SOURCES = \
|
|||||||
wbrowser.c \
|
wbrowser.c \
|
||||||
wbutton.c \
|
wbutton.c \
|
||||||
wcolor.c \
|
wcolor.c \
|
||||||
|
wcolorpanel.c \
|
||||||
wcolorwell.c \
|
wcolorwell.c \
|
||||||
wevent.c \
|
wevent.c \
|
||||||
wfilepanel.c \
|
wfilepanel.c \
|
||||||
@@ -196,10 +191,11 @@ X_PRE_LIBS = @X_PRE_LIBS@
|
|||||||
libWINGs_a_LIBADD =
|
libWINGs_a_LIBADD =
|
||||||
libWINGs_a_OBJECTS = configuration.o international.o notification.o \
|
libWINGs_a_OBJECTS = configuration.o international.o notification.o \
|
||||||
selection.o userdefaults.o wapplication.o wbrowser.o wbutton.o wcolor.o \
|
selection.o userdefaults.o wapplication.o wbrowser.o wbutton.o wcolor.o \
|
||||||
wcolorwell.o wevent.o wfilepanel.o wframe.o wfont.o wfontpanel.o \
|
wcolorpanel.o wcolorwell.o wevent.o wfilepanel.o wframe.o wfont.o \
|
||||||
widgets.o wlabel.o wlist.o wmisc.o wpanel.o wpixmap.o wpopupbutton.o \
|
wfontpanel.o widgets.o wlabel.o wlist.o wmisc.o wpanel.o wpixmap.o \
|
||||||
wscroller.o wscrollview.o wslider.o wsplitview.o wtextfield.o wwindow.o \
|
wpopupbutton.o wscroller.o wscrollview.o wslider.o wsplitview.o \
|
||||||
wview.o error.o findfile.o hashtable.o memory.o usleep.o
|
wtextfield.o wwindow.o wview.o error.o findfile.o hashtable.o memory.o \
|
||||||
|
usleep.o
|
||||||
AR = ar
|
AR = ar
|
||||||
PROGRAMS = $(noinst_PROGRAMS)
|
PROGRAMS = $(noinst_PROGRAMS)
|
||||||
|
|
||||||
@@ -222,8 +218,11 @@ testmywidget_DEPENDENCIES = libWINGs.a \
|
|||||||
$(top_builddir)/wrlib/libwraster.la \
|
$(top_builddir)/wrlib/libwraster.la \
|
||||||
$(top_builddir)/libPropList/libPropList.la
|
$(top_builddir)/libPropList/libPropList.la
|
||||||
testmywidget_LDFLAGS =
|
testmywidget_LDFLAGS =
|
||||||
SCRIPTS = $(bin_SCRIPTS)
|
testcolorpanel_OBJECTS = testcolorpanel.o
|
||||||
|
testcolorpanel_DEPENDENCIES = libWINGs.a \
|
||||||
|
$(top_builddir)/wrlib/libwraster.la \
|
||||||
|
$(top_builddir)/libPropList/libPropList.la
|
||||||
|
testcolorpanel_LDFLAGS =
|
||||||
CFLAGS = @CFLAGS@
|
CFLAGS = @CFLAGS@
|
||||||
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
|
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
|
||||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
|
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
|
||||||
@@ -237,8 +236,8 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
|||||||
|
|
||||||
TAR = tar
|
TAR = tar
|
||||||
GZIP = --best
|
GZIP = --best
|
||||||
SOURCES = $(libWINGs_a_SOURCES) $(wtest_SOURCES) $(wmquery_SOURCES) $(wmfile_SOURCES) $(fontl_SOURCES) $(testmywidget_SOURCES)
|
SOURCES = $(libWINGs_a_SOURCES) $(wtest_SOURCES) $(wmquery_SOURCES) $(wmfile_SOURCES) $(fontl_SOURCES) $(testmywidget_SOURCES) $(testcolorpanel_SOURCES)
|
||||||
OBJECTS = $(libWINGs_a_OBJECTS) $(wtest_OBJECTS) $(wmquery_OBJECTS) $(wmfile_OBJECTS) $(fontl_OBJECTS) $(testmywidget_OBJECTS)
|
OBJECTS = $(libWINGs_a_OBJECTS) $(wtest_OBJECTS) $(wmquery_OBJECTS) $(wmfile_OBJECTS) $(fontl_OBJECTS) $(testmywidget_OBJECTS) $(testcolorpanel_OBJECTS)
|
||||||
|
|
||||||
all: all-recursive all-am
|
all: all-recursive all-am
|
||||||
|
|
||||||
@@ -356,24 +355,9 @@ testmywidget: $(testmywidget_OBJECTS) $(testmywidget_DEPENDENCIES)
|
|||||||
@rm -f testmywidget
|
@rm -f testmywidget
|
||||||
$(LINK) $(testmywidget_LDFLAGS) $(testmywidget_OBJECTS) $(testmywidget_LDADD) $(LIBS)
|
$(LINK) $(testmywidget_LDFLAGS) $(testmywidget_OBJECTS) $(testmywidget_LDADD) $(LIBS)
|
||||||
|
|
||||||
install-binSCRIPTS: $(bin_SCRIPTS)
|
testcolorpanel: $(testcolorpanel_OBJECTS) $(testcolorpanel_DEPENDENCIES)
|
||||||
@$(NORMAL_INSTALL)
|
@rm -f testcolorpanel
|
||||||
$(mkinstalldirs) $(DESTDIR)$(bindir)
|
$(LINK) $(testcolorpanel_LDFLAGS) $(testcolorpanel_OBJECTS) $(testcolorpanel_LDADD) $(LIBS)
|
||||||
@list='$(bin_SCRIPTS)'; for p in $$list; do \
|
|
||||||
if test -f $$p; then \
|
|
||||||
echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
|
|
||||||
$(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
|
|
||||||
else if test -f $(srcdir)/$$p; then \
|
|
||||||
echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
|
|
||||||
$(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
|
|
||||||
else :; fi; fi; \
|
|
||||||
done
|
|
||||||
|
|
||||||
uninstall-binSCRIPTS:
|
|
||||||
@$(NORMAL_UNINSTALL)
|
|
||||||
list='$(bin_SCRIPTS)'; for p in $$list; do \
|
|
||||||
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
|
|
||||||
done
|
|
||||||
|
|
||||||
install-includeHEADERS: $(include_HEADERS)
|
install-includeHEADERS: $(include_HEADERS)
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
@@ -479,13 +463,13 @@ dvi: dvi-recursive
|
|||||||
check: all-am
|
check: all-am
|
||||||
$(MAKE) check-recursive
|
$(MAKE) check-recursive
|
||||||
installcheck: installcheck-recursive
|
installcheck: installcheck-recursive
|
||||||
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(SCRIPTS) $(HEADERS)
|
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
|
||||||
|
|
||||||
install-exec-am: install-libLIBRARIES install-binSCRIPTS
|
install-exec-am: install-libLIBRARIES
|
||||||
|
|
||||||
install-data-am: install-includeHEADERS
|
install-data-am: install-includeHEADERS
|
||||||
|
|
||||||
uninstall-am: uninstall-libLIBRARIES uninstall-binSCRIPTS uninstall-includeHEADERS
|
uninstall-am: uninstall-libLIBRARIES uninstall-includeHEADERS
|
||||||
|
|
||||||
install-exec: install-exec-recursive install-exec-am
|
install-exec: install-exec-recursive install-exec-am
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
@@ -501,8 +485,7 @@ uninstall: uninstall-recursive uninstall-am
|
|||||||
install-strip:
|
install-strip:
|
||||||
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
|
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
|
||||||
installdirs: installdirs-recursive
|
installdirs: installdirs-recursive
|
||||||
$(mkinstalldirs) $(DATADIR)$(libdir) $(DATADIR)$(bindir) \
|
$(mkinstalldirs) $(DATADIR)$(libdir) $(DATADIR)$(includedir)
|
||||||
$(DATADIR)$(includedir)
|
|
||||||
|
|
||||||
|
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
@@ -555,12 +538,11 @@ clean-compile maintainer-clean-compile mostlyclean-libtool \
|
|||||||
distclean-libtool clean-libtool maintainer-clean-libtool \
|
distclean-libtool clean-libtool maintainer-clean-libtool \
|
||||||
mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
|
mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
|
||||||
clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
|
clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
|
||||||
uninstall-binSCRIPTS install-binSCRIPTS uninstall-includeHEADERS \
|
uninstall-includeHEADERS install-includeHEADERS install-data-recursive \
|
||||||
install-includeHEADERS install-data-recursive uninstall-data-recursive \
|
uninstall-data-recursive install-exec-recursive \
|
||||||
install-exec-recursive uninstall-exec-recursive installdirs-recursive \
|
uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
|
||||||
uninstalldirs-recursive all-recursive check-recursive \
|
all-recursive check-recursive installcheck-recursive info-recursive \
|
||||||
installcheck-recursive info-recursive dvi-recursive \
|
dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
|
||||||
mostlyclean-recursive distclean-recursive clean-recursive \
|
|
||||||
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
|
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
|
||||||
distclean-tags clean-tags maintainer-clean-tags distdir info dvi \
|
distclean-tags clean-tags maintainer-clean-tags distdir info dvi \
|
||||||
installcheck all-am install-exec-am install-data-am uninstall-am \
|
installcheck all-am install-exec-am install-data-am uninstall-am \
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -65,8 +65,6 @@ DFLAGS = @DFLAGS@
|
|||||||
GFXFLAGS = @GFXFLAGS@
|
GFXFLAGS = @GFXFLAGS@
|
||||||
GFXLFLAGS = @GFXLFLAGS@
|
GFXLFLAGS = @GFXLFLAGS@
|
||||||
GFXLIBS = @GFXLIBS@
|
GFXLIBS = @GFXLIBS@
|
||||||
I18N = @I18N@
|
|
||||||
I18N_MB = @I18N_MB@
|
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
LD = @LD@
|
LD = @LD@
|
||||||
@@ -79,19 +77,13 @@ NLSDIR = @NLSDIR@
|
|||||||
NM = @NM@
|
NM = @NM@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
REDUCE_APPICONS = @REDUCE_APPICONS@
|
|
||||||
SHAPE = @SHAPE@
|
|
||||||
SOUND = @SOUND@
|
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
WPMOFILES = @WPMOFILES@
|
WPMOFILES = @WPMOFILES@
|
||||||
XCFLAGS = @XCFLAGS@
|
XCFLAGS = @XCFLAGS@
|
||||||
XGETTEXT = @XGETTEXT@
|
XGETTEXT = @XGETTEXT@
|
||||||
XLFLAGS = @XLFLAGS@
|
XLFLAGS = @XLFLAGS@
|
||||||
XLIBS = @XLIBS@
|
XLIBS = @XLIBS@
|
||||||
XSHM = @XSHM@
|
|
||||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||||
X_LOCALE = @X_LOCALE@
|
|
||||||
pixmapdir = @pixmapdir@
|
|
||||||
wprefsdir = @wprefsdir@
|
wprefsdir = @wprefsdir@
|
||||||
|
|
||||||
resdatadir = $(datadir)/WINGs
|
resdatadir = $(datadir)/WINGs
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ typedef enum {
|
|||||||
WALeft,
|
WALeft,
|
||||||
WACenter,
|
WACenter,
|
||||||
WARight,
|
WARight,
|
||||||
WMJustified /* not valid for textfields */
|
WAJustified /* not valid for textfields */
|
||||||
} WMAlignment;
|
} WMAlignment;
|
||||||
|
|
||||||
|
|
||||||
@@ -175,6 +175,17 @@ enum {
|
|||||||
WMDownTextMovement
|
WMDownTextMovement
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
WMGrayModeColorPanel,
|
||||||
|
WMRGBModeColorPanel,
|
||||||
|
WMCMYKModeColorPanel,
|
||||||
|
WMHSBModeColorPanel,
|
||||||
|
WMCustomPaletteModeColorPanel,
|
||||||
|
WMColorListModeColorPanel,
|
||||||
|
WMWheelModeColorPanel
|
||||||
|
} WMColorPanelMode;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* system images */
|
/* system images */
|
||||||
#define WSIReturnArrow 1
|
#define WSIReturnArrow 1
|
||||||
@@ -282,6 +293,8 @@ typedef WMFilePanel WMSavePanel;
|
|||||||
|
|
||||||
typedef struct W_FontPanel WMFontPanel;
|
typedef struct W_FontPanel WMFontPanel;
|
||||||
|
|
||||||
|
typedef struct W_ColorPanel WMColorPanel;
|
||||||
|
|
||||||
|
|
||||||
/* item for WMList */
|
/* item for WMList */
|
||||||
typedef struct WMListItem {
|
typedef struct WMListItem {
|
||||||
@@ -370,8 +383,18 @@ typedef WMWidget *WMMatrixCreateCellProc(WMMatrix *mPtr);
|
|||||||
typedef void WMBrowserFillColumnProc(WMBrowser *bPtr, int column);
|
typedef void WMBrowserFillColumnProc(WMBrowser *bPtr, int column);
|
||||||
|
|
||||||
|
|
||||||
|
typedef Bool WMConvertSelectionProc(WMWidget *w, Atom selection, Atom target,
|
||||||
|
Atom *type, void **value, unsigned *length,
|
||||||
|
int *format);
|
||||||
|
|
||||||
|
typedef void WMLoseSelectionProc(WMWidget *w, Atom selection);
|
||||||
|
|
||||||
|
typedef void WMSelectionDoneProc(WMWidget *w, Atom selection, Atom target);
|
||||||
|
|
||||||
/* ....................................................................... */
|
/* ....................................................................... */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void WMInitializeApplication(char *applicationName, int *argc, char **argv);
|
void WMInitializeApplication(char *applicationName, int *argc, char **argv);
|
||||||
|
|
||||||
void WMSetApplicationDataPath(char *path);
|
void WMSetApplicationDataPath(char *path);
|
||||||
@@ -889,6 +912,20 @@ void WMSetPopUpButtonEnabled(WMPopUpButton *bPtr, Bool flag);
|
|||||||
|
|
||||||
/* ....................................................................... */
|
/* ....................................................................... */
|
||||||
|
|
||||||
|
WMColorPanel *WMGetColorPanel(WMScreen *scrPtr);
|
||||||
|
|
||||||
|
void WMFreeColorPanel(WMColorPanel *panel);
|
||||||
|
|
||||||
|
int WMRunColorPanel(WMColorPanel *panel, WMWindow *owner, RColor color);
|
||||||
|
|
||||||
|
void WMSetColorPanelColor(WMColorPanel *panel, RColor color);
|
||||||
|
|
||||||
|
RColor WMGetColorPanelColor(WMColorPanel *panel);
|
||||||
|
|
||||||
|
void WMSetPickerMode(WMColorPanel *panel, WMColorPanelMode mode);
|
||||||
|
|
||||||
|
/* ....................................................................... */
|
||||||
|
|
||||||
WMColorWell *WMCreateColorWell(WMWidget *parent);
|
WMColorWell *WMCreateColorWell(WMWidget *parent);
|
||||||
|
|
||||||
void WMSetColorWellColor(WMColorWell *cPtr, WMColor *color);
|
void WMSetColorWellColor(WMColorWell *cPtr, WMColor *color);
|
||||||
|
|||||||
@@ -177,6 +177,25 @@ typedef struct W_Screen {
|
|||||||
struct W_Pixmap *checkMark;
|
struct W_Pixmap *checkMark;
|
||||||
|
|
||||||
struct W_Pixmap *homeIcon;
|
struct W_Pixmap *homeIcon;
|
||||||
|
struct W_Pixmap *homeAltIcon;
|
||||||
|
|
||||||
|
struct W_Pixmap *magnifyIcon;
|
||||||
|
struct W_Pixmap *wheelIcon;
|
||||||
|
struct W_Pixmap *grayIcon;
|
||||||
|
struct W_Pixmap *rgbIcon;
|
||||||
|
struct W_Pixmap *cmykIcon;
|
||||||
|
struct W_Pixmap *hsbIcon;
|
||||||
|
struct W_Pixmap *customPaletteIcon;
|
||||||
|
struct W_Pixmap *colorListIcon;
|
||||||
|
|
||||||
|
struct W_Pixmap *magnifyAltIcon;
|
||||||
|
struct W_Pixmap *wheelAltIcon;
|
||||||
|
struct W_Pixmap *grayAltIcon;
|
||||||
|
struct W_Pixmap *rgbAltIcon;
|
||||||
|
struct W_Pixmap *cmykAltIcon;
|
||||||
|
struct W_Pixmap *hsbAltIcon;
|
||||||
|
struct W_Pixmap *customPaletteAltIcon;
|
||||||
|
struct W_Pixmap *colorListAltIcon;
|
||||||
|
|
||||||
struct W_Pixmap *defaultObjectIcon;
|
struct W_Pixmap *defaultObjectIcon;
|
||||||
|
|
||||||
@@ -395,3 +414,5 @@ void W_RedisplayView(WMView *view);
|
|||||||
Bool W_ApplicationInitialized(void);
|
Bool W_ApplicationInitialized(void);
|
||||||
|
|
||||||
char *W_GetTextSelection(WMScreen *scr, Atom selection);
|
char *W_GetTextSelection(WMScreen *scr, Atom selection);
|
||||||
|
|
||||||
|
void W_HandleSelectionEvent(XEvent *event);
|
||||||
|
|||||||
@@ -39,7 +39,8 @@
|
|||||||
|
|
||||||
#ifdef NDEBUG
|
#ifdef NDEBUG
|
||||||
|
|
||||||
#define wassertr(expr, val) ((void)0)
|
#define wassertr(expr) {}
|
||||||
|
#define wassertrv(expr, val) {}
|
||||||
|
|
||||||
#else /* !NDEBUG */
|
#else /* !NDEBUG */
|
||||||
|
|
||||||
@@ -118,6 +119,10 @@ typedef void WMNotificationObserverAction(void *observerData,
|
|||||||
|
|
||||||
/*......................................................................*/
|
/*......................................................................*/
|
||||||
|
|
||||||
|
typedef void (waborthandler)(int);
|
||||||
|
|
||||||
|
waborthandler *wsetabort(waborthandler*);
|
||||||
|
|
||||||
|
|
||||||
void wfatal(const char *msg, ...);
|
void wfatal(const char *msg, ...);
|
||||||
void wwarning(const char *msg, ...);
|
void wwarning(const char *msg, ...);
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
#ifndef False
|
#ifndef False
|
||||||
# define False 0
|
# define False 0
|
||||||
@@ -37,7 +38,33 @@
|
|||||||
# define True 1
|
# define True 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern void wAbort(int);
|
|
||||||
|
static void
|
||||||
|
defaultHandler(int bla)
|
||||||
|
{
|
||||||
|
if (bla)
|
||||||
|
raise(SIGABRT);
|
||||||
|
else
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static waborthandler *aborthandler = (waborthandler*)defaultHandler;
|
||||||
|
|
||||||
|
#define wAbort(a) (*aborthandler)(a)
|
||||||
|
|
||||||
|
|
||||||
|
waborthandler*
|
||||||
|
wsetabort(waborthandler *handler)
|
||||||
|
{
|
||||||
|
waborthandler *old = aborthandler;
|
||||||
|
|
||||||
|
aborthandler = handler;
|
||||||
|
|
||||||
|
return old;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int Aborting=0; /* if we're in the middle of an emergency exit */
|
static int Aborting=0; /* if we're in the middle of an emergency exit */
|
||||||
|
|
||||||
|
|||||||
@@ -6,196 +6,260 @@
|
|||||||
|
|
||||||
#include "WINGsP.h"
|
#include "WINGsP.h"
|
||||||
|
|
||||||
#if 0
|
#define MAX_PROPERTY_SIZE 8*1024
|
||||||
|
|
||||||
typedef struct W_SelectionHandler {
|
|
||||||
|
typedef struct SelectionHandler {
|
||||||
WMWidget *widget;
|
WMWidget *widget;
|
||||||
Atom selection;
|
Atom selection;
|
||||||
void *clientData;
|
Time timestamp;
|
||||||
WMSelectionProc *proc;
|
WMConvertSelectionProc *convProc;
|
||||||
WMHandlerID timerID;
|
WMLoseSelectionProc *loseProc;
|
||||||
W_SelectionHandler *next;
|
WMSelectionDoneProc *doneProc;
|
||||||
W_SelectionHandler *prev;
|
|
||||||
} W_SelectionHandler;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SELECTION_TIMEOUT 2000
|
struct {
|
||||||
#define MAX_PROPERTY_SIZE 10*1024
|
unsigned delete_pending:1;
|
||||||
#if 0
|
unsigned done_pending:1;
|
||||||
|
} flags;
|
||||||
|
|
||||||
|
struct SelectionHandler *next;
|
||||||
|
} SelectionHandler;
|
||||||
|
|
||||||
|
|
||||||
|
static SelectionHandler *selHandlers = NULL;
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
WMWriteSelectionToClipboard(WMSelection *selection)
|
WMDeleteSelectionHandler(WMWidget *widget, Atom selection)
|
||||||
{
|
{
|
||||||
}
|
SelectionHandler *handler, *tmp;
|
||||||
|
Display *dpy = WMWidgetScreen(widget)->display;
|
||||||
|
Window win = WMWidgetXID(widget);
|
||||||
|
Time timestamp;
|
||||||
|
|
||||||
|
if (!selHandlers)
|
||||||
|
return;
|
||||||
|
|
||||||
WMSelection*
|
tmp = selHandlers;
|
||||||
WMCreateSelectionWithData(WMData *data, Atom type)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
if (tmp->widget == widget) {
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
if (tmp->flags.done_pending) {
|
||||||
|
tmp->flags.delete_pending = 1;
|
||||||
#define MAX_PROPERTY_SIZE 100*1024
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
handleSelectionEvent(XEvent *event, void *data)
|
|
||||||
{
|
|
||||||
W_SelectionHandler *handler = (W_SelectionHandler*)data;
|
|
||||||
char *data = NULL;
|
|
||||||
Atom type;
|
|
||||||
int format, result;
|
|
||||||
unsigned long numItems, bytesAfter;
|
|
||||||
WMScreen *scr = WMWidgetScreen(handler->widget);
|
|
||||||
|
|
||||||
WMDeleteTimerHandler(handler->timerID);
|
|
||||||
|
|
||||||
if (handler->next)
|
|
||||||
handler->next->prev = handler->prev;
|
|
||||||
if (handler->prev)
|
|
||||||
handler->prev->next = handler->next;
|
|
||||||
if (handler == WMWidgetScreen(handler->widget)->selectionHandlerList)
|
|
||||||
WMWidgetScreen(handler->widget)->selectionHandlerList = handler->next;
|
|
||||||
|
|
||||||
if (event->xselection.property == None) {
|
|
||||||
char *name = XGetAtomName(event->xselection.display,
|
|
||||||
handler->selection);
|
|
||||||
char *form = XGetAtomName(event->xselection.display, handler->type);
|
|
||||||
wwarning("error retrieving selection %s with form %s\n", name, form);
|
|
||||||
if (name)
|
|
||||||
XFree(name);
|
|
||||||
if (form)
|
|
||||||
XFree(form);
|
|
||||||
free(handler);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (XGetWindowProperty(event->xselection.display,
|
|
||||||
event->xselection.requestor, handler->property,
|
|
||||||
0, MAX_PROPERTY_SIZE, False, AnyPropertyType,
|
|
||||||
&type, &format, &numItems, &bytesAfter,
|
|
||||||
&data) != Success || type == None) {
|
|
||||||
if (data)
|
|
||||||
XFree(data);
|
|
||||||
free(handler);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (bytesAfter!=0) {
|
|
||||||
wwarning("data in selection is too large");
|
|
||||||
if (data)
|
|
||||||
XFree(data);
|
|
||||||
free(handler);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (type == XA_STRING || type == scr->compoundTextAtom) {
|
|
||||||
if (format!=8) {
|
|
||||||
wwarning("string in selection has format %i, which is invalid",
|
|
||||||
format);
|
|
||||||
if (data)
|
|
||||||
XFree(data);
|
|
||||||
free(handler);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
(*handler->proc)();
|
selHandlers = tmp->next;
|
||||||
|
timestamp = tmp->timestamp;
|
||||||
|
free(tmp);
|
||||||
|
} else {
|
||||||
|
while (tmp->next) {
|
||||||
|
if (tmp->next->widget == widget) {
|
||||||
|
|
||||||
|
if (tmp->next->flags.done_pending) {
|
||||||
|
tmp->next->flags.delete_pending = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
handler = tmp->next;
|
||||||
|
tmp->next = handler->next;
|
||||||
|
timestamp = handler->timestamp;
|
||||||
|
free(handler);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
tmp = tmp->next;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XGrabServer(dpy);
|
||||||
|
if (XGetSelectionOwner(dpy, selection) == win) {
|
||||||
|
XSetSelectionOwner(dpy, selection, None, timestamp);
|
||||||
|
}
|
||||||
|
XUngrabServer(dpy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int gotError = 0;
|
||||||
|
/*
|
||||||
|
static int
|
||||||
|
errorHandler(XErrorEvent *error)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
static Bool
|
||||||
|
writeSelection(Display *dpy, Window requestor, Atom property, Atom type,
|
||||||
|
void *value, long length, int format)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
printf("write to %x: %s\n", requestor, XGetAtomName(dpy, property));
|
||||||
|
*/
|
||||||
|
gotError = 0;
|
||||||
|
|
||||||
|
if (!XChangeProperty(dpy, requestor, property, type, format,
|
||||||
|
PropModeReplace, value, length))
|
||||||
|
return 0;
|
||||||
|
XFlush(dpy);
|
||||||
|
|
||||||
|
return !gotError;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
timeoutHandler(void *data)
|
notifySelection(XEvent *event, Atom prop)
|
||||||
{
|
{
|
||||||
W_SelectionHandler *handler = (W_SelectionHandler*)data;
|
XEvent ev;
|
||||||
|
/*
|
||||||
|
printf("envent to %x\n", event->xselectionrequest.requestor);
|
||||||
|
*/
|
||||||
|
ev.xselection.type = SelectionNotify;
|
||||||
|
ev.xselection.serial = 0;
|
||||||
|
ev.xselection.send_event = True;
|
||||||
|
ev.xselection.display = event->xselectionrequest.display;
|
||||||
|
ev.xselection.requestor = event->xselectionrequest.requestor;
|
||||||
|
ev.xselection.target = event->xselectionrequest.target;
|
||||||
|
ev.xselection.property = prop;
|
||||||
|
ev.xselection.time = event->xselectionrequest.time;
|
||||||
|
|
||||||
wwarning("selection timed out");
|
XSendEvent(event->xany.display, event->xselectionrequest.requestor,
|
||||||
WMDeleteEventHandler(WMWidgetView(handler->widget), SelectionNotifyMask,
|
False, 0, &ev);
|
||||||
handleSelectionEvent, data);
|
XFlush(event->xany.display);
|
||||||
if (handler->next)
|
|
||||||
handler->next->prev = handler->prev;
|
|
||||||
if (handler->prev)
|
|
||||||
handler->prev->next = handler->next;
|
|
||||||
if (handler == WMWidgetScreen(handler->widget)->selectionHandlerList)
|
|
||||||
WMWidgetScreen(handler->widget)->selectionHandlerList = handler->next;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
WMGetSelection(WMWidget *widget, Atom selection, Atom type, Atom property,
|
W_HandleSelectionEvent(XEvent *event)
|
||||||
WMSelectionProc *proc, void *clientData, Time time)
|
|
||||||
{
|
{
|
||||||
WMScreen *scr = WMWidgetScreen(widget);
|
SelectionHandler *handler;
|
||||||
void *data;
|
|
||||||
Atom rtype;
|
|
||||||
int bits;
|
|
||||||
unsigned long len, bytes;
|
|
||||||
unsigned char *data;
|
|
||||||
int buffer = -1;
|
|
||||||
|
|
||||||
switch (selection) {
|
handler = selHandlers;
|
||||||
case XA_CUT_BUFFER0:
|
|
||||||
buffer = 0;
|
|
||||||
break;
|
|
||||||
case XA_CUT_BUFFER1:
|
|
||||||
buffer = 1;
|
|
||||||
break;
|
|
||||||
case XA_CUT_BUFFER2:
|
|
||||||
buffer = 2;
|
|
||||||
break;
|
|
||||||
case XA_CUT_BUFFER3:
|
|
||||||
buffer = 3;
|
|
||||||
break;
|
|
||||||
case XA_CUT_BUFFER4:
|
|
||||||
buffer = 4;
|
|
||||||
break;
|
|
||||||
case XA_CUT_BUFFER5:
|
|
||||||
buffer = 5;
|
|
||||||
break;
|
|
||||||
case XA_CUT_BUFFER6:
|
|
||||||
buffer = 6;
|
|
||||||
break;
|
|
||||||
case XA_CUT_BUFFER7:
|
|
||||||
buffer = 7;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (buffer >= 0) {
|
|
||||||
char *data;
|
|
||||||
int size;
|
|
||||||
|
|
||||||
data = XFetchBuffer(scr->display, &size, buffer);
|
while (handler) {
|
||||||
|
if (WMWidgetXID(handler->widget)==event->xany.window
|
||||||
|
/* && handler->selection == event->selection*/) {
|
||||||
|
|
||||||
} else {
|
switch (event->type) {
|
||||||
W_SelectionHandler *handler;
|
case SelectionClear:
|
||||||
|
if (handler->loseProc)
|
||||||
|
(*handler->loseProc)(handler->widget, handler->selection);
|
||||||
|
break;
|
||||||
|
|
||||||
XDeleteProperty(scr->display, WMWidgetXID(widget), selection);
|
case SelectionRequest:
|
||||||
XConvertSelection(scr->display, selection, type, property,
|
if (handler->convProc) {
|
||||||
WMWidgetXID(widget), time);
|
Atom atom;
|
||||||
|
void *data;
|
||||||
|
unsigned length;
|
||||||
|
int format;
|
||||||
|
Atom prop;
|
||||||
|
|
||||||
handler = wmalloc(sizeof(W_SelectionHandler));
|
/* they're requesting for something old */
|
||||||
handler->widget = widget;
|
if (event->xselectionrequest.time < handler->timestamp
|
||||||
handler->selection = selection;
|
&& event->xselectionrequest.time != CurrentTime) {
|
||||||
handler->type = type;
|
|
||||||
handler->property = property;
|
|
||||||
handler->clientData = clientData;
|
|
||||||
handler->proc = proc;
|
|
||||||
handler->timerID = WMAddTimerHandler(SELECTION_TIMEOUT,
|
|
||||||
timeoutHandler, handler);
|
|
||||||
|
|
||||||
handler->next = scr->selectionHandlerList;
|
notifySelection(event, None);
|
||||||
handler->prev = NULL;
|
break;
|
||||||
if (scr->selectionHandlerList)
|
}
|
||||||
scr->selectionHandlerList->prev = handler;
|
|
||||||
scr->selectionHandlerList = handler;
|
|
||||||
|
|
||||||
WMCreateEventHandler(WMWidgetView(widget), SelectionNotifyMask,
|
handler->flags.done_pending = 1;
|
||||||
handleSelectionEvent, handler);
|
|
||||||
|
if (!(*handler->convProc)(handler->widget,
|
||||||
|
handler->selection,
|
||||||
|
event->xselectionrequest.target,
|
||||||
|
&atom, &data, &length, &format)) {
|
||||||
|
|
||||||
|
notifySelection(event, None);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
prop = event->xselectionrequest.property;
|
||||||
|
/* obsolete clients that don't set the property field */
|
||||||
|
if (prop == None)
|
||||||
|
prop = event->xselectionrequest.target;
|
||||||
|
|
||||||
|
if (!writeSelection(event->xselectionrequest.display,
|
||||||
|
event->xselectionrequest.requestor,
|
||||||
|
prop, atom, data, length, format)) {
|
||||||
|
|
||||||
|
free(data);
|
||||||
|
notifySelection(event, None);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
free(data);
|
||||||
|
|
||||||
|
notifySelection(event, prop);
|
||||||
|
|
||||||
|
if (handler->doneProc) {
|
||||||
|
(*handler->doneProc)(handler->widget,
|
||||||
|
handler->selection,
|
||||||
|
event->xselectionrequest.target);
|
||||||
|
}
|
||||||
|
|
||||||
|
handler->flags.done_pending = 0;
|
||||||
|
|
||||||
|
/* in case the handler was deleted from some
|
||||||
|
* callback */
|
||||||
|
if (handler->flags.delete_pending) {
|
||||||
|
WMDeleteSelectionHandler(handler->widget,
|
||||||
|
handler->selection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SelectionNotify:
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
handler = handler->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
Bool
|
||||||
|
WMCreateSelectionHandler(WMWidget *w, Atom selection, Time timestamp,
|
||||||
|
WMConvertSelectionProc *convProc,
|
||||||
|
WMLoseSelectionProc *loseProc,
|
||||||
|
WMSelectionDoneProc *doneProc)
|
||||||
|
{
|
||||||
|
SelectionHandler *handler, *tmp;
|
||||||
|
Display *dpy = WMWidgetScreen(w)->display;
|
||||||
|
|
||||||
|
XSetSelectionOwner(dpy, selection, WMWidgetXID(w), timestamp);
|
||||||
|
if (XGetSelectionOwner(dpy, selection) != WMWidgetXID(w))
|
||||||
|
return False;
|
||||||
|
|
||||||
|
handler = malloc(sizeof(SelectionHandler));
|
||||||
|
if (!handler)
|
||||||
|
return False;
|
||||||
|
|
||||||
|
handler->widget = w;
|
||||||
|
handler->selection = selection;
|
||||||
|
handler->timestamp = timestamp;
|
||||||
|
handler->convProc = convProc;
|
||||||
|
handler->loseProc = loseProc;
|
||||||
|
handler->doneProc = doneProc;
|
||||||
|
memset(&handler->flags, 0, sizeof(handler->flags));
|
||||||
|
|
||||||
|
if (!selHandlers) {
|
||||||
|
/* first in the queue */
|
||||||
|
handler->next = selHandlers;
|
||||||
|
selHandlers = handler;
|
||||||
|
} else {
|
||||||
|
tmp = selHandlers;
|
||||||
|
while (tmp->next) {
|
||||||
|
tmp = tmp->next;
|
||||||
|
}
|
||||||
|
handler->next = tmp->next;
|
||||||
|
tmp->next = handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
return True;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -270,7 +334,8 @@ W_GetTextSelection(WMScreen *scr, Atom selection)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* nobody owns the selection */
|
/* nobody owns the selection or the current owner has
|
||||||
|
* nothing to do with what we need */
|
||||||
if (ev.xselection.property == None) {
|
if (ev.xselection.property == None) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|||||||
53
WINGs/testcolorpanel.c
Normal file
53
WINGs/testcolorpanel.c
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
* Author: Pascal Hofstee <daeron@shadowmere.student.utwente.nl>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "WINGs.h"
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "logo.xpm"
|
||||||
|
|
||||||
|
void
|
||||||
|
wAbort()
|
||||||
|
{
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
char *ProgName;
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
Display *dpy = XOpenDisplay("");
|
||||||
|
WMScreen *scr;
|
||||||
|
WMPixmap *pixmap;
|
||||||
|
WMColorPanel *panel;
|
||||||
|
RColor startcolor;
|
||||||
|
|
||||||
|
WMInitializeApplication("WMColorPicker", &argc, argv);
|
||||||
|
|
||||||
|
ProgName = argv[0];
|
||||||
|
|
||||||
|
if (!dpy) {
|
||||||
|
puts("could not open display");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
scr = WMCreateSimpleApplicationScreen(dpy);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
pixmap = WMCreatePixmapFromXPMData(scr, GNUSTEP_XPM);
|
||||||
|
WMSetApplicationIconImage(scr, pixmap); WMReleasePixmap(pixmap);
|
||||||
|
panel = WMGetColorPanel(scr);
|
||||||
|
|
||||||
|
startcolor.red = 0;
|
||||||
|
startcolor.green = 0;
|
||||||
|
startcolor.blue = 255;
|
||||||
|
|
||||||
|
WMRunColorPanel(panel, NULL, startcolor);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -4,6 +4,9 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include "../src/config.h"
|
||||||
|
|
||||||
#include "WUtil.h"
|
#include "WUtil.h"
|
||||||
|
|
||||||
#include <proplist.h>
|
#include <proplist.h>
|
||||||
@@ -168,7 +171,7 @@ WMGetStandardUserDefaults(void)
|
|||||||
/* set to save changes in defaults when program is exited */
|
/* set to save changes in defaults when program is exited */
|
||||||
|
|
||||||
|
|
||||||
#if !defined(HAVE_ATEXIT) && defined(HAVE_ON_EXIT)
|
#ifndef HAVE_ATEXIT
|
||||||
on_exit(saveDefaultsChanges,0);
|
on_exit(saveDefaultsChanges,0);
|
||||||
#else
|
#else
|
||||||
atexit(saveDefaultsChanges);
|
atexit(saveDefaultsChanges);
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ WMPathForResourceOfType(char *resource, char *ext)
|
|||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
appdir = wmalloc(strlen(WMApplication.applicationName)+8);
|
appdir = wmalloc(strlen(WMApplication.applicationName)+10);
|
||||||
sprintf(appdir, "Apps/%s.app", WMApplication.applicationName);
|
sprintf(appdir, "Apps/%s.app", WMApplication.applicationName);
|
||||||
|
|
||||||
if (getenv("GNUSTEP_USER_ROOT")) {
|
if (getenv("GNUSTEP_USER_ROOT")) {
|
||||||
|
|||||||
2792
WINGs/wcolorpanel.c
Normal file
2792
WINGs/wcolorpanel.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -16,18 +16,18 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#include <X11/Xos.h>
|
||||||
|
|
||||||
#ifdef HAVE_SYS_SELECT_H
|
#ifdef HAVE_SYS_SELECT_H
|
||||||
# include <sys/select.h>
|
# include <sys/select.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_GETTIMEOFDAY
|
#include <time.h>
|
||||||
# include <sys/time.h>
|
|
||||||
# ifdef TIME_WITH_SYS_TIME
|
#ifndef X_GETTIMEOFDAY
|
||||||
# include <time.h>
|
#define X_GETTIMEOFDAY(t) gettimeofday(t, (struct timezone*)0)
|
||||||
# endif
|
#endif
|
||||||
#else /* ! HAVE_GETTIMEOFDAY */
|
|
||||||
# include <time.h>
|
|
||||||
#endif /* ! HAVE_GETTIMEOFDAY */
|
|
||||||
|
|
||||||
|
|
||||||
extern _WINGsConfiguration WINGsConfiguration;
|
extern _WINGsConfiguration WINGsConfiguration;
|
||||||
@@ -119,15 +119,10 @@ static WMEventHook *extraEventHandler=NULL;
|
|||||||
#define idlePending() (idleHandler)
|
#define idlePending() (idleHandler)
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_GETTIMEOFDAY
|
|
||||||
static void
|
static void
|
||||||
rightNow(struct timeval *tv) {
|
rightNow(struct timeval *tv) {
|
||||||
gettimeofday(tv, NULL);
|
X_GETTIMEOFDAY(tv);
|
||||||
}
|
}
|
||||||
#else /* !HAVE_GETTIMEOFDAY */
|
|
||||||
# define rightNow(tv) (tv)->tv_sec==time(NULL),(tv)->tv_usec=0
|
|
||||||
#endif /* !HAVE_GETTIMEOFDAY */
|
|
||||||
|
|
||||||
|
|
||||||
/* is t1 after t2 ? */
|
/* is t1 after t2 ? */
|
||||||
#define IS_AFTER(t1, t2) (((t1).tv_sec > (t2).tv_sec) || \
|
#define IS_AFTER(t1, t2) (((t1).tv_sec > (t2).tv_sec) || \
|
||||||
@@ -591,6 +586,12 @@ WMHandleEvent(XEvent *event)
|
|||||||
|
|
||||||
toplevel = W_TopLevelOfView(view);
|
toplevel = W_TopLevelOfView(view);
|
||||||
|
|
||||||
|
if (event->type == SelectionNotify || event->type == SelectionClear
|
||||||
|
|| event->type == SelectionRequest) {
|
||||||
|
/* handle selection related events */
|
||||||
|
W_HandleSelectionEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
/* if it's a key event, redispatch it to the focused control */
|
/* if it's a key event, redispatch it to the focused control */
|
||||||
if (mask & (KeyPressMask|KeyReleaseMask)) {
|
if (mask & (KeyPressMask|KeyReleaseMask)) {
|
||||||
W_View *focused = W_FocusedViewOfToplevel(toplevel);
|
W_View *focused = W_FocusedViewOfToplevel(toplevel);
|
||||||
|
|||||||
@@ -194,6 +194,7 @@ makeFilePanel(WMScreen *scrPtr, char *name, char *title)
|
|||||||
WMResizeWidget(fPtr->homeButton, 28, 28);
|
WMResizeWidget(fPtr->homeButton, 28, 28);
|
||||||
WMSetButtonImagePosition(fPtr->homeButton, WIPImageOnly);
|
WMSetButtonImagePosition(fPtr->homeButton, WIPImageOnly);
|
||||||
WMSetButtonImage(fPtr->homeButton, scrPtr->homeIcon);
|
WMSetButtonImage(fPtr->homeButton, scrPtr->homeIcon);
|
||||||
|
WMSetButtonAltImage(fPtr->homeButton, scrPtr->homeAltIcon);
|
||||||
WMSetButtonAction(fPtr->homeButton, goHome, fPtr);
|
WMSetButtonAction(fPtr->homeButton, goHome, fPtr);
|
||||||
|
|
||||||
WMRealizeWidget(fPtr->win);
|
WMRealizeWidget(fPtr->win);
|
||||||
@@ -281,6 +282,9 @@ WMRunModalSavePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
|
|||||||
WMHandleEvent(&event);
|
WMHandleEvent(&event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Must withdraw window because the next time we map
|
||||||
|
* it, it might have a different transient owner.
|
||||||
|
*/
|
||||||
WMCloseWindow(panel->win);
|
WMCloseWindow(panel->win);
|
||||||
|
|
||||||
return (panel->flags.canceled ? False : True);
|
return (panel->flags.canceled ? False : True);
|
||||||
|
|||||||
153
WINGs/widgets.c
153
WINGs/widgets.c
@@ -455,7 +455,158 @@ loadPixmaps(WMScreen *scr)
|
|||||||
scr->depth);
|
scr->depth);
|
||||||
}
|
}
|
||||||
RDestroyImage(tmp);
|
RDestroyImage(tmp);
|
||||||
RDestroyImage(image);
|
/* Magnifying Glass Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 24, 0, 40, 32);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->magnifyIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->magnifyIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 32, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* ColorWheel Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 0, 25, 24, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->wheelIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->wheelIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 24, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* GrayScale Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 65, 0, 40, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->grayIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->grayIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* RGB Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 25, 33, 40, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->rgbIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->rgbIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* CMYK Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 65, 25, 40, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->cmykIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->cmykIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* HSB Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 0, 57, 40, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->hsbIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->hsbIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* CustomColorPalette Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 81, 57, 40, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->customPaletteIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->customPaletteIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* ColorList Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 41, 57, 40, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->colorListIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->colorListIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
|
||||||
|
RDestroyImage(image);
|
||||||
|
|
||||||
|
image = RLoadImage(scr->rcontext, WINGS_IMAGES_FILE, 0);
|
||||||
|
if (!image) {
|
||||||
|
wwarning("WINGs: could not load widget images file: %s",
|
||||||
|
RMessageForError(RErrorCode));
|
||||||
|
return False;
|
||||||
|
}
|
||||||
|
/* make it have a white background */
|
||||||
|
gray.red = 0xff;
|
||||||
|
gray.green = 0xff;
|
||||||
|
gray.blue = 0xff;
|
||||||
|
RCombineImageWithColor(image, &gray);
|
||||||
|
tmp = RGetSubImage(image, 0, 0, 24, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->homeAltIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->homeAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 24, 24,
|
||||||
|
scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* Magnifying Glass Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 25, 0, 40, 32);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->magnifyAltIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->magnifyAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 32, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* ColorWheel Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 0, 25, 24, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->wheelAltIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->wheelAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 24, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* GrayScale Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 65, 0, 40, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->grayAltIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->grayAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* RGB Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 25, 33, 40, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->rgbAltIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->rgbAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* CMYK Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 65, 25, 40, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->cmykAltIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->cmykAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* HSB Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 0, 57, 40, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->hsbAltIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->hsbAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* CustomColorPalette Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 81, 57, 40, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->customPaletteAltIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->customPaletteAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
/* ColorList Icon for ColorPanel */
|
||||||
|
tmp = RGetSubImage(image, 41, 57, 40, 24);
|
||||||
|
if (!RConvertImage(scr->rcontext, tmp, &pixmap)) {
|
||||||
|
scr->colorListAltIcon = NULL;
|
||||||
|
} else {
|
||||||
|
scr->colorListAltIcon = WMCreatePixmapFromXPixmaps(scr, pixmap, None, 40, 24, scr->depth);
|
||||||
|
}
|
||||||
|
RDestroyImage(tmp);
|
||||||
|
|
||||||
|
RDestroyImage(image);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
scr->defaultObjectIcon =
|
scr->defaultObjectIcon =
|
||||||
|
|||||||
@@ -752,15 +752,15 @@ handleActionEvents(XEvent *event, void *data)
|
|||||||
if (event->xbutton.x > WMWidgetWidth(lPtr->vScroller)) {
|
if (event->xbutton.x > WMWidgetWidth(lPtr->vScroller)) {
|
||||||
tmp = getItemIndexAt(lPtr, event->xbutton.y);
|
tmp = getItemIndexAt(lPtr, event->xbutton.y);
|
||||||
|
|
||||||
if (tmp>=0) {
|
|
||||||
WMSelectListItem(lPtr, tmp);
|
|
||||||
lPtr->selectedItem = tmp;
|
|
||||||
}
|
|
||||||
lPtr->flags.buttonPressed = 1;
|
lPtr->flags.buttonPressed = 1;
|
||||||
|
|
||||||
if (WMIsDoubleClick(event)) {
|
if (tmp >= 0) {
|
||||||
if (lPtr->doubleAction)
|
WMSelectListItem(lPtr, tmp);
|
||||||
(*lPtr->doubleAction)(lPtr, lPtr->doubleClientData);
|
if (tmp == lPtr->selectedItem && WMIsDoubleClick(event)) {
|
||||||
|
if (lPtr->doubleAction)
|
||||||
|
(*lPtr->doubleAction)(lPtr, lPtr->doubleClientData);
|
||||||
|
}
|
||||||
|
lPtr->selectedItem = tmp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -793,6 +793,14 @@ resizeList(WMList *lPtr, unsigned int width, unsigned int height)
|
|||||||
} else {
|
} else {
|
||||||
lPtr->flags.dontFitAll = 0;
|
lPtr->flags.dontFitAll = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (lPtr->itemCount - lPtr->topItem <= lPtr->fullFitLines) {
|
||||||
|
lPtr->topItem = lPtr->itemCount - lPtr->fullFitLines;
|
||||||
|
if (lPtr->topItem < 0)
|
||||||
|
lPtr->topItem = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateScroller(lPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -190,8 +190,8 @@ WMInsertPopUpButtonItem(WMPopUpButton *bPtr, int index, char *title)
|
|||||||
while (--i > 0) {
|
while (--i > 0) {
|
||||||
tmp = tmp->nextPtr;
|
tmp = tmp->nextPtr;
|
||||||
}
|
}
|
||||||
bPtr->items->nextPtr = tmp->nextPtr;
|
itemPtr->nextPtr = tmp->nextPtr;
|
||||||
tmp->nextPtr = bPtr->items;
|
tmp->nextPtr = itemPtr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bPtr->itemCount++;
|
bPtr->itemCount++;
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ typedef struct W_TextField {
|
|||||||
short offsetWidth; /* offset of text from border */
|
short offsetWidth; /* offset of text from border */
|
||||||
|
|
||||||
WMRange selection;
|
WMRange selection;
|
||||||
|
WMRange prevselection;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
WMHandlerID timerID; /* for cursor blinking */
|
WMHandlerID timerID; /* for cursor blinking */
|
||||||
@@ -131,6 +132,7 @@ incrToFit(TextField *tPtr)
|
|||||||
return vp!=tPtr->viewPosition;
|
return vp!=tPtr->viewPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
incrToFit2(TextField *tPtr)
|
incrToFit2(TextField *tPtr)
|
||||||
{
|
{
|
||||||
@@ -248,6 +250,8 @@ WMInsertTextFieldText(WMTextField *tPtr, char *text, int position)
|
|||||||
}
|
}
|
||||||
|
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
|
|
||||||
|
WMPostNotificationName(WMTextDidChangeNotification, tPtr, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -281,6 +285,8 @@ WMDeleteTextFieldRange(WMTextField *tPtr, WMRange range)
|
|||||||
}
|
}
|
||||||
|
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
|
|
||||||
|
WMPostNotificationName(WMTextDidChangeNotification, tPtr, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -318,6 +324,8 @@ WMSetTextFieldText(WMTextField *tPtr, char *text)
|
|||||||
|
|
||||||
if (tPtr->view->flags.realized)
|
if (tPtr->view->flags.realized)
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
|
|
||||||
|
WMPostNotificationName(WMTextDidChangeNotification, tPtr, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -405,6 +413,8 @@ paintCursor(TextField *tPtr)
|
|||||||
case WALeft:
|
case WALeft:
|
||||||
cx += tPtr->offsetWidth;
|
cx += tPtr->offsetWidth;
|
||||||
break;
|
break;
|
||||||
|
case WAJustified:
|
||||||
|
/* not supported */
|
||||||
case WACenter:
|
case WACenter:
|
||||||
textWidth = WMWidthOfString(screen->normalFont, tPtr->text,
|
textWidth = WMWidthOfString(screen->normalFont, tPtr->text,
|
||||||
tPtr->textLen);
|
tPtr->textLen);
|
||||||
@@ -463,6 +473,7 @@ paintTextField(TextField *tPtr)
|
|||||||
W_Screen *screen = tPtr->view->screen;
|
W_Screen *screen = tPtr->view->screen;
|
||||||
W_View *view = tPtr->view;
|
W_View *view = tPtr->view;
|
||||||
int tx, ty, tw, th;
|
int tx, ty, tw, th;
|
||||||
|
int rx;
|
||||||
int bd;
|
int bd;
|
||||||
int totalWidth;
|
int totalWidth;
|
||||||
|
|
||||||
@@ -520,6 +531,29 @@ paintTextField(TextField *tPtr)
|
|||||||
&(tPtr->text[tPtr->viewPosition]),
|
&(tPtr->text[tPtr->viewPosition]),
|
||||||
tPtr->textLen - tPtr->viewPosition);
|
tPtr->textLen - tPtr->viewPosition);
|
||||||
|
|
||||||
|
if (tPtr->selection.count) {
|
||||||
|
int count;
|
||||||
|
|
||||||
|
count = tPtr->selection.count < 0
|
||||||
|
? tPtr->selection.position + tPtr->selection.count
|
||||||
|
: tPtr->selection.position;
|
||||||
|
|
||||||
|
rx = tx + WMWidthOfString(screen->normalFont,
|
||||||
|
&(tPtr->text[tPtr->viewPosition]),
|
||||||
|
count);
|
||||||
|
|
||||||
|
XSetBackground(screen->display, screen->textFieldGC,
|
||||||
|
screen->gray->color.pixel);
|
||||||
|
|
||||||
|
WMDrawImageString(screen, view->window, screen->textFieldGC,
|
||||||
|
screen->normalFont, rx, ty,
|
||||||
|
&(tPtr->text[count]),
|
||||||
|
abs(tPtr->selection.count));
|
||||||
|
|
||||||
|
XSetBackground(screen->display, screen->textFieldGC,
|
||||||
|
screen->white->color.pixel);
|
||||||
|
}
|
||||||
|
|
||||||
if (!tPtr->flags.enabled)
|
if (!tPtr->flags.enabled)
|
||||||
WMSetColorInGC(screen->black, screen->textFieldGC);
|
WMSetColorInGC(screen->black, screen->textFieldGC);
|
||||||
}
|
}
|
||||||
@@ -559,6 +593,7 @@ blinkCursor(void *data)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
handleEvents(XEvent *event, void *data)
|
handleEvents(XEvent *event, void *data)
|
||||||
{
|
{
|
||||||
@@ -632,6 +667,14 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
count = XLookupString(&event->xkey, buffer, 63, &ksym, NULL);
|
count = XLookupString(&event->xkey, buffer, 63, &ksym, NULL);
|
||||||
buffer[count] = '\0';
|
buffer[count] = '\0';
|
||||||
|
|
||||||
|
if (!event->xkey.state & ShiftMask) {
|
||||||
|
if (tPtr->selection.count)
|
||||||
|
refresh = 1;
|
||||||
|
tPtr->prevselection = tPtr->selection;
|
||||||
|
tPtr->selection.position = tPtr->cursorPosition;
|
||||||
|
tPtr->selection.count = 0;
|
||||||
|
}
|
||||||
|
|
||||||
switch (ksym) {
|
switch (ksym) {
|
||||||
case XK_Tab:
|
case XK_Tab:
|
||||||
if (event->xkey.state & ShiftMask) {
|
if (event->xkey.state & ShiftMask) {
|
||||||
@@ -666,7 +709,16 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
case XK_Left:
|
case XK_Left:
|
||||||
if (tPtr->cursorPosition > 0) {
|
if (tPtr->cursorPosition > 0) {
|
||||||
paintCursor(tPtr);
|
paintCursor(tPtr);
|
||||||
tPtr->cursorPosition--;
|
if (event->xkey.state & ControlMask) {
|
||||||
|
int i;
|
||||||
|
for (i = tPtr->cursorPosition - 1; i >= 0; i--)
|
||||||
|
if (tPtr->text[i] == ' ' || i == 0) {
|
||||||
|
tPtr->cursorPosition = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tPtr->cursorPosition--;
|
||||||
|
}
|
||||||
if (tPtr->cursorPosition < tPtr->viewPosition) {
|
if (tPtr->cursorPosition < tPtr->viewPosition) {
|
||||||
tPtr->viewPosition = tPtr->cursorPosition;
|
tPtr->viewPosition = tPtr->cursorPosition;
|
||||||
refresh = 1;
|
refresh = 1;
|
||||||
@@ -684,7 +736,16 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
case XK_Right:
|
case XK_Right:
|
||||||
if (tPtr->cursorPosition < tPtr->textLen) {
|
if (tPtr->cursorPosition < tPtr->textLen) {
|
||||||
paintCursor(tPtr);
|
paintCursor(tPtr);
|
||||||
tPtr->cursorPosition++;
|
if (event->xkey.state & ControlMask) {
|
||||||
|
int i;
|
||||||
|
for (i = tPtr->cursorPosition + 1; i <= tPtr->textLen; i++)
|
||||||
|
if (tPtr->text[i] == ' ' || i == tPtr->textLen) {
|
||||||
|
tPtr->cursorPosition = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tPtr->cursorPosition++;
|
||||||
|
}
|
||||||
while (WMWidthOfString(scr->normalFont,
|
while (WMWidthOfString(scr->normalFont,
|
||||||
&(tPtr->text[tPtr->viewPosition]),
|
&(tPtr->text[tPtr->viewPosition]),
|
||||||
tPtr->cursorPosition-tPtr->viewPosition)
|
tPtr->cursorPosition-tPtr->viewPosition)
|
||||||
@@ -728,7 +789,7 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
while (WMWidthOfString(scr->normalFont,
|
while (WMWidthOfString(scr->normalFont,
|
||||||
&(tPtr->text[tPtr->viewPosition]),
|
&(tPtr->text[tPtr->viewPosition]),
|
||||||
tPtr->textLen-tPtr->viewPosition)
|
tPtr->textLen-tPtr->viewPosition)
|
||||||
>= tPtr->usableWidth) {
|
> tPtr->usableWidth) {
|
||||||
tPtr->viewPosition++;
|
tPtr->viewPosition++;
|
||||||
refresh = 1;
|
refresh = 1;
|
||||||
}
|
}
|
||||||
@@ -743,10 +804,18 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
}
|
}
|
||||||
case XK_BackSpace:
|
case XK_BackSpace:
|
||||||
if (tPtr->cursorPosition > 0) {
|
if (tPtr->cursorPosition > 0) {
|
||||||
WMRange range;
|
WMRange range;
|
||||||
changed = 1;
|
changed = 1;
|
||||||
range.position = tPtr->cursorPosition-1;
|
if (tPtr->prevselection.count) {
|
||||||
range.count = 1;
|
range.position = tPtr->prevselection.count < 0
|
||||||
|
? tPtr->prevselection.position + tPtr->prevselection.count
|
||||||
|
: tPtr->prevselection.position;
|
||||||
|
|
||||||
|
range.count = abs(tPtr->prevselection.count);
|
||||||
|
} else {
|
||||||
|
range.position = tPtr->cursorPosition - 1;
|
||||||
|
range.count = 1;
|
||||||
|
}
|
||||||
WMDeleteTextFieldRange(tPtr, range);
|
WMDeleteTextFieldRange(tPtr, range);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -757,11 +826,19 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
}
|
}
|
||||||
case XK_KP_Delete:
|
case XK_KP_Delete:
|
||||||
case XK_Delete:
|
case XK_Delete:
|
||||||
if (tPtr->cursorPosition < tPtr->textLen) {
|
if (tPtr->cursorPosition < tPtr->textLen || tPtr->prevselection.count) {
|
||||||
WMRange range;
|
WMRange range;
|
||||||
changed = 1;
|
changed = 1;
|
||||||
range.position = tPtr->cursorPosition;
|
if (tPtr->prevselection.count) {
|
||||||
range.count = 1;
|
range.position = tPtr->prevselection.count < 0
|
||||||
|
? tPtr->prevselection.position + tPtr->prevselection.count
|
||||||
|
: tPtr->prevselection.position;
|
||||||
|
|
||||||
|
range.count = abs(tPtr->prevselection.count);
|
||||||
|
} else {
|
||||||
|
range.position = tPtr->cursorPosition;
|
||||||
|
range.count = 1;
|
||||||
|
}
|
||||||
WMDeleteTextFieldRange(tPtr, range);
|
WMDeleteTextFieldRange(tPtr, range);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -769,10 +846,33 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
|
|||||||
normal_key:
|
normal_key:
|
||||||
default:
|
default:
|
||||||
if (count > 0 && !iscntrl(buffer[0])) {
|
if (count > 0 && !iscntrl(buffer[0])) {
|
||||||
|
WMRange range;
|
||||||
changed = 1;
|
changed = 1;
|
||||||
|
if (tPtr->prevselection.count) {
|
||||||
|
range.position = tPtr->prevselection.count < 0
|
||||||
|
? tPtr->prevselection.position + tPtr->prevselection.count
|
||||||
|
: tPtr->prevselection.position;
|
||||||
|
|
||||||
|
range.count = abs(tPtr->prevselection.count);
|
||||||
|
} else {
|
||||||
|
range.position = tPtr->cursorPosition;
|
||||||
|
range.count = 1;
|
||||||
|
}
|
||||||
|
if (tPtr->prevselection.count)
|
||||||
|
WMDeleteTextFieldRange(tPtr, range);
|
||||||
WMInsertTextFieldText(tPtr, buffer, tPtr->cursorPosition);
|
WMInsertTextFieldText(tPtr, buffer, tPtr->cursorPosition);
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
if (event->xkey.state & ShiftMask) {
|
||||||
|
if (tPtr->selection.count == 0)
|
||||||
|
tPtr->selection.position = tPtr->cursorPosition;
|
||||||
|
tPtr->selection.count = tPtr->cursorPosition - tPtr->selection.position;
|
||||||
|
refresh = 1;
|
||||||
|
}
|
||||||
|
tPtr->prevselection.count = 0;
|
||||||
if (refresh) {
|
if (refresh) {
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
}
|
}
|
||||||
@@ -829,8 +929,17 @@ handleTextFieldActionEvents(XEvent *event, void *data)
|
|||||||
|
|
||||||
case MotionNotify:
|
case MotionNotify:
|
||||||
if (tPtr->flags.enabled && (event->xmotion.state & Button1Mask)) {
|
if (tPtr->flags.enabled && (event->xmotion.state & Button1Mask)) {
|
||||||
|
|
||||||
|
if (!tPtr->selection.count) {
|
||||||
|
tPtr->selection.position = tPtr->cursorPosition;
|
||||||
|
}
|
||||||
|
|
||||||
tPtr->cursorPosition = pointToCursorPosition(tPtr,
|
tPtr->cursorPosition = pointToCursorPosition(tPtr,
|
||||||
event->xmotion.x);
|
event->xmotion.x);
|
||||||
|
|
||||||
|
tPtr->selection.count = tPtr->cursorPosition
|
||||||
|
- tPtr->selection.position;
|
||||||
|
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -844,12 +953,14 @@ handleTextFieldActionEvents(XEvent *event, void *data)
|
|||||||
} else if (tPtr->flags.focused) {
|
} else if (tPtr->flags.focused) {
|
||||||
tPtr->cursorPosition = pointToCursorPosition(tPtr,
|
tPtr->cursorPosition = pointToCursorPosition(tPtr,
|
||||||
event->xbutton.x);
|
event->xbutton.x);
|
||||||
|
tPtr->selection.count = 0;
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
}
|
}
|
||||||
if (event->xbutton.button == Button2 && tPtr->flags.enabled) {
|
if (event->xbutton.button == Button2 && tPtr->flags.enabled) {
|
||||||
char *text;
|
char *text;
|
||||||
|
|
||||||
text = W_GetTextSelection(tPtr->view->screen, XA_PRIMARY);
|
text = W_GetTextSelection(tPtr->view->screen,
|
||||||
|
tPtr->view->screen->clipboardAtom);
|
||||||
if (!text) {
|
if (!text) {
|
||||||
text = W_GetTextSelection(tPtr->view->screen, XA_CUT_BUFFER0);
|
text = W_GetTextSelection(tPtr->view->screen, XA_CUT_BUFFER0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -431,15 +431,6 @@ realizeWindow(WMWindow *win)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
WMHideWindow(WMWindow *win)
|
|
||||||
{
|
|
||||||
WMUnmapWidget(win);
|
|
||||||
XWithdrawWindow(win->view->screen->display, win->view->window,
|
|
||||||
win->view->screen->screen);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
WMSetWindowMinSize(WMWindow *win, unsigned width, unsigned height)
|
WMSetWindowMinSize(WMWindow *win, unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
@@ -564,6 +555,7 @@ WMSetWindowMiniwindowTitle(WMWindow *win, char *title)
|
|||||||
void
|
void
|
||||||
WMCloseWindow(WMWindow *win)
|
WMCloseWindow(WMWindow *win)
|
||||||
{
|
{
|
||||||
|
WMUnmapWidget(win);
|
||||||
/* withdraw the window */
|
/* withdraw the window */
|
||||||
if (win->view->flags.realized)
|
if (win->view->flags.realized)
|
||||||
XWithdrawWindow(win->view->screen->display, win->view->window,
|
XWithdrawWindow(win->view->screen->display, win->view->window,
|
||||||
@@ -588,6 +580,9 @@ handleEvents(XEvent *event, void *clientData)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case UnmapNotify:
|
||||||
|
WMUnmapWidget(win);
|
||||||
|
break;
|
||||||
case DestroyNotify:
|
case DestroyNotify:
|
||||||
destroyWindow(win);
|
destroyWindow(win);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ renderTexture(_Panel *panel, char *texture, int width, int height,
|
|||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
static void
|
static void
|
||||||
updatePreviewBox(_Panel *panel, int elements)
|
updatePreviewBox(_Panel *panel, int elements)
|
||||||
{
|
{
|
||||||
@@ -134,7 +134,7 @@ getStrArrayForKey(char *key)
|
|||||||
|
|
||||||
return PLGetDescription(v);
|
return PLGetDescription(v);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
createPanel(Panel *p)
|
createPanel(Panel *p)
|
||||||
@@ -157,7 +157,8 @@ createPanel(Panel *p)
|
|||||||
panel->secP = WMCreatePopUpButton(panel->frame);
|
panel->secP = WMCreatePopUpButton(panel->frame);
|
||||||
WMResizeWidget(panel->secP, 242, 20);
|
WMResizeWidget(panel->secP, 242, 20);
|
||||||
WMMoveWidget(panel->secP, 10, 207);
|
WMMoveWidget(panel->secP, 10, 207);
|
||||||
// WMSetPopUpButtonAction(panel->secP, changePage, panel);
|
/* WMSetPopUpButtonAction(panel->secP, changePage, panel);
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
/* texture list */
|
/* texture list */
|
||||||
|
|||||||
@@ -43,16 +43,13 @@ WPrefs_SOURCES = \
|
|||||||
xmodifier.c
|
xmodifier.c
|
||||||
|
|
||||||
CPPFLAGS = \
|
CPPFLAGS = \
|
||||||
@CPPFLAGS@ \
|
@CPPFLAGS@
|
||||||
@SHAPE@ @I18N@ @X_LOCALE@ \
|
|
||||||
-DNLSDIR="\"$(nlsdir)\""
|
|
||||||
|
|
||||||
|
|
||||||
INCLUDES = \
|
INCLUDES = \
|
||||||
-I$(top_srcdir)/wrlib \
|
-I$(top_srcdir)/wrlib \
|
||||||
-I$(top_srcdir)/WINGs \
|
-I$(top_srcdir)/WINGs \
|
||||||
-I$(top_srcdir)/libPropList \
|
-I$(top_srcdir)/libPropList @XCFLAGS@
|
||||||
@XCFLAGS@
|
|
||||||
|
|
||||||
WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a
|
WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a
|
||||||
|
|
||||||
|
|||||||
@@ -65,8 +65,6 @@ DFLAGS = @DFLAGS@
|
|||||||
GFXFLAGS = @GFXFLAGS@
|
GFXFLAGS = @GFXFLAGS@
|
||||||
GFXLFLAGS = @GFXLFLAGS@
|
GFXLFLAGS = @GFXLFLAGS@
|
||||||
GFXLIBS = @GFXLIBS@
|
GFXLIBS = @GFXLIBS@
|
||||||
I18N = @I18N@
|
|
||||||
I18N_MB = @I18N_MB@
|
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
LD = @LD@
|
LD = @LD@
|
||||||
@@ -79,19 +77,13 @@ NLSDIR = @NLSDIR@
|
|||||||
NM = @NM@
|
NM = @NM@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
REDUCE_APPICONS = @REDUCE_APPICONS@
|
|
||||||
SHAPE = @SHAPE@
|
|
||||||
SOUND = @SOUND@
|
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
WPMOFILES = @WPMOFILES@
|
WPMOFILES = @WPMOFILES@
|
||||||
XCFLAGS = @XCFLAGS@
|
XCFLAGS = @XCFLAGS@
|
||||||
XGETTEXT = @XGETTEXT@
|
XGETTEXT = @XGETTEXT@
|
||||||
XLFLAGS = @XLFLAGS@
|
XLFLAGS = @XLFLAGS@
|
||||||
XLIBS = @XLIBS@
|
XLIBS = @XLIBS@
|
||||||
XSHM = @XSHM@
|
|
||||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||||
X_LOCALE = @X_LOCALE@
|
|
||||||
pixmapdir = @pixmapdir@
|
|
||||||
wprefsdir = @wprefsdir@
|
wprefsdir = @wprefsdir@
|
||||||
|
|
||||||
SUBDIRS = xpm tiff po
|
SUBDIRS = xpm tiff po
|
||||||
@@ -139,15 +131,12 @@ WPrefs_SOURCES = \
|
|||||||
xmodifier.c
|
xmodifier.c
|
||||||
|
|
||||||
CPPFLAGS = \
|
CPPFLAGS = \
|
||||||
@CPPFLAGS@ \
|
@CPPFLAGS@
|
||||||
@SHAPE@ @I18N@ @X_LOCALE@ \
|
|
||||||
-DNLSDIR="\"$(nlsdir)\""
|
|
||||||
|
|
||||||
INCLUDES = \
|
INCLUDES = \
|
||||||
-I$(top_srcdir)/wrlib \
|
-I$(top_srcdir)/wrlib \
|
||||||
-I$(top_srcdir)/WINGs \
|
-I$(top_srcdir)/WINGs \
|
||||||
-I$(top_srcdir)/libPropList \
|
-I$(top_srcdir)/libPropList @XCFLAGS@
|
||||||
@XCFLAGS@
|
|
||||||
|
|
||||||
WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a
|
WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a
|
||||||
|
|
||||||
|
|||||||
@@ -636,8 +636,8 @@ fillBrowserColumn(WMBrowser *bPtr, int column)
|
|||||||
else
|
else
|
||||||
WMSetTextFieldText(panel->tit1T, getItemTitle(menuList));
|
WMSetTextFieldText(panel->tit1T, getItemTitle(menuList));
|
||||||
} else {
|
} else {
|
||||||
WMSetTextFieldText(panel->tit1T, getItemTitle(panel->menu));
|
|
||||||
menuList = panel->menu;
|
menuList = panel->menu;
|
||||||
|
WMSetTextFieldText(panel->tit1T, getItemTitle(panel->menu));
|
||||||
}
|
}
|
||||||
|
|
||||||
WMHangData(WMGetBrowserListInColumn(bPtr, column), menuList);
|
WMHangData(WMGetBrowserListInColumn(bPtr, column), menuList);
|
||||||
@@ -743,6 +743,8 @@ changedTitle(void *observerData, WMNotification *notification)
|
|||||||
}
|
}
|
||||||
|
|
||||||
menu = (proplist_t)WMGetHangedData(list);
|
menu = (proplist_t)WMGetHangedData(list);
|
||||||
|
if (!menu)
|
||||||
|
return;
|
||||||
|
|
||||||
txt = WMGetTextFieldText(t);
|
txt = WMGetTextFieldText(t);
|
||||||
changeItemTitle(menu, txt);
|
changeItemTitle(menu, txt);
|
||||||
@@ -1272,6 +1274,48 @@ postProcessMenu(proplist_t menu)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static proplist_t
|
||||||
|
getDefaultMenu(_Panel *panel, int *hasWSMenu)
|
||||||
|
{
|
||||||
|
proplist_t menu, pmenu;
|
||||||
|
char *menuPath, *gspath;
|
||||||
|
|
||||||
|
gspath = wusergnusteppath();
|
||||||
|
|
||||||
|
menuPath = wmalloc(strlen(gspath)+128);
|
||||||
|
/* if there is a localized plmenu for the tongue put it's filename here */
|
||||||
|
sprintf(menuPath, _("%s/Library/WindowMaker/plmenu"), gspath);
|
||||||
|
|
||||||
|
menu = PLGetProplistWithPath(menuPath);
|
||||||
|
if (!menu) {
|
||||||
|
wwarning("%s:could not read property list menu", menuPath);
|
||||||
|
|
||||||
|
if (strcmp("%s/Library/WindowMaker/plmenu",
|
||||||
|
_("%s/Library/WindowMaker/plmenu"))!=0) {
|
||||||
|
|
||||||
|
sprintf(menuPath, "%s/Library/WindowMaker/plmenu", gspath);
|
||||||
|
menu = PLGetProplistWithPath(menuPath);
|
||||||
|
wwarning("%s:could not read property list menu", menuPath);
|
||||||
|
}
|
||||||
|
if (!menu) {
|
||||||
|
WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win,
|
||||||
|
_("Error"), _("Could not copy default plmenu file "
|
||||||
|
"from ~/GNUstep/Library/WindowMaker"),
|
||||||
|
_("OK"), NULL, NULL);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
free(gspath);
|
||||||
|
free(menuPath);
|
||||||
|
|
||||||
|
pmenu = preProcessMenu(menu, hasWSMenu);
|
||||||
|
PLRelease(menu);
|
||||||
|
|
||||||
|
return pmenu;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
showData(_Panel *panel)
|
showData(_Panel *panel)
|
||||||
{
|
{
|
||||||
@@ -1289,25 +1333,31 @@ showData(_Panel *panel)
|
|||||||
strcat(menuPath, "/Defaults/WMRootMenu");
|
strcat(menuPath, "/Defaults/WMRootMenu");
|
||||||
|
|
||||||
menu = PLGetProplistWithPath(menuPath);
|
menu = PLGetProplistWithPath(menuPath);
|
||||||
|
pmenu = NULL;
|
||||||
|
|
||||||
if (!menu || !PLIsArray(menu)) {
|
if (!menu || !PLIsArray(menu)) {
|
||||||
sprintf(buffer, _("The format of the current menu in ~/G/D/WMRootMenu "
|
sprintf(buffer, _("The format of the menu in ~/G/D/WMRootMenu is "
|
||||||
"is not supported by WPrefs. A new menu will be created.\n"
|
"not recognized by WPrefs. It might be in a format different "
|
||||||
"You can also replace ~/G/D/WMRootMenu with ~/G/L/W/plmenu "
|
"than the one supported by WPrefs or contain a syntax error. "
|
||||||
"to get the default menu."));
|
"Do you want to continue using the current menu to edit "
|
||||||
|
"it by hand later or replace it with a default menu in the new "
|
||||||
|
"format?"));
|
||||||
if (WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win,
|
if (WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win,
|
||||||
_("Warning"), buffer, _("OK"), _("Cancel"),
|
_("Warning"), buffer, _("Keep current menu"),
|
||||||
NULL)==WAPRDefault) {
|
_("Install default menu"), NULL)!=WAPRDefault) {
|
||||||
panel->dontSave = 0;
|
panel->dontSave = 0;
|
||||||
|
|
||||||
|
pmenu = getDefaultMenu(panel, &hasWSMenu);
|
||||||
} else {
|
} else {
|
||||||
WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win,
|
WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win,
|
||||||
_("Warning"), _("Any changes made in this section will not be saved"),
|
_("Warning"), _("Any changes made in this section will not be saved"),
|
||||||
_("OK"), NULL, NULL);
|
_("OK"), NULL, NULL);
|
||||||
panel->dontSave = 1;
|
panel->dontSave = 1;
|
||||||
}
|
}
|
||||||
|
if (!pmenu) {
|
||||||
pmenu = PLMakeArrayFromElements(PLMakeString("Applications"),
|
pmenu = PLMakeArrayFromElements(PLMakeString("Applications"),
|
||||||
NULL);
|
NULL);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
pmenu = preProcessMenu(menu, &hasWSMenu);
|
pmenu = preProcessMenu(menu, &hasWSMenu);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ typedef struct _Panel {
|
|||||||
WMLabel *speedL;
|
WMLabel *speedL;
|
||||||
WMButton *speedB[5];
|
WMButton *speedB[5];
|
||||||
WMLabel *acceL;
|
WMLabel *acceL;
|
||||||
|
WMTextField *acceT;
|
||||||
WMLabel *threL;
|
WMLabel *threL;
|
||||||
WMTextField *threT;
|
WMTextField *threT;
|
||||||
|
|
||||||
@@ -137,25 +138,40 @@ speedClick(WMWidget *w, void *data)
|
|||||||
int threshold;
|
int threshold;
|
||||||
char *tmp;
|
char *tmp;
|
||||||
|
|
||||||
for (i=0; i<5; i++) {
|
if (w == NULL) {
|
||||||
if (panel->speedB[i]==w)
|
float accel;
|
||||||
break;
|
|
||||||
|
tmp = WMGetTextFieldText(panel->acceT);
|
||||||
|
if (sscanf(tmp, "%f", &accel)!=1 || accel < 0) {
|
||||||
|
WMRunAlertPanel(WMWidgetScreen(w), GetWindow(panel), _("Error"),
|
||||||
|
_("Invalid mouse acceleration value. Must be a positive real value."),
|
||||||
|
_("OK"), NULL, NULL);
|
||||||
|
free(tmp);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
panel->acceleration = accel;
|
||||||
|
free(tmp);
|
||||||
|
} else {
|
||||||
|
for (i=0; i<5; i++) {
|
||||||
|
if (panel->speedB[i]==w)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
panel->acceleration = 0.5+(i*0.5);
|
||||||
|
|
||||||
|
sprintf(buffer, "%.2f", 0.5+(i*0.5));
|
||||||
|
WMSetTextFieldText(panel->acceT, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
panel->lastClickedSpeed = panel->speedB[i];
|
|
||||||
panel->acceleration = 0.5+(i*0.5);
|
|
||||||
|
|
||||||
sprintf(buffer, _("Accel.: %.2f"), 0.5+(i*0.5));
|
|
||||||
WMSetLabelText(panel->acceL, buffer);
|
|
||||||
|
|
||||||
tmp = WMGetTextFieldText(panel->threT);
|
tmp = WMGetTextFieldText(panel->threT);
|
||||||
if (sscanf(tmp, "%i", &threshold)!=1 || threshold < 0
|
if (sscanf(tmp, "%i", &threshold)!=1 || threshold < 0
|
||||||
|| threshold > panel->maxThreshold) {
|
|| threshold > panel->maxThreshold) {
|
||||||
WMRunAlertPanel(WMWidgetScreen(w), GetWindow(panel), _("Error"),
|
WMRunAlertPanel(WMWidgetScreen(panel->win), GetWindow(panel), _("Error"),
|
||||||
_("Invalid mouse acceleration threshold value. Must be the number of pixels to travel before accelerating."),
|
_("Invalid mouse acceleration threshold value. Must be the number of pixels to travel before accelerating."),
|
||||||
_("OK"), NULL, NULL);
|
_("OK"), NULL, NULL);
|
||||||
} else {
|
} else {
|
||||||
setMouseAccel(WMWidgetScreen(w), 0.5+(i*0.5), threshold);
|
setMouseAccel(WMWidgetScreen(panel->win), panel->acceleration,
|
||||||
|
threshold);
|
||||||
}
|
}
|
||||||
free(tmp);
|
free(tmp);
|
||||||
}
|
}
|
||||||
@@ -166,7 +182,7 @@ returnPressed(void *observerData, WMNotification *notification)
|
|||||||
{
|
{
|
||||||
_Panel *panel = (_Panel*)observerData;
|
_Panel *panel = (_Panel*)observerData;
|
||||||
|
|
||||||
speedClick(panel->lastClickedSpeed, panel);
|
speedClick(NULL, panel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -554,8 +570,15 @@ createPanel(Panel *p)
|
|||||||
free(buf2);
|
free(buf2);
|
||||||
|
|
||||||
panel->acceL = WMCreateLabel(panel->speedF);
|
panel->acceL = WMCreateLabel(panel->speedF);
|
||||||
WMResizeWidget(panel->acceL, 100, 16);
|
WMResizeWidget(panel->acceL, 80, 16);
|
||||||
WMMoveWidget(panel->acceL, 10, 67);
|
WMMoveWidget(panel->acceL, 10, 67);
|
||||||
|
WMSetLabelText(panel->acceL, _("Acceler.:"));
|
||||||
|
|
||||||
|
panel->acceT = WMCreateTextField(panel->speedF);
|
||||||
|
WMResizeWidget(panel->acceT, 35, 20);
|
||||||
|
WMMoveWidget(panel->acceT, 85, 65);
|
||||||
|
WMAddNotificationObserver(returnPressed, panel,
|
||||||
|
WMTextDidEndEditingNotification, panel->acceT);
|
||||||
|
|
||||||
|
|
||||||
panel->threL = WMCreateLabel(panel->speedF);
|
panel->threL = WMCreateLabel(panel->speedF);
|
||||||
@@ -564,8 +587,8 @@ createPanel(Panel *p)
|
|||||||
WMSetLabelText(panel->threL, _("Threshold:"));
|
WMSetLabelText(panel->threL, _("Threshold:"));
|
||||||
|
|
||||||
panel->threT = WMCreateTextField(panel->speedF);
|
panel->threT = WMCreateTextField(panel->speedF);
|
||||||
WMResizeWidget(panel->threT, 40, 20);
|
WMResizeWidget(panel->threT, 30, 20);
|
||||||
WMMoveWidget(panel->threT, 190, 65);
|
WMMoveWidget(panel->threT, 200, 65);
|
||||||
WMAddNotificationObserver(returnPressed, panel,
|
WMAddNotificationObserver(returnPressed, panel,
|
||||||
WMTextDidEndEditingNotification, panel->threT);
|
WMTextDidEndEditingNotification, panel->threT);
|
||||||
|
|
||||||
|
|||||||
@@ -564,7 +564,7 @@ loadConfigurations(WMScreen *scr, WMWindow *mainw)
|
|||||||
}
|
}
|
||||||
free(path);
|
free(path);
|
||||||
|
|
||||||
file = popen("wmaker -version", "r");
|
file = popen("wmaker --version", "r");
|
||||||
if (!file || !fgets(buffer, 1023, file)) {
|
if (!file || !fgets(buffer, 1023, file)) {
|
||||||
wsyserror(_("could not extract version information from Window Maker"));
|
wsyserror(_("could not extract version information from Window Maker"));
|
||||||
wfatal(_("Make sure wmaker is in your search path."));
|
wfatal(_("Make sure wmaker is in your search path."));
|
||||||
@@ -597,9 +597,9 @@ loadConfigurations(WMScreen *scr, WMWindow *mainw)
|
|||||||
WMRunAlertPanel(scr, mainw, _("Warning"), mbuf, _("OK"), NULL, NULL);
|
WMRunAlertPanel(scr, mainw, _("Warning"), mbuf, _("OK"), NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
file = popen("wmaker -global_defaults_path", "r");
|
file = popen("wmaker --global_defaults_path", "r");
|
||||||
if (!file || !fgets(buffer, 1023, file)) {
|
if (!file || !fgets(buffer, 1023, file)) {
|
||||||
wsyserror(_("could not run \"wmaker -global_defaults_path\"."));
|
wsyserror(_("could not run \"wmaker --global_defaults_path\"."));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (file)
|
if (file)
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ showData(_Panel *panel)
|
|||||||
|
|
||||||
sliderCallback(NULL, panel);
|
sliderCallback(NULL, panel);
|
||||||
|
|
||||||
WMSetButtonSelected(panel->tranB, GetBoolForKey("OnTopTransients"));
|
WMSetButtonSelected(panel->tranB, GetBoolForKey("OpenTransientOnOwnerWorkspace"));
|
||||||
|
|
||||||
WMSetButtonSelected(panel->opaqB, GetBoolForKey("OpaqueMove"));
|
WMSetButtonSelected(panel->opaqB, GetBoolForKey("OpaqueMove"));
|
||||||
|
|
||||||
@@ -159,7 +159,7 @@ storeData(_Panel *panel)
|
|||||||
SetBoolForKey(WMGetButtonSelected(panel->miconB), "NoWindowOverIcons");
|
SetBoolForKey(WMGetButtonSelected(panel->miconB), "NoWindowOverIcons");
|
||||||
SetBoolForKey(WMGetButtonSelected(panel->mdockB), "NoWindowOverDock");
|
SetBoolForKey(WMGetButtonSelected(panel->mdockB), "NoWindowOverDock");
|
||||||
SetBoolForKey(WMGetButtonSelected(panel->opaqB), "OpaqueMove");
|
SetBoolForKey(WMGetButtonSelected(panel->opaqB), "OpaqueMove");
|
||||||
SetBoolForKey(WMGetButtonSelected(panel->tranB), "OnTopTransients");
|
SetBoolForKey(WMGetButtonSelected(panel->tranB), "OpenTransientOnOwnerWorkspace");
|
||||||
SetStringForKey(placements[WMGetPopUpButtonSelectedItem(panel->placP)],
|
SetStringForKey(placements[WMGetPopUpButtonSelectedItem(panel->placP)],
|
||||||
"WindowPlacement");
|
"WindowPlacement");
|
||||||
sprintf(x, "%i", WMGetSliderValue(panel->hsli));
|
sprintf(x, "%i", WMGetSliderValue(panel->hsli));
|
||||||
@@ -317,7 +317,7 @@ createPanel(Panel *p)
|
|||||||
panel->tranB = WMCreateSwitchButton(panel->tranF);
|
panel->tranB = WMCreateSwitchButton(panel->tranF);
|
||||||
WMMoveWidget(panel->tranB, 10, 5);
|
WMMoveWidget(panel->tranB, 10, 5);
|
||||||
WMResizeWidget(panel->tranB, 250, 30);
|
WMResizeWidget(panel->tranB, 250, 30);
|
||||||
WMSetButtonText(panel->tranB, _("Keep transients above their owners"));
|
WMSetButtonText(panel->tranB, _("Open transients in same workspace as their owners"));
|
||||||
|
|
||||||
WMMapSubwidgets(panel->tranF);
|
WMMapSubwidgets(panel->tranF);
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ struct {
|
|||||||
static pid_t DeadChildren[MAX_DEATHS];
|
static pid_t DeadChildren[MAX_DEATHS];
|
||||||
static int DeadChildrenCount = 0;
|
static int DeadChildrenCount = 0;
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
wAbort(Bool foo)
|
wAbort(Bool foo)
|
||||||
{
|
{
|
||||||
@@ -72,11 +71,12 @@ print_help(char *progname)
|
|||||||
printf(_("usage: %s [options]\n"), progname);
|
printf(_("usage: %s [options]\n"), progname);
|
||||||
puts(_("options:"));
|
puts(_("options:"));
|
||||||
puts(_(" -display <display> display to be used"));
|
puts(_(" -display <display> display to be used"));
|
||||||
puts(_(" -version print version number and exit"));
|
puts(_(" --version print version number and exit"));
|
||||||
|
puts(_(" --help print this message and exit"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
static RETSIGTYPE
|
static RETSIGTYPE
|
||||||
handleDeadChild(int sig)
|
handleDeadChild(int sig)
|
||||||
{
|
{
|
||||||
@@ -88,7 +88,7 @@ handleDeadChild(int sig)
|
|||||||
DeadChildren[DeadChildrenCount++] = pid;
|
DeadChildren[DeadChildrenCount++] = pid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void
|
void
|
||||||
AddDeadChildHandler(pid_t pid, void (*handler)(void*), void *data)
|
AddDeadChildHandler(pid_t pid, void (*handler)(void*), void *data)
|
||||||
@@ -107,7 +107,6 @@ AddDeadChildHandler(pid_t pid, void (*handler)(void*), void *data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
@@ -117,14 +116,17 @@ main(int argc, char **argv)
|
|||||||
int i;
|
int i;
|
||||||
char *display_name="";
|
char *display_name="";
|
||||||
|
|
||||||
|
wsetabort(wAbort);
|
||||||
|
|
||||||
memset(DeadHandlers, 0, sizeof(DeadHandlers));
|
memset(DeadHandlers, 0, sizeof(DeadHandlers));
|
||||||
|
|
||||||
WMInitializeApplication("WPrefs", &argc, argv);
|
WMInitializeApplication("WPrefs", &argc, argv);
|
||||||
|
|
||||||
if (argc>1) {
|
if (argc>1) {
|
||||||
for (i=1; i<argc; i++) {
|
for (i=1; i<argc; i++) {
|
||||||
if (strcmp(argv[i], "-version")==0) {
|
if (strcmp(argv[i], "-version")==0
|
||||||
printf("WPrefs %s\n", WVERSION);
|
|| strcmp(argv[i], "--version")==0) {
|
||||||
|
printf("WPrefs (Window Maker) %s\n", WVERSION);
|
||||||
exit(0);
|
exit(0);
|
||||||
} else if (strcmp(argv[i], "-display")==0) {
|
} else if (strcmp(argv[i], "-display")==0) {
|
||||||
i++;
|
i++;
|
||||||
|
|||||||
@@ -45,8 +45,8 @@ WPrefs.pot: $(POTFILES)
|
|||||||
|
|
||||||
|
|
||||||
install-data-local: $(CATALOGS)
|
install-data-local: $(CATALOGS)
|
||||||
$(mkinstalldirs) $(nlsdir)
|
$(mkinstalldirs) $(DESTDIR)$(nlsdir)
|
||||||
chmod 755 $(nlsdir)
|
chmod 755 $(DESTDIR)$(nlsdir)
|
||||||
for n in $(CATALOGS) __DuMmY ; do \
|
for n in $(CATALOGS) __DuMmY ; do \
|
||||||
if test "$$n" -a "$$n" != "__DuMmY" ; then \
|
if test "$$n" -a "$$n" != "__DuMmY" ; then \
|
||||||
l=`basename $$n .mo`; \
|
l=`basename $$n .mo`; \
|
||||||
|
|||||||
@@ -65,8 +65,6 @@ DFLAGS = @DFLAGS@
|
|||||||
GFXFLAGS = @GFXFLAGS@
|
GFXFLAGS = @GFXFLAGS@
|
||||||
GFXLFLAGS = @GFXLFLAGS@
|
GFXLFLAGS = @GFXLFLAGS@
|
||||||
GFXLIBS = @GFXLIBS@
|
GFXLIBS = @GFXLIBS@
|
||||||
I18N = @I18N@
|
|
||||||
I18N_MB = @I18N_MB@
|
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
LD = @LD@
|
LD = @LD@
|
||||||
@@ -79,19 +77,13 @@ NLSDIR = @NLSDIR@
|
|||||||
NM = @NM@
|
NM = @NM@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
REDUCE_APPICONS = @REDUCE_APPICONS@
|
|
||||||
SHAPE = @SHAPE@
|
|
||||||
SOUND = @SOUND@
|
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
WPMOFILES = @WPMOFILES@
|
WPMOFILES = @WPMOFILES@
|
||||||
XCFLAGS = @XCFLAGS@
|
XCFLAGS = @XCFLAGS@
|
||||||
XGETTEXT = @XGETTEXT@
|
XGETTEXT = @XGETTEXT@
|
||||||
XLFLAGS = @XLFLAGS@
|
XLFLAGS = @XLFLAGS@
|
||||||
XLIBS = @XLIBS@
|
XLIBS = @XLIBS@
|
||||||
XSHM = @XSHM@
|
|
||||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||||
X_LOCALE = @X_LOCALE@
|
|
||||||
pixmapdir = @pixmapdir@
|
|
||||||
wprefsdir = @wprefsdir@
|
wprefsdir = @wprefsdir@
|
||||||
|
|
||||||
nlsdir = @NLSDIR@
|
nlsdir = @NLSDIR@
|
||||||
@@ -227,8 +219,8 @@ WPrefs.pot: $(POTFILES)
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
install-data-local: $(CATALOGS)
|
install-data-local: $(CATALOGS)
|
||||||
$(mkinstalldirs) $(nlsdir)
|
$(mkinstalldirs) $(DESTDIR)$(nlsdir)
|
||||||
chmod 755 $(nlsdir)
|
chmod 755 $(DESTDIR)$(nlsdir)
|
||||||
for n in $(CATALOGS) __DuMmY ; do \
|
for n in $(CATALOGS) __DuMmY ; do \
|
||||||
if test "$$n" -a "$$n" != "__DuMmY" ; then \
|
if test "$$n" -a "$$n" != "__DuMmY" ; then \
|
||||||
l=`basename $$n .mo`; \
|
l=`basename $$n .mo`; \
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1271,4 +1271,3 @@ msgstr "ne mogu inicijalizirati aplikaciju"
|
|||||||
# msgid "Icon Size"
|
# msgid "Icon Size"
|
||||||
# msgstr "Velièina ikone"
|
# msgstr "Velièina ikone"
|
||||||
#
|
#
|
||||||
| |||||||