mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 12:28:22 +01:00
Code update for Window Maker version 0.50.0
Read changes in ChangeLog and NEWS
This commit is contained in:
20
AUTHORS
20
AUTHORS
@@ -13,7 +13,7 @@ restart, dock bug fixes
|
|||||||
Andrea Arcangeli <arcangeli@mbox.queen.it>
|
Andrea Arcangeli <arcangeli@mbox.queen.it>
|
||||||
Fix for cascade window placement
|
Fix for cascade window placement
|
||||||
|
|
||||||
Peter Bentley <peter.bentley@nomura.co.uk>
|
Peter Bentley <pete@sorted.org>
|
||||||
fixed WM_STATE handling bug, fixed some memory leaks, made application menus
|
fixed WM_STATE handling bug, fixed some memory leaks, made application menus
|
||||||
be mapped near the windows for non-click-to-focus modes, timer bug
|
be mapped near the windows for non-click-to-focus modes, timer bug
|
||||||
|
|
||||||
@@ -27,6 +27,9 @@ shaded window indication in window list
|
|||||||
Rob Clark <rclark@turing.cs.hmc.edu>
|
Rob Clark <rclark@turing.cs.hmc.edu>
|
||||||
Text input field, 15bpp support
|
Text input field, 15bpp support
|
||||||
|
|
||||||
|
George Clernon <clernong@tinet.ie>
|
||||||
|
bug fix in browser widget
|
||||||
|
|
||||||
Sylvain CORRE <sylvain.corre@wanadoo.fr>
|
Sylvain CORRE <sylvain.corre@wanadoo.fr>
|
||||||
bug fix for MkLinux/PPC
|
bug fix for MkLinux/PPC
|
||||||
|
|
||||||
@@ -53,8 +56,8 @@ Documentation help, autoconf cleanup
|
|||||||
Mark 'segfault' Guzman <root@lsd.pbx.org>
|
Mark 'segfault' Guzman <root@lsd.pbx.org>
|
||||||
Various bugfixes
|
Various bugfixes
|
||||||
|
|
||||||
Ullrich Hafner <hafner@informatik.uni-wuerzburg.de>
|
Ullrich Hafner <hafner@bigfoot.de>
|
||||||
Better detection of gfx libraries
|
Better detection of gfx libraries, added IconTitleColor/IconTitleBack
|
||||||
|
|
||||||
Greg Hayes <sdc@choice.net>
|
Greg Hayes <sdc@choice.net>
|
||||||
Twisted miniaturization animation
|
Twisted miniaturization animation
|
||||||
@@ -111,7 +114,7 @@ Tim Malone <mrgone@eskimo.com>
|
|||||||
bug fix, jpeg bug fix
|
bug fix, jpeg bug fix
|
||||||
|
|
||||||
MANOME Tomonori <manome@itlb.te.noda.sut.ac.jp>
|
MANOME Tomonori <manome@itlb.te.noda.sut.ac.jp>
|
||||||
I18N bug fixes and japanese locale
|
I18N bug fixes and japanese locale, wsetfont script
|
||||||
|
|
||||||
Brian Alexander Martin <brian@goober.wireless.ucsc.edu>
|
Brian Alexander Martin <brian@goober.wireless.ucsc.edu>
|
||||||
PIPE_MENU
|
PIPE_MENU
|
||||||
@@ -141,7 +144,7 @@ Initial code for clip's collapse feature.
|
|||||||
Ture Pelsson <ture@lysator.liu.se>
|
Ture Pelsson <ture@lysator.liu.se>
|
||||||
various portability fixes, replaced busy wait with select() in event
|
various portability fixes, replaced busy wait with select() in event
|
||||||
handling code, fixed problem with some misbehaved kids after a fork(),
|
handling code, fixed problem with some misbehaved kids after a fork(),
|
||||||
some other bug fixes
|
some other bug fixes, support for poll() in event handling code
|
||||||
|
|
||||||
Toby Sargeant <?>
|
Toby Sargeant <?>
|
||||||
menu format converter
|
menu format converter
|
||||||
@@ -155,6 +158,9 @@ REDUCE_APPICON/single-icon
|
|||||||
Chong Shang Shan <chongsha@sps.nus.edu.sg>
|
Chong Shang Shan <chongsha@sps.nus.edu.sg>
|
||||||
flipping iconification animation
|
flipping iconification animation
|
||||||
|
|
||||||
|
Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>
|
||||||
|
SGI "black dialogs" bug fix
|
||||||
|
|
||||||
Paul D. Smith <psmith@BayNetworks.COM>
|
Paul D. Smith <psmith@BayNetworks.COM>
|
||||||
SunOS portability, configure fixes
|
SunOS portability, configure fixes
|
||||||
|
|
||||||
@@ -182,7 +188,9 @@ dgradient fix
|
|||||||
|
|
||||||
"]d" <mhz@gpf.or.th>
|
"]d" <mhz@gpf.or.th>
|
||||||
Window list menu miniaturized/hidden hints, XDE support, XKB lock
|
Window list menu miniaturized/hidden hints, XDE support, XKB lock
|
||||||
language status
|
language status, WINGs enhancements, bug fixes, window commands menu
|
||||||
|
enhancement, window move/resize by keyboard
|
||||||
|
|
||||||
|
|
||||||
Trae Mc Combs <x@themes.org>
|
Trae Mc Combs <x@themes.org>
|
||||||
BlueWaves.jpeg background image in BlueWaves theme.
|
BlueWaves.jpeg background image in BlueWaves theme.
|
||||||
|
|||||||
2
BUGS
2
BUGS
@@ -2,8 +2,6 @@
|
|||||||
- 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
|
||||||
- stacking code is buggy (or XFree is buggy)
|
- stacking code is buggy (or XFree is buggy)
|
||||||
- WINGs has problems in some platforms (SGI, Sun etc.) Anyone on these
|
|
||||||
systems want to fix it?
|
|
||||||
- save session doesnt work on some platforms (Alpha and Sparc)
|
- save session doesnt work on some platforms (Alpha and Sparc)
|
||||||
- texture pixmaps are being incorrectly freed somewhere. Either
|
- texture pixmaps are being incorrectly freed somewhere. Either
|
||||||
fix bug (to support broken MetroX servers) or remove all useless references
|
fix bug (to support broken MetroX servers) or remove all useless references
|
||||||
|
|||||||
42
ChangeLog
42
ChangeLog
@@ -1,3 +1,45 @@
|
|||||||
|
Changes since version 0.20.3:
|
||||||
|
.............................
|
||||||
|
|
||||||
|
- window list is ordered by workspace
|
||||||
|
- preliminary grid move mode
|
||||||
|
- fixed prob with docked apps with the same name switching places (like wmmon
|
||||||
|
and wmmon -s)
|
||||||
|
- wrapping of workspace switching for 5button mice
|
||||||
|
- added restart in fallback menu
|
||||||
|
- fixed buglet in modifier error reporting
|
||||||
|
- extra options in window command menu
|
||||||
|
- changed select() used in wevent.c to poll()
|
||||||
|
- fixed bug in SGI boxes (black dialogs)
|
||||||
|
- added IconTitleBack, IconTitleColor
|
||||||
|
- made error checking stricter
|
||||||
|
- fixed crash when saving application supplied icons that have many colors
|
||||||
|
- added move threshold to menus
|
||||||
|
- added textured gradient textures
|
||||||
|
- added -nofont flag for setstyle
|
||||||
|
- added -p flag and theme pack support for getstyle
|
||||||
|
- fixed crash bug when clicking on menu title opened with kbd
|
||||||
|
- fixed bug that caused incorrect saving of icon configuration (the -name bug)
|
||||||
|
- scale pixmap texture for workspaceback type will maintain aspect ratio
|
||||||
|
- fixed memory leak in jpeg loader
|
||||||
|
- started XStandardColormap support
|
||||||
|
- added StartMaximized window flag
|
||||||
|
- fixed bug of mixed up Unfocusable and StartMiniaturized flags
|
||||||
|
- yet another try to switch to shared libraries
|
||||||
|
- workspace specific background images
|
||||||
|
- stack new windows to under focused window if autofocus is off (disabled)
|
||||||
|
- added kde support
|
||||||
|
- implemented the "GNOME Window Manager Compliance" stuff
|
||||||
|
- window move/resize by keyboard
|
||||||
|
- rewrote window attribute code to make it cleaner
|
||||||
|
- added --enable-lite configure option
|
||||||
|
- added support to change prompt in %a() for root menu
|
||||||
|
- rewrote exit code
|
||||||
|
- added KeepInsideScreen=YES; for scilab in default WMWindowAttributes
|
||||||
|
- added an option to the Clip, to allow automatic Raise/Lower when the mouse
|
||||||
|
cursor enter/leave the Clip.
|
||||||
|
|
||||||
|
|
||||||
Changes since version 0.20.2:
|
Changes since version 0.20.2:
|
||||||
.............................
|
.............................
|
||||||
|
|
||||||
|
|||||||
67
INSTALL
67
INSTALL
@@ -7,12 +7,13 @@ SUPPORTED PLATFORMS
|
|||||||
===================
|
===================
|
||||||
(ie: I've heard someone has compiled it on...)
|
(ie: I've heard someone has compiled it on...)
|
||||||
|
|
||||||
- Intel/Linux RedHat 4.2 (primary platform)
|
- Intel/Linux Slackware 3.5 (primary platform)
|
||||||
- Intel/Linux other distributions
|
- Intel/Linux other distributions
|
||||||
- Sparc/Linux RedHat 5.1
|
- Sparc/Linux RedHat 5.1
|
||||||
- PowerPC/MkLinux
|
- PowerPC/MkLinux
|
||||||
- Alpha/Linux RedHat 5.1
|
- Alpha/Linux RedHat 5.1
|
||||||
- FreeBSD
|
- FreeBSD
|
||||||
|
- NetBSD
|
||||||
- Solaris 2.5.1, 2.5.2
|
- Solaris 2.5.1, 2.5.2
|
||||||
- Solaris 2.6.0
|
- Solaris 2.6.0
|
||||||
- Solaris 2.7beta
|
- Solaris 2.7beta
|
||||||
@@ -21,15 +22,19 @@ SUPPORTED PLATFORMS
|
|||||||
- OSF/1
|
- OSF/1
|
||||||
- HP-UX
|
- HP-UX
|
||||||
- AIX 4.1.4 / IBM PowerPC
|
- AIX 4.1.4 / IBM PowerPC
|
||||||
|
- AIX 4.3.2 / IBM PowerPC
|
||||||
- AIX 5.3
|
- AIX 5.3
|
||||||
- DEC Alpha/Digital UNIX 4.x
|
- DEC Alpha/Digital UNIX 4.x
|
||||||
- XFree86 / OS/2
|
- XFree86 / OS/2
|
||||||
- Corel NetWinder
|
- Corel NetWinder
|
||||||
- SunOS 4.x
|
- SunOS 4.x
|
||||||
- MacOS / MachTen 4.1.1
|
- PowerMac / Power MachTen 4.1.1 over MacOS
|
||||||
|
|
||||||
Patches to make it work on other platforms are welcome.
|
Patches to make it work on other platforms are welcome.
|
||||||
|
|
||||||
|
If the latest version doesn't work for you, try 0.19.3,
|
||||||
|
which is known to be pretty stable on many platforms.
|
||||||
|
|
||||||
|
|
||||||
REQUIREMENTS:
|
REQUIREMENTS:
|
||||||
=============
|
=============
|
||||||
@@ -72,8 +77,7 @@ OPTIONAL:
|
|||||||
These libraries are not required to make Window Maker work, but they
|
These libraries are not required to make Window Maker work, but they
|
||||||
are supported in case you want to use them. Version numbers are those
|
are supported in case you want to use them. Version numbers are those
|
||||||
that I have (and therefore, guraranteed to work), but other versions
|
that I have (and therefore, guraranteed to work), but other versions
|
||||||
might work too. Tell me if you made wmaker work with some library
|
might work too.
|
||||||
with a version older than the stated here.
|
|
||||||
|
|
||||||
|
|
||||||
- libXPM 4.7 or newer
|
- libXPM 4.7 or newer
|
||||||
@@ -118,6 +122,37 @@ 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
|
||||||
|
and other languagues that require special characters.
|
||||||
|
|
||||||
|
--enable-single-icon enables the collapsing of all appicons of the
|
||||||
|
WM_CLASS+WM_INSTANCE into a single one. This feature is not
|
||||||
|
supported at all by the 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
|
||||||
|
slow down texture generation a little bit, but in some cases
|
||||||
|
it seems to be necessary due to a bug that manifests as messed
|
||||||
|
icons and textures.
|
||||||
|
|
||||||
|
--disable-motif disable support for mwm hints
|
||||||
|
|
||||||
|
--enable-gnome enable support for stuff needed by GNOME
|
||||||
|
(GNOME compliant bla bla bla)
|
||||||
|
|
||||||
|
--enable-kde enable support for kde/kwm hints
|
||||||
|
|
||||||
|
--enable-lite 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.
|
||||||
|
|
||||||
|
--enable-modelock XKB language status lock support. If you don't know
|
||||||
|
what it is you probably don't need it.
|
||||||
|
|
||||||
--enable-sound enable support of sound effects module
|
--enable-sound enable support of sound effects module
|
||||||
|
|
||||||
--disable-xpm disables use of the XPM library even if it is available on
|
--disable-xpm disables use of the XPM library even if it is available on
|
||||||
@@ -136,19 +171,6 @@ To get a list of other options, run ./configure --help
|
|||||||
--enable-debug adds extra debugging information. Do not use it
|
--enable-debug adds extra debugging information. Do not use it
|
||||||
unless you're debugging Window Maker.
|
unless you're debugging Window Maker.
|
||||||
|
|
||||||
--enable-kanji 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
|
|
||||||
WM_CLASS+WM_INSTANCE into a single one. This feature is not
|
|
||||||
supported at all by the 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
|
|
||||||
slow down texture generation.
|
|
||||||
|
|
||||||
--enable-modelock XKB language status lock support. If you don't know
|
|
||||||
what it is you probably don't need it.
|
|
||||||
|
|
||||||
|
|
||||||
PLATFORM SPECIFIC NOTES:
|
PLATFORM SPECIFIC NOTES:
|
||||||
@@ -164,6 +186,11 @@ PLATFORM SPECIFIC NOTES:
|
|||||||
You also might need to use the --with-gfx-libs and --with-gfx-incs
|
You also might need to use the --with-gfx-libs and --with-gfx-incs
|
||||||
to supply the directory where libtiff is located.
|
to supply the directory where libtiff is located.
|
||||||
|
|
||||||
|
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
|
||||||
|
set to 24bpp or you might experience problems with mangled colors.
|
||||||
|
This is a bug and will be fixed.
|
||||||
|
|
||||||
- RedHat Linux
|
- RedHat Linux
|
||||||
Make sure you don't have the LANG and LINGUAS environment variables
|
Make sure you don't have the LANG and LINGUAS environment variables
|
||||||
set to en_RN. Also, make sure you have /usr/local/bin in your
|
set to en_RN. Also, make sure you have /usr/local/bin in your
|
||||||
@@ -424,9 +451,9 @@ menu
|
|||||||
configure the fonts appropriately. Read the manual page for XCreateFontSet
|
configure the fonts appropriately. Read the manual page for XCreateFontSet
|
||||||
to have more details about it. You must change the ~/G/D/WindowMaker file
|
to have more details about it. You must change the ~/G/D/WindowMaker file
|
||||||
for fonts used in titlebars, menus and other things. For fonts used in
|
for fonts used in titlebars, menus and other things. For fonts used in
|
||||||
dialog windows, change ~/G/D/WMGLOBAL. Note that at the moment you can only
|
dialog windows, change ~/G/D/WMGLOBAL. The %d in the font names must not be
|
||||||
supply a single font in WMGLOBAL. The %d in the font names must not be
|
removed. You can also use the supplied wsetfont script for the task.
|
||||||
removed.
|
Read the script itself for instructions.
|
||||||
|
|
||||||
For example, you can specify the following in ~/G/D/WindowMaker:
|
For example, you can specify the following in ~/G/D/WindowMaker:
|
||||||
|
|
||||||
|
|||||||
24
Install
24
Install
@@ -57,6 +57,30 @@ echo
|
|||||||
echo "Option Selection"
|
echo "Option Selection"
|
||||||
echo "================"
|
echo "================"
|
||||||
|
|
||||||
|
######################## KDE
|
||||||
|
echo
|
||||||
|
echo "Do you want KDE support?"
|
||||||
|
echo -n <y/n> [n] "
|
||||||
|
read kde
|
||||||
|
if [ "$kde" = y -o "$kde" = Y ]; then
|
||||||
|
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
|
||||||
|
|
||||||
|
######################## GNOME
|
||||||
|
echo
|
||||||
|
echo "Do you want GNOME support?"
|
||||||
|
echo -n <y/n> [n] "
|
||||||
|
read gnome
|
||||||
|
if [ "$gnome" = y -o "$gnome" = Y ]; then
|
||||||
|
OPTIONS="$OPTIONS --enable-gnome"
|
||||||
|
fi
|
||||||
|
|
||||||
######################## NLS
|
######################## NLS
|
||||||
echo
|
echo
|
||||||
|
|||||||
5
MIRRORS
5
MIRRORS
@@ -37,6 +37,11 @@ ftp://ftp.cybertrails.com/pub/windowmaker/
|
|||||||
Contact: Adam Jacob <adam@cybertrails.com>
|
Contact: Adam Jacob <adam@cybertrails.com>
|
||||||
|
|
||||||
|
|
||||||
|
Provider: Ameth Technologies
|
||||||
|
http://www.ameth.org/windowmaker/
|
||||||
|
ftp://ftp.ameth.org/pub/mirrors/ftp.windowmaker.org/
|
||||||
|
Contact: Chase Phillips <shepard@ameth.org>
|
||||||
|
|
||||||
|
|
||||||
Third Party WindowMaker Distribution Packages
|
Third Party WindowMaker Distribution Packages
|
||||||
=============================================
|
=============================================
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -100,7 +103,7 @@ CONFIG_HEADER = ./src/config.h
|
|||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
|
DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
|
||||||
Makefile.in NEWS TODO aclocal.m4 config.guess config.sub configure \
|
Makefile.in NEWS TODO aclocal.m4 config.guess config.sub configure \
|
||||||
configure.in install-sh missing mkinstalldirs
|
configure.in install-sh ltconfig ltmain.sh missing mkinstalldirs
|
||||||
|
|
||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
@@ -292,6 +295,7 @@ clean: clean-recursive clean-am
|
|||||||
|
|
||||||
distclean: distclean-recursive distclean-am
|
distclean: distclean-recursive distclean-am
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-recursive maintainer-clean-am
|
maintainer-clean: maintainer-clean-recursive maintainer-clean-am
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
|||||||
149
NEWS
149
NEWS
@@ -2,6 +2,155 @@
|
|||||||
NEWS for veteran Window Maker users
|
NEWS for veteran Window Maker users
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
|
--- 0.50.0
|
||||||
|
|
||||||
|
|
||||||
|
KDE and GNOME
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Added full support for GNOME and KWM hints.
|
||||||
|
Read the INSTALL file to see how enable them.
|
||||||
|
|
||||||
|
Everything in the so called GNOME window manager bla bla bla pseudo-spec is
|
||||||
|
implemented.
|
||||||
|
|
||||||
|
As for KDE stuff, it implements 90% of everything kwm does, adds some
|
||||||
|
Window Maker specific extensions to it and still uses half of the memory
|
||||||
|
kwm does, which should be enough to let you dump kwm ;) For details on what
|
||||||
|
exactly is implemented, see comments in src/kwm.c Read the README.KDE file
|
||||||
|
for more information.
|
||||||
|
|
||||||
|
|
||||||
|
WARNING: Some KDE hints are badly designed, so doing things like using
|
||||||
|
kpanel's desktop switcher/pager and Window Maker's internal workspace
|
||||||
|
management functions to create, destroy and rename workspaces at the same
|
||||||
|
time might cause unknown effects. To be on the safe side, only
|
||||||
|
use either of them to manage workspaces. Switching workspaces is hopefully,
|
||||||
|
safe, so you can switch workspaces from wherever you want.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Workspace Specific Background Images
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
Use the WorkspaceSpecificBack to set background images for specific
|
||||||
|
workspaces. The WorkspaceBack is used as the default background image.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
WorkspaceSpecificBack = ((solid, red), (cpixmap, ship.jpg, gray), (),
|
||||||
|
(dgradient, red, blue))
|
||||||
|
|
||||||
|
This will set the background image of workspace 1 to (solid, 0),
|
||||||
|
2 to ship.jpg and 4 to a gradient. Workspace 3 and other workspaces
|
||||||
|
will have the image defined by WorkspaceBack.
|
||||||
|
|
||||||
|
Note that this uses quite some memory...
|
||||||
|
|
||||||
|
|
||||||
|
setstyle/getstyle
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
setstyle now accepts the -nofonts flag, which will load the style
|
||||||
|
file ignoring all font related options.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
setstyle -nofonts Blabla.style
|
||||||
|
|
||||||
|
|
||||||
|
getstyle can be used to create theme packs. See the usage in the
|
||||||
|
WindowMaker/README.themes file.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
New Texture Type
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Textured gradients will tile a texture pixmap and combine it with a gradient,
|
||||||
|
using an arbitrary opaqueness.
|
||||||
|
|
||||||
|
Syntax is (thgradient, <file>, <opaqueness>, <color1>, <color2>)
|
||||||
|
(tvgradient, <file>, <opaqueness>, <color1>, <color2>)
|
||||||
|
(tdgradient, <file>, <opaqueness>, <color1>, <color2>)
|
||||||
|
where:
|
||||||
|
<color1> and <color2> are the colors for the gradient,
|
||||||
|
<file> is the texture file and
|
||||||
|
<opaqueness> is the opaqueness to merge the texture witht the gradient,
|
||||||
|
ranging from 0 to 255.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
(thgradient, "BlueImage.jpeg", 120, white, black)
|
||||||
|
|
||||||
|
The BlackTexture style and Checker theme are examples.
|
||||||
|
|
||||||
|
Hints:
|
||||||
|
|
||||||
|
You can use any type of pixmap file for this, but small (like 64x32)
|
||||||
|
grayscale pixmap files should get the best results (fast and low memory
|
||||||
|
usage). You can use color pixmaps, but it is harder to get the desired effect
|
||||||
|
with them.
|
||||||
|
|
||||||
|
Be warned that this texture type is the slowest.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
New Options
|
||||||
|
-----------
|
||||||
|
|
||||||
|
IconTitleBack and IconTitleColor control the color of the
|
||||||
|
miniwindow title. Both of them are colors.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
IconTitleColor=white;
|
||||||
|
IconTitleBack=black;
|
||||||
|
|
||||||
|
|
||||||
|
Since this introduces an incompatibility in themes and getting flamed by the
|
||||||
|
themes ppl isn't the most pleasant thing ("Whaddafuk you're thinking!? You
|
||||||
|
just broke 500 themes!!!" ;) the setstyle command was hacked so that it will
|
||||||
|
make old themes work as before, by trying to automatically set the above
|
||||||
|
options. Note that in some cases it will not have exactly the same results as
|
||||||
|
before.
|
||||||
|
|
||||||
|
|
||||||
|
StartMaximized window attribute. Will maximize the window when it
|
||||||
|
is mapped.
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Starting with this version, a new format of themes is being supported.
|
||||||
|
Before you open pine and start composing your flame, rest assured that
|
||||||
|
the old format is still supported. The new format is documented
|
||||||
|
in the WindowMaker/README.themes file.
|
||||||
|
|
||||||
|
|
||||||
|
Root Menu
|
||||||
|
---------
|
||||||
|
|
||||||
|
The -noext option for OPEN_MENU will strip whatever is after the last .
|
||||||
|
in file names that appear on the opened directory. So,
|
||||||
|
|
||||||
|
OPEN_MENU ~/bg WITH xv -root -quit
|
||||||
|
|
||||||
|
will create a menu with all the images in ~/bg without the extension.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- 0.20.3
|
--- 0.20.3
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
48
README
48
README
@@ -1,9 +1,12 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Window Maker X11 Window Manager
|
Window Maker X11 Window Manager
|
||||||
|
|
||||||
<http://windowmaker.org>
|
<http://windowmaker.org>
|
||||||
<ftp://ftp.windowmaker.org>
|
<ftp://ftp.windowmaker.org>
|
||||||
|
|
||||||
|
by
|
||||||
|
|
||||||
Alfredo K. Kojima
|
Alfredo K. Kojima
|
||||||
|
|
||||||
@@ -12,6 +15,11 @@
|
|||||||
Matthew Hawkins
|
Matthew Hawkins
|
||||||
|
|
||||||
|
|
||||||
|
Web/FTP Master
|
||||||
|
|
||||||
|
Phillip Smith
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Congratulations! You have purchased an extremely fine
|
Congratulations! You have purchased an extremely fine
|
||||||
device that would give you thousands of years of trouble-free
|
device that would give you thousands of years of trouble-free
|
||||||
@@ -42,6 +50,20 @@ 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}
|
||||||
|
Window Maker is also KDE and GNOME compliant, which means you can use
|
||||||
|
it as the window manager of these desktop environments and even fully
|
||||||
|
replace kwm with wmaker if you use KDE. In that case, you would benefit
|
||||||
|
from the best of both worlds, being able to take advantage of the usability
|
||||||
|
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.
|
||||||
|
Window Maker can be considered a fully compliant GNOME window manager.
|
||||||
|
\end{marketing babble}
|
||||||
|
|
||||||
Window Maker was previously called WindowMaker.
|
Window Maker was previously called WindowMaker.
|
||||||
|
|
||||||
Window Maker has no connection with Windowmaker, the software for
|
Window Maker has no connection with Windowmaker, the software for
|
||||||
@@ -148,15 +170,18 @@ graphical (and non-graphical) applications; providing among other things,
|
|||||||
base system libraries, a high-level GUI application framework that uses a
|
base system libraries, a high-level GUI application framework that uses a
|
||||||
Display PostScript(tm)-like imaging model (DGS), objects for accessing
|
Display PostScript(tm)-like imaging model (DGS), objects for accessing
|
||||||
relational databases, distributed objects and a graphical development
|
relational databases, distributed objects and a graphical development
|
||||||
environment, with a interface builder, a project management system and other
|
environment, with tools like interface modeller, a project management system
|
||||||
tools.
|
(project center) and other tools.
|
||||||
|
|
||||||
GNUstep will be used to create a user environment, with everything needed for
|
The GNUstep development system will be used to create a user environment,
|
||||||
a complete graphical user interface, such as a file viewer, text editors and
|
with everything needed for a complete graphical user interface, such as a
|
||||||
other applications. Note that the user environment (or "desktop environment")
|
file viewer, text editors and other applications. Note that the user
|
||||||
is only a small part of the whole GNUstep project.
|
environment (or "desktop environment") is only a small part of the whole
|
||||||
|
GNUstep project and therefore it does not "compete" with other projects like
|
||||||
|
KDE or GNOME, simply because they are completely different things.
|
||||||
|
|
||||||
For more information on the GNUstep project, visit: http://www.gnustep.org
|
For more information on the GNUstep project, visit: http://www.gnustep.org
|
||||||
|
and http://gnustep.current.nu
|
||||||
|
|
||||||
|
|
||||||
Running multiple instances of Window Maker
|
Running multiple instances of Window Maker
|
||||||
@@ -316,11 +341,12 @@ Musicware
|
|||||||
=========
|
=========
|
||||||
|
|
||||||
If you use Window Maker and *really* like it, please consider making my day
|
If you use Window Maker and *really* like it, please consider making my day
|
||||||
by sending me a music CD (or a MiniDisc) of your favorite band, singer,
|
by sending me a music CD (or a MiniDisc or even a MP3 CDR) of your favorite
|
||||||
instrumentist, composer or whatever :^). I like listening to music and would
|
band, singer, instrumentist, composer or whatever :^). I like listening to
|
||||||
love to get new CDs, especially from other parts of the world. I like almost
|
music and would love to get new CDs, especially from other parts of the
|
||||||
any kind of music, from Ozzy Osbourne to Bach (mas não pagode e sertanejo
|
world. I like almost any kind of music, from Ozzy Osbourne to Bach (mas não
|
||||||
pelamordideus :), so I will be happy to receive just about anything.
|
pagode e sertanejo pelamordideus :), so I will be happy to receive just about
|
||||||
|
anything.
|
||||||
|
|
||||||
Snail mail address:
|
Snail mail address:
|
||||||
|
|
||||||
|
|||||||
16
TODO
16
TODO
@@ -3,21 +3,22 @@ Do ASAP:
|
|||||||
========
|
========
|
||||||
- fix bestvisual selection code. Broken.
|
- fix bestvisual selection code. Broken.
|
||||||
- add a dialog to let user choose if we should restart, restart twm or continue crashing on crash. Do not forget to check if wmaker is already fully running.
|
- add a dialog to let user choose if we should restart, restart twm or continue crashing on crash. Do not forget to check if wmaker is already fully running.
|
||||||
- fix stacking. buggy again (maybe XFree 3.2 bug)
|
|
||||||
- fix RemakeStackList() to account for transient windows
|
- fix RemakeStackList() to account for transient windows
|
||||||
- differential update of appmenu
|
|
||||||
- make unhide app map windows in the same stacking order they were before
|
- make unhide app map windows in the same stacking order they were before
|
||||||
hiding
|
hiding
|
||||||
- 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
|
||||||
- order window list menu by workspace
|
- fix scroller to not jump while dragging knob (lock setparameters() while dragging?)
|
||||||
|
- add multiline support for balloons
|
||||||
|
- move/add balloon to WINGs
|
||||||
|
- finish XStandardColormap stuff in wrlib
|
||||||
|
|
||||||
Need to do:
|
Need to do:
|
||||||
===========
|
===========
|
||||||
|
- allow user to select/restore default root menu from wprefs
|
||||||
- fix and include the windoze cycle window patch
|
- fix and include the windoze cycle window patch
|
||||||
- support for X11R6.4 extension for getting extra visual info in wrlib's
|
- support for X11R6.4 extension for getting extra visual info in wrlib's
|
||||||
automatic best context guessing
|
automatic best context guessing
|
||||||
- rewrite menu traversal code
|
|
||||||
- docklet to control AccessX (keyboard accessibility) functions
|
- docklet to control AccessX (keyboard accessibility) functions
|
||||||
- rewrite all redundant stuff to use WINGs
|
- rewrite all redundant stuff to use WINGs
|
||||||
- resizebartexture option
|
- resizebartexture option
|
||||||
@@ -30,9 +31,6 @@ Need to do:
|
|||||||
- 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?
|
||||||
- -stateprefix cmd arg to specify sufix for WMState domain (multiple instance
|
|
||||||
support)
|
|
||||||
- GNOME stuff
|
|
||||||
- add new file for stuff like default commands and dnd commands for
|
- add new file for stuff like default commands and dnd commands for
|
||||||
docked apps, balloons for the dock etc
|
docked apps, balloons for the dock etc
|
||||||
- alpha-channel app specified icons
|
- alpha-channel app specified icons
|
||||||
@@ -41,14 +39,12 @@ Maybe some day:
|
|||||||
===============
|
===============
|
||||||
- virtual workspace
|
- virtual workspace
|
||||||
- optimize for size
|
- optimize for size
|
||||||
- make dithering in 8bpp better
|
|
||||||
|
|
||||||
|
|
||||||
Never: (so, dont even bother to ask)
|
Never: (so, dont even bother to ask)
|
||||||
======
|
======
|
||||||
- different themes for each workspace. Unless you give us a SGI/Power Onyx
|
- different themes for each workspace. Unless you give us a SGI/Power Onyx
|
||||||
with 2 CPUs ;). Different workspacebacks for each workspace is being
|
with 2 CPUs ;).
|
||||||
considered, but don't hold your breath.
|
|
||||||
- anything that requires the mouse pointer to be jumped by WindowMaker to
|
- anything that requires the mouse pointer to be jumped by WindowMaker to
|
||||||
somewhere. This is *terrible* behaviour. And it's not just IMO.
|
somewhere. This is *terrible* behaviour. And it's not just IMO.
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,20 @@
|
|||||||
|
changes since wmaker 0.20.3:
|
||||||
|
............................
|
||||||
|
|
||||||
|
- added WMSetSliderImage(), WMSetSliderKnobThickness()
|
||||||
|
- added WMGetListItemHeight()
|
||||||
|
- added WMListDidScrollNotification
|
||||||
|
- added WSetColorWellBordered()
|
||||||
|
- added hacky color dragging in colorwell
|
||||||
|
- added poll() support in WMNextEvent. WARNING: the stuff needed for
|
||||||
|
WMAddInputHandler() is not yet implemented for the poll stuff
|
||||||
|
- added WMSetFilePanelAccessoryView(), WMGetFilePanelAccessoryView()
|
||||||
|
- added WMSetPopUpButtonEnabled()
|
||||||
|
- added WMGetLabelImage()
|
||||||
|
- autoscroll for popup button menus
|
||||||
|
- added WMDrawPixmap()
|
||||||
|
- WARNING: changed parameter list for WMListDrawProc
|
||||||
|
|
||||||
changes since wmaker 0.20.2:
|
changes since wmaker 0.20.2:
|
||||||
............................
|
............................
|
||||||
|
|
||||||
|
|||||||
@@ -5,39 +5,43 @@ AUTOMAKE_OPTIONS = no-dependencies
|
|||||||
SUBDIRS = Resources
|
SUBDIRS = Resources
|
||||||
|
|
||||||
|
|
||||||
LIBLIST= -L$(top_builddir)/wrlib -lwraster\
|
LIBLIST= $(top_builddir)/wrlib/libwraster.la\
|
||||||
@GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ \
|
@GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ \
|
||||||
-lm -L$(top_builddir)/libPropList -lPropList
|
-lm $(top_builddir)/libPropList/libPropList.la
|
||||||
|
|
||||||
|
|
||||||
|
#lib_LTLIBRARIES = libWINGs.la
|
||||||
|
|
||||||
lib_LIBRARIES = libWINGs.a
|
lib_LIBRARIES = libWINGs.a
|
||||||
|
|
||||||
|
#libWINGs_la_LDFLAGS = -version-info 1:1:0
|
||||||
|
|
||||||
include_HEADERS = WINGs.h WUtil.h WINGsP.h
|
include_HEADERS = WINGs.h WUtil.h WINGsP.h
|
||||||
|
|
||||||
noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget
|
noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget
|
||||||
|
|
||||||
testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h
|
testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h
|
||||||
|
|
||||||
testmywidget_LDADD = -L. -lWINGs $(LIBLIST)
|
testmywidget_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
fontl_SOURCES = fontl.c
|
fontl_SOURCES = fontl.c
|
||||||
|
|
||||||
fontl_LDADD = -L. -lWINGs $(LIBLIST)
|
fontl_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
wtest_SOURCES = wtest.c
|
wtest_SOURCES = wtest.c
|
||||||
|
|
||||||
wtest_LDADD = -L. -lWINGs $(LIBLIST)
|
wtest_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
wtest_DEPENDENCIES = libWINGs.a
|
wtest_DEPENDENCIES = libWINGs.a
|
||||||
|
|
||||||
wmfile_SOURCES = wmfile.c
|
wmfile_SOURCES = wmfile.c
|
||||||
|
|
||||||
wmfile_LDADD = -L. -lWINGs $(LIBLIST)
|
wmfile_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
|
|
||||||
wmquery_SOURCES = wmquery.c
|
wmquery_SOURCES = wmquery.c
|
||||||
|
|
||||||
wmquery_LDADD = -L. -lWINGs $(LIBLIST)
|
wmquery_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
|
|
||||||
EXTRA_DIST = logo.xpm
|
EXTRA_DIST = logo.xpm
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -94,37 +97,41 @@ AUTOMAKE_OPTIONS = no-dependencies
|
|||||||
|
|
||||||
SUBDIRS = Resources
|
SUBDIRS = Resources
|
||||||
|
|
||||||
LIBLIST= -L$(top_builddir)/wrlib -lwraster\
|
LIBLIST= $(top_builddir)/wrlib/libwraster.la\
|
||||||
@GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ \
|
@GFXLFLAGS@ @XLFLAGS@ @GFXLIBS@ @XLIBS@ \
|
||||||
-lm -L$(top_builddir)/libPropList -lPropList
|
-lm $(top_builddir)/libPropList/libPropList.la
|
||||||
|
|
||||||
|
#lib_LTLIBRARIES = libWINGs.la
|
||||||
|
|
||||||
lib_LIBRARIES = libWINGs.a
|
lib_LIBRARIES = libWINGs.a
|
||||||
|
|
||||||
|
#libWINGs_la_LDFLAGS = -version-info 1:1:0
|
||||||
|
|
||||||
include_HEADERS = WINGs.h WUtil.h WINGsP.h
|
include_HEADERS = WINGs.h WUtil.h WINGsP.h
|
||||||
|
|
||||||
noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget
|
noinst_PROGRAMS = wtest wmquery wmfile fontl testmywidget
|
||||||
|
|
||||||
testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h
|
testmywidget_SOURCES = testmywidget.c mywidget.c mywidget.h
|
||||||
|
|
||||||
testmywidget_LDADD = -L. -lWINGs $(LIBLIST)
|
testmywidget_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
fontl_SOURCES = fontl.c
|
fontl_SOURCES = fontl.c
|
||||||
|
|
||||||
fontl_LDADD = -L. -lWINGs $(LIBLIST)
|
fontl_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
wtest_SOURCES = wtest.c
|
wtest_SOURCES = wtest.c
|
||||||
|
|
||||||
wtest_LDADD = -L. -lWINGs $(LIBLIST)
|
wtest_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
wtest_DEPENDENCIES = libWINGs.a
|
wtest_DEPENDENCIES = libWINGs.a
|
||||||
|
|
||||||
wmfile_SOURCES = wmfile.c
|
wmfile_SOURCES = wmfile.c
|
||||||
|
|
||||||
wmfile_LDADD = -L. -lWINGs $(LIBLIST)
|
wmfile_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
wmquery_SOURCES = wmquery.c
|
wmquery_SOURCES = wmquery.c
|
||||||
|
|
||||||
wmquery_LDADD = -L. -lWINGs $(LIBLIST)
|
wmquery_LDADD = libWINGs.a $(LIBLIST)
|
||||||
|
|
||||||
EXTRA_DIST = logo.xpm
|
EXTRA_DIST = logo.xpm
|
||||||
|
|
||||||
@@ -196,20 +203,26 @@ PROGRAMS = $(noinst_PROGRAMS)
|
|||||||
wtest_OBJECTS = wtest.o
|
wtest_OBJECTS = wtest.o
|
||||||
wtest_LDFLAGS =
|
wtest_LDFLAGS =
|
||||||
wmquery_OBJECTS = wmquery.o
|
wmquery_OBJECTS = wmquery.o
|
||||||
wmquery_DEPENDENCIES =
|
wmquery_DEPENDENCIES = libWINGs.a $(top_builddir)/wrlib/libwraster.la \
|
||||||
|
$(top_builddir)/libPropList/libPropList.la
|
||||||
wmquery_LDFLAGS =
|
wmquery_LDFLAGS =
|
||||||
wmfile_OBJECTS = wmfile.o
|
wmfile_OBJECTS = wmfile.o
|
||||||
wmfile_DEPENDENCIES =
|
wmfile_DEPENDENCIES = libWINGs.a $(top_builddir)/wrlib/libwraster.la \
|
||||||
|
$(top_builddir)/libPropList/libPropList.la
|
||||||
wmfile_LDFLAGS =
|
wmfile_LDFLAGS =
|
||||||
fontl_OBJECTS = fontl.o
|
fontl_OBJECTS = fontl.o
|
||||||
fontl_DEPENDENCIES =
|
fontl_DEPENDENCIES = libWINGs.a $(top_builddir)/wrlib/libwraster.la \
|
||||||
|
$(top_builddir)/libPropList/libPropList.la
|
||||||
fontl_LDFLAGS =
|
fontl_LDFLAGS =
|
||||||
testmywidget_OBJECTS = testmywidget.o mywidget.o
|
testmywidget_OBJECTS = testmywidget.o mywidget.o
|
||||||
testmywidget_DEPENDENCIES =
|
testmywidget_DEPENDENCIES = libWINGs.a \
|
||||||
|
$(top_builddir)/wrlib/libwraster.la \
|
||||||
|
$(top_builddir)/libPropList/libPropList.la
|
||||||
testmywidget_LDFLAGS =
|
testmywidget_LDFLAGS =
|
||||||
CFLAGS = @CFLAGS@
|
CFLAGS = @CFLAGS@
|
||||||
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
|
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
|
||||||
LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
|
||||||
|
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
||||||
HEADERS = $(include_HEADERS)
|
HEADERS = $(include_HEADERS)
|
||||||
|
|
||||||
DIST_COMMON = README ChangeLog Makefile.am Makefile.in TODO
|
DIST_COMMON = README ChangeLog Makefile.am Makefile.in TODO
|
||||||
@@ -225,7 +238,7 @@ OBJECTS = $(libWINGs_a_OBJECTS) $(wtest_OBJECTS) $(wmquery_OBJECTS) $(wmfile_OBJ
|
|||||||
all: all-recursive all-am
|
all: all-recursive all-am
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .S .c .o .s
|
.SUFFIXES: .S .c .lo .o .s
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu WINGs/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu WINGs/Makefile
|
||||||
|
|
||||||
@@ -285,6 +298,25 @@ distclean-compile:
|
|||||||
|
|
||||||
maintainer-clean-compile:
|
maintainer-clean-compile:
|
||||||
|
|
||||||
|
.c.lo:
|
||||||
|
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||||
|
|
||||||
|
.s.lo:
|
||||||
|
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||||
|
|
||||||
|
.S.lo:
|
||||||
|
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||||
|
|
||||||
|
mostlyclean-libtool:
|
||||||
|
-rm -f *.lo
|
||||||
|
|
||||||
|
clean-libtool:
|
||||||
|
-rm -rf .libs _libs
|
||||||
|
|
||||||
|
distclean-libtool:
|
||||||
|
|
||||||
|
maintainer-clean-libtool:
|
||||||
|
|
||||||
libWINGs.a: $(libWINGs_a_OBJECTS) $(libWINGs_a_DEPENDENCIES)
|
libWINGs.a: $(libWINGs_a_OBJECTS) $(libWINGs_a_DEPENDENCIES)
|
||||||
-rm -f libWINGs.a
|
-rm -f libWINGs.a
|
||||||
$(AR) cru libWINGs.a $(libWINGs_a_OBJECTS) $(libWINGs_a_LIBADD)
|
$(AR) cru libWINGs.a $(libWINGs_a_OBJECTS) $(libWINGs_a_LIBADD)
|
||||||
@@ -463,18 +495,19 @@ maintainer-clean-generic:
|
|||||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||||
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
|
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
|
||||||
mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \
|
mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \
|
||||||
mostlyclean-noinstPROGRAMS mostlyclean-tags \
|
mostlyclean-libtool mostlyclean-noinstPROGRAMS \
|
||||||
mostlyclean-generic
|
mostlyclean-tags mostlyclean-generic
|
||||||
|
|
||||||
clean-am: clean-libLIBRARIES clean-compile clean-noinstPROGRAMS \
|
clean-am: clean-libLIBRARIES clean-compile clean-libtool \
|
||||||
clean-tags clean-generic mostlyclean-am
|
clean-noinstPROGRAMS clean-tags clean-generic \
|
||||||
|
mostlyclean-am
|
||||||
|
|
||||||
distclean-am: distclean-libLIBRARIES distclean-compile \
|
distclean-am: distclean-libLIBRARIES distclean-compile \
|
||||||
distclean-noinstPROGRAMS distclean-tags \
|
distclean-libtool distclean-noinstPROGRAMS \
|
||||||
distclean-generic clean-am
|
distclean-tags distclean-generic clean-am
|
||||||
|
|
||||||
maintainer-clean-am: maintainer-clean-libLIBRARIES \
|
maintainer-clean-am: maintainer-clean-libLIBRARIES \
|
||||||
maintainer-clean-compile \
|
maintainer-clean-compile maintainer-clean-libtool \
|
||||||
maintainer-clean-noinstPROGRAMS maintainer-clean-tags \
|
maintainer-clean-noinstPROGRAMS maintainer-clean-tags \
|
||||||
maintainer-clean-generic distclean-am
|
maintainer-clean-generic distclean-am
|
||||||
|
|
||||||
@@ -484,6 +517,7 @@ clean: clean-recursive clean-am
|
|||||||
|
|
||||||
distclean: distclean-recursive distclean-am
|
distclean: distclean-recursive distclean-am
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-recursive maintainer-clean-am
|
maintainer-clean: maintainer-clean-recursive maintainer-clean-am
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
@@ -492,14 +526,15 @@ maintainer-clean: maintainer-clean-recursive maintainer-clean-am
|
|||||||
.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \
|
.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \
|
||||||
clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \
|
clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \
|
||||||
install-libLIBRARIES mostlyclean-compile distclean-compile \
|
install-libLIBRARIES mostlyclean-compile distclean-compile \
|
||||||
clean-compile maintainer-clean-compile mostlyclean-noinstPROGRAMS \
|
clean-compile maintainer-clean-compile mostlyclean-libtool \
|
||||||
distclean-noinstPROGRAMS clean-noinstPROGRAMS \
|
distclean-libtool clean-libtool maintainer-clean-libtool \
|
||||||
maintainer-clean-noinstPROGRAMS uninstall-includeHEADERS \
|
mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
|
||||||
install-includeHEADERS install-data-recursive uninstall-data-recursive \
|
clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
|
||||||
install-exec-recursive uninstall-exec-recursive installdirs-recursive \
|
uninstall-includeHEADERS install-includeHEADERS install-data-recursive \
|
||||||
uninstalldirs-recursive all-recursive check-recursive \
|
uninstall-data-recursive install-exec-recursive \
|
||||||
installcheck-recursive info-recursive dvi-recursive \
|
uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
|
||||||
mostlyclean-recursive distclean-recursive clean-recursive \
|
all-recursive check-recursive installcheck-recursive info-recursive \
|
||||||
|
dvi-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 \
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -193,6 +196,7 @@ clean: clean-generic mostlyclean
|
|||||||
|
|
||||||
distclean: distclean-generic clean
|
distclean: distclean-generic clean
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-generic distclean
|
maintainer-clean: maintainer-clean-generic distclean
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
#include <wraster.h>
|
#include <wraster.h>
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
#define WINGS_H_VERSION 980930
|
#define WINGS_H_VERSION 981220
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -188,7 +188,7 @@ enum {
|
|||||||
#define WSIHighlightedArrowUp 9
|
#define WSIHighlightedArrowUp 9
|
||||||
#define WSIArrowDown 10
|
#define WSIArrowDown 10
|
||||||
#define WSIHighlightedArrowDown 11
|
#define WSIHighlightedArrowDown 11
|
||||||
|
#define WSICheckMark 12
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
WLDSSelected = (1 << 16),
|
WLDSSelected = (1 << 16),
|
||||||
@@ -352,8 +352,8 @@ typedef void WMCallback(void *data);
|
|||||||
/* delegate method like stuff */
|
/* delegate method like stuff */
|
||||||
typedef void WMFreeDataProc(void *data);
|
typedef void WMFreeDataProc(void *data);
|
||||||
|
|
||||||
typedef void WMListDrawProc(WMList *lPtr, Drawable d, char *text, int state,
|
typedef void WMListDrawProc(WMList *lPtr, int index, Drawable d, char *text,
|
||||||
WMRect *rect);
|
int state, WMRect *rect);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
typedef void WMSplitViewResizeSubviewsProc(WMSplitView *sPtr,
|
typedef void WMSplitViewResizeSubviewsProc(WMSplitView *sPtr,
|
||||||
@@ -493,6 +493,8 @@ WMPixmap *WMCreatePixmapFromFile(WMScreen *scrPtr, char *fileName);
|
|||||||
WMPixmap *WMCreateBlendedPixmapFromFile(WMScreen *scrPtr, char *fileName,
|
WMPixmap *WMCreateBlendedPixmapFromFile(WMScreen *scrPtr, char *fileName,
|
||||||
RColor *color);
|
RColor *color);
|
||||||
|
|
||||||
|
void WMDrawPixmap(WMPixmap *pixmap, Drawable d, int x, int y);
|
||||||
|
|
||||||
Pixmap WMGetPixmapXID(WMPixmap *pixmap);
|
Pixmap WMGetPixmapXID(WMPixmap *pixmap);
|
||||||
|
|
||||||
Pixmap WMGetPixmapMaskXID(WMPixmap *pixmap);
|
Pixmap WMGetPixmapMaskXID(WMPixmap *pixmap);
|
||||||
@@ -694,6 +696,8 @@ void WMSetLabelWraps(WMLabel *lPtr, Bool flag);
|
|||||||
|
|
||||||
void WMSetLabelImage(WMLabel *lPtr, WMPixmap *image);
|
void WMSetLabelImage(WMLabel *lPtr, WMPixmap *image);
|
||||||
|
|
||||||
|
WMPixmap *WMGetLabelImage(WMLabel *lPtr);
|
||||||
|
|
||||||
void WMSetLabelImagePosition(WMLabel *lPtr, WMImagePosition position);
|
void WMSetLabelImagePosition(WMLabel *lPtr, WMImagePosition position);
|
||||||
|
|
||||||
void WMSetLabelTextAlignment(WMLabel *lPtr, WMAlignment alignment);
|
void WMSetLabelTextAlignment(WMLabel *lPtr, WMAlignment alignment);
|
||||||
@@ -738,6 +742,7 @@ void WMSetTextFieldEnabled(WMTextField *tPtr, Bool flag);
|
|||||||
void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag);
|
void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag);
|
||||||
|
|
||||||
|
|
||||||
|
extern char *WMListDidScrollNotification;
|
||||||
extern char *WMTextDidChangeNotification;
|
extern char *WMTextDidChangeNotification;
|
||||||
extern char *WMTextDidBeginEditingNotification;
|
extern char *WMTextDidBeginEditingNotification;
|
||||||
extern char *WMTextDidEndEditingNotification;
|
extern char *WMTextDidEndEditingNotification;
|
||||||
@@ -782,6 +787,8 @@ void WMSetListUserDrawProc(WMList *lPtr, WMListDrawProc *proc);
|
|||||||
|
|
||||||
void WMSetListUserDrawItemHeight(WMList *lPtr, unsigned short height);
|
void WMSetListUserDrawItemHeight(WMList *lPtr, unsigned short height);
|
||||||
|
|
||||||
|
int WMGetListItemHeight(WMList *lPtr);
|
||||||
|
|
||||||
/* don't free the returned data */
|
/* don't free the returned data */
|
||||||
WMListItem *WMGetListSelectedItem(WMList *lPtr);
|
WMListItem *WMGetListSelectedItem(WMList *lPtr);
|
||||||
|
|
||||||
@@ -801,6 +808,8 @@ void WMSetListBottomPosition(WMList *lPtr, int row);
|
|||||||
|
|
||||||
int WMGetListPosition(WMList *lPtr);
|
int WMGetListPosition(WMList *lPtr);
|
||||||
|
|
||||||
|
extern char *WMListDidScrollNotification;
|
||||||
|
|
||||||
/* ....................................................................... */
|
/* ....................................................................... */
|
||||||
|
|
||||||
WMBrowser *WMCreateBrowser(WMWidget *parent);
|
WMBrowser *WMCreateBrowser(WMWidget *parent);
|
||||||
@@ -876,6 +885,8 @@ char *WMGetPopUpButtonItem(WMPopUpButton *bPtr, int index);
|
|||||||
|
|
||||||
int WMGetPopUpButtonNumberOfItems(WMPopUpButton *bPtr);
|
int WMGetPopUpButtonNumberOfItems(WMPopUpButton *bPtr);
|
||||||
|
|
||||||
|
void WMSetPopUpButtonEnabled(WMPopUpButton *bPtr, Bool flag);
|
||||||
|
|
||||||
/* ....................................................................... */
|
/* ....................................................................... */
|
||||||
|
|
||||||
WMColorWell *WMCreateColorWell(WMWidget *parent);
|
WMColorWell *WMCreateColorWell(WMWidget *parent);
|
||||||
@@ -884,6 +895,8 @@ void WMSetColorWellColor(WMColorWell *cPtr, WMColor *color);
|
|||||||
|
|
||||||
WMColor *WMGetColorWellColor(WMColorWell *cPtr);
|
WMColor *WMGetColorWellColor(WMColorWell *cPtr);
|
||||||
|
|
||||||
|
void WSetColorWellBordered(WMColorWell *cPtr, Bool flag);
|
||||||
|
|
||||||
/* ...................................................................... */
|
/* ...................................................................... */
|
||||||
|
|
||||||
WMScrollView *WMCreateScrollView(WMWidget *parent);
|
WMScrollView *WMCreateScrollView(WMWidget *parent);
|
||||||
@@ -929,6 +942,10 @@ void WMSetSliderContinuous(WMSlider *slider, Bool flag);
|
|||||||
|
|
||||||
void WMSetSliderAction(WMSlider *slider, WMAction *action, void *data);
|
void WMSetSliderAction(WMSlider *slider, WMAction *action, void *data);
|
||||||
|
|
||||||
|
void WMSetSliderKnobThickness(WMSlider *sPtr, int thickness);
|
||||||
|
|
||||||
|
void WMSetSliderImage(WMSlider *sPtr, WMPixmap *pixmap);
|
||||||
|
|
||||||
/* ....................................................................... */
|
/* ....................................................................... */
|
||||||
|
|
||||||
/* only supports 2 subviews */
|
/* only supports 2 subviews */
|
||||||
@@ -995,6 +1012,11 @@ int WMRunModalOpenPanelForDirectory(WMFilePanel *panel, WMWindow *owner,
|
|||||||
int WMRunModalSavePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
|
int WMRunModalSavePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
|
||||||
char *path, char *name);
|
char *path, char *name);
|
||||||
|
|
||||||
|
void WMSetFilePanelAccessoryView(WMFilePanel *panel, WMView *view);
|
||||||
|
|
||||||
|
WMView *WMGetFilePanelAccessoryView(WMFilePanel *panel);
|
||||||
|
|
||||||
|
|
||||||
/* ...................................................................... */
|
/* ...................................................................... */
|
||||||
|
|
||||||
/* only 1 instance per WMScreen */
|
/* only 1 instance per WMScreen */
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
#include "WINGs.h"
|
#include "WINGs.h"
|
||||||
#include "WUtil.h"
|
#include "WUtil.h"
|
||||||
|
|
||||||
#if WINGS_H_VERSION < 980930
|
#if WINGS_H_VERSION < 981220
|
||||||
#error There_is_an_old_WINGs.h_file_somewhere_in_your_system._Please_remove_it.
|
#error There_is_an_old_WINGs.h_file_somewhere_in_your_system._Please_remove_it.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -174,6 +174,8 @@ typedef struct W_Screen {
|
|||||||
struct W_Pixmap *pullDownIndicator;
|
struct W_Pixmap *pullDownIndicator;
|
||||||
struct W_Pixmap *popUpIndicator;
|
struct W_Pixmap *popUpIndicator;
|
||||||
|
|
||||||
|
struct W_Pixmap *checkMark;
|
||||||
|
|
||||||
struct W_Pixmap *homeIcon;
|
struct W_Pixmap *homeIcon;
|
||||||
|
|
||||||
struct W_Pixmap *defaultObjectIcon;
|
struct W_Pixmap *defaultObjectIcon;
|
||||||
@@ -308,7 +310,8 @@ _WINGsConfiguration WINGsConfiguration;
|
|||||||
|
|
||||||
#define W_FONTID(f) (f)->font->fid
|
#define W_FONTID(f) (f)->font->fid
|
||||||
|
|
||||||
#define W_DRAWABLE(scr) (scr)->rootWin
|
#define W_DRAWABLE(scr) (scr)->rcontext->drawable
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
W_View *W_GetViewForXWindow(Display *display, Window window);
|
W_View *W_GetViewForXWindow(Display *display, Window window);
|
||||||
|
|||||||
@@ -29,6 +29,37 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if (!defined (__GNUC__) || __GNUC__ < 2 || \
|
||||||
|
__GNUC_MINOR__ < (defined (__cplusplus) ? 6 : 4))
|
||||||
|
#define __ASSERT_FUNCTION ((__const char *) 0)
|
||||||
|
#else
|
||||||
|
#define __ASSERT_FUNCTION __PRETTY_FUNCTION__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef NDEBUG
|
||||||
|
|
||||||
|
#define wassertr(expr, val) ((void)0)
|
||||||
|
|
||||||
|
#else /* !NDEBUG */
|
||||||
|
|
||||||
|
#define wassertr(expr) \
|
||||||
|
if (!(expr)) { \
|
||||||
|
wwarning("%s line %i (%s): assertion %s failed",\
|
||||||
|
__FILE__, __LINE__, __ASSERT_FUNCTION, #expr);\
|
||||||
|
return;\
|
||||||
|
}
|
||||||
|
|
||||||
|
#define wassertrv(expr, val) \
|
||||||
|
if (!(expr)) { \
|
||||||
|
wwarning("%s line %i (%s): assertion %s failed",\
|
||||||
|
__FILE__, __LINE__, __ASSERT_FUNCTION, #expr);\
|
||||||
|
return (val);\
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* !NDEBUG */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
WMPostWhenIdle = 1,
|
WMPostWhenIdle = 1,
|
||||||
|
|||||||
@@ -189,12 +189,12 @@ wfindfile(char *paths, char *file)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (*file=='/' || *file=='~' || *file=='$' || !paths) {
|
if (*file=='/' || *file=='~' || *file=='$' || !paths) {
|
||||||
if (access(file, R_OK)<0) {
|
if (access(file, F_OK)<0) {
|
||||||
fullpath = wexpandpath(file);
|
fullpath = wexpandpath(file);
|
||||||
if (!fullpath)
|
if (!fullpath)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (access(fullpath, R_OK)<0) {
|
if (access(fullpath, F_OK)<0) {
|
||||||
free(fullpath);
|
free(fullpath);
|
||||||
return NULL;
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
@@ -219,7 +219,7 @@ wfindfile(char *paths, char *file)
|
|||||||
fullpath = wexpandpath(path);
|
fullpath = wexpandpath(path);
|
||||||
free(path);
|
free(path);
|
||||||
if (fullpath) {
|
if (fullpath) {
|
||||||
if (access(fullpath, R_OK)==0) {
|
if (access(fullpath, F_OK)==0) {
|
||||||
return fullpath;
|
return fullpath;
|
||||||
}
|
}
|
||||||
free(fullpath);
|
free(fullpath);
|
||||||
@@ -243,12 +243,12 @@ wfindfileinlist(char **path_list, char *file)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (*file=='/' || *file=='~' || !path_list) {
|
if (*file=='/' || *file=='~' || !path_list) {
|
||||||
if (access(file, R_OK)<0) {
|
if (access(file, F_OK)<0) {
|
||||||
fullpath = wexpandpath(file);
|
fullpath = wexpandpath(file);
|
||||||
if (!fullpath)
|
if (!fullpath)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (access(fullpath, R_OK)<0) {
|
if (access(fullpath, F_OK)<0) {
|
||||||
free(fullpath);
|
free(fullpath);
|
||||||
return NULL;
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
@@ -271,8 +271,8 @@ wfindfileinlist(char **path_list, char *file)
|
|||||||
fullpath = wexpandpath(path);
|
fullpath = wexpandpath(path);
|
||||||
free(path);
|
free(path);
|
||||||
if (fullpath) {
|
if (fullpath) {
|
||||||
/* check if file is readable */
|
/* check if file exists */
|
||||||
if (access(fullpath, R_OK)==0) {
|
if (access(fullpath, F_OK)==0) {
|
||||||
return fullpath;
|
return fullpath;
|
||||||
}
|
}
|
||||||
free(fullpath);
|
free(fullpath);
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern void W_ReadConfigurations(void);
|
|
||||||
|
|
||||||
extern void W_InitNotificationCenter(void);
|
extern void W_InitNotificationCenter(void);
|
||||||
|
|
||||||
|
|
||||||
@@ -72,9 +70,6 @@ WMInitializeApplication(char *applicationName, int *argc, char **argv)
|
|||||||
|
|
||||||
/* initialize notification center */
|
/* initialize notification center */
|
||||||
W_InitNotificationCenter();
|
W_InitNotificationCenter();
|
||||||
|
|
||||||
/* read general configuration data for WINGs */
|
|
||||||
W_ReadConfigurations();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -72,8 +72,8 @@ static void setupScroller(WMBrowser *bPtr);
|
|||||||
|
|
||||||
static void scrollToColumn(WMBrowser *bPtr, int column);
|
static void scrollToColumn(WMBrowser *bPtr, int column);
|
||||||
|
|
||||||
static void paintItem(WMList *lPtr, Drawable d, char *text, int state,
|
static void paintItem(WMList *lPtr, int index, Drawable d, char *text,
|
||||||
WMRect *rect);
|
int state, WMRect *rect);
|
||||||
|
|
||||||
static void loadColumn(WMBrowser *bPtr, int column);
|
static void loadColumn(WMBrowser *bPtr, int column);
|
||||||
|
|
||||||
@@ -189,7 +189,7 @@ drawTitleOfColumn(WMBrowser *bPtr, int column)
|
|||||||
|
|
||||||
if (column < bPtr->usedColumnCount && bPtr->titles[column])
|
if (column < bPtr->usedColumnCount && bPtr->titles[column])
|
||||||
W_PaintText(bPtr->view, bPtr->view->window, scr->boldFont, x,
|
W_PaintText(bPtr->view, bPtr->view->window, scr->boldFont, x,
|
||||||
(bPtr->titleHeight-scr->boldFont->height)/2,
|
(bPtr->titleHeight-WMFontHeight(scr->boldFont))/2,
|
||||||
bPtr->columnSize.width, WACenter, W_GC(scr->white),
|
bPtr->columnSize.width, WACenter, W_GC(scr->white),
|
||||||
False, bPtr->titles[column], strlen(bPtr->titles[column]));
|
False, bPtr->titles[column], strlen(bPtr->titles[column]));
|
||||||
}
|
}
|
||||||
@@ -248,6 +248,23 @@ removeColumn(WMBrowser *bPtr, int column)
|
|||||||
|
|
||||||
if (column < bPtr->maxVisibleColumns) {
|
if (column < bPtr->maxVisibleColumns) {
|
||||||
int tmp;
|
int tmp;
|
||||||
|
#if 1
|
||||||
|
int limit;
|
||||||
|
|
||||||
|
if(bPtr->usedColumnCount < bPtr->maxVisibleColumns)
|
||||||
|
limit = bPtr->usedColumnCount;
|
||||||
|
else
|
||||||
|
limit = bPtr->maxVisibleColumns;
|
||||||
|
|
||||||
|
for (i=column; i < limit; i++) {
|
||||||
|
if (bPtr->titles[i])
|
||||||
|
free(bPtr->titles[i]);
|
||||||
|
bPtr->titles[i] = NULL;
|
||||||
|
|
||||||
|
WMClearList(bPtr->columns[i]);
|
||||||
|
bPtr->usedColumnCount--;
|
||||||
|
}
|
||||||
|
#else
|
||||||
for (i=column; i < bPtr->maxVisibleColumns; i++) {
|
for (i=column; i < bPtr->maxVisibleColumns; i++) {
|
||||||
if (bPtr->titles[i])
|
if (bPtr->titles[i])
|
||||||
free(bPtr->titles[i]);
|
free(bPtr->titles[i]);
|
||||||
@@ -267,6 +284,7 @@ removeColumn(WMBrowser *bPtr, int column)
|
|||||||
bPtr->columnCount--;
|
bPtr->columnCount--;
|
||||||
bPtr->usedColumnCount--;
|
bPtr->usedColumnCount--;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
int tmp = bPtr->columnCount;
|
int tmp = bPtr->columnCount;
|
||||||
for (i=column; i < tmp; i++) {
|
for (i=column; i < tmp; i++) {
|
||||||
@@ -443,7 +461,8 @@ resizeBrowser(WMWidget *w, unsigned int width, unsigned int height)
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
paintItem(WMList *lPtr, Drawable d, char *text, int state, WMRect *rect)
|
paintItem(WMList *lPtr, int index, Drawable d, char *text, int state,
|
||||||
|
WMRect *rect)
|
||||||
{
|
{
|
||||||
WMView *view = W_VIEW(lPtr);
|
WMView *view = W_VIEW(lPtr);
|
||||||
W_Screen *scr = view->screen;
|
W_Screen *scr = view->screen;
|
||||||
|
|||||||
@@ -29,9 +29,9 @@ static void destroyColorWell(ColorWell *cPtr);
|
|||||||
static void paintColorWell(ColorWell *cPtr);
|
static void paintColorWell(ColorWell *cPtr);
|
||||||
|
|
||||||
static void handleEvents(XEvent *event, void *data);
|
static void handleEvents(XEvent *event, void *data);
|
||||||
#if 0
|
|
||||||
static void handleDragEvents(XEvent *event, void *data);
|
static void handleDragEvents(XEvent *event, void *data);
|
||||||
#endif
|
|
||||||
static void handleActionEvents(XEvent *event, void *data);
|
static void handleActionEvents(XEvent *event, void *data);
|
||||||
|
|
||||||
static void resizeColorWell();
|
static void resizeColorWell();
|
||||||
@@ -73,6 +73,7 @@ WMCreateColorWell(WMWidget *parent)
|
|||||||
free(cPtr);
|
free(cPtr);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
cPtr->view->self = cPtr;
|
||||||
|
|
||||||
cPtr->colorView = W_CreateView(cPtr->view);
|
cPtr->colorView = W_CreateView(cPtr->view);
|
||||||
if (!cPtr->colorView) {
|
if (!cPtr->colorView) {
|
||||||
@@ -80,20 +81,23 @@ WMCreateColorWell(WMWidget *parent)
|
|||||||
free(cPtr);
|
free(cPtr);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
cPtr->colorView->self = cPtr;
|
||||||
|
|
||||||
WMCreateEventHandler(cPtr->view, ExposureMask|StructureNotifyMask
|
WMCreateEventHandler(cPtr->view, ExposureMask|StructureNotifyMask
|
||||||
|ClientMessageMask, handleEvents, cPtr);
|
|ClientMessageMask, handleEvents, cPtr);
|
||||||
|
|
||||||
WMCreateEventHandler(cPtr->colorView, ExposureMask, handleEvents, cPtr);
|
WMCreateEventHandler(cPtr->colorView, ExposureMask, handleEvents, cPtr);
|
||||||
#if 0
|
|
||||||
WMCreateEventHandler(cPtr->colorView, ButtonPressMask|Button1MotionMask,
|
WMCreateEventHandler(cPtr->colorView, ButtonPressMask|ButtonMotionMask
|
||||||
handleDragEvents, cPtr);
|
|EnterWindowMask, handleDragEvents, cPtr);
|
||||||
#endif
|
|
||||||
WMCreateEventHandler(cPtr->view, ButtonPressMask, handleActionEvents,
|
WMCreateEventHandler(cPtr->view, ButtonPressMask, handleActionEvents,
|
||||||
cPtr);
|
cPtr);
|
||||||
|
|
||||||
cPtr->colorView->flags.mapWhenRealized = 1;
|
cPtr->colorView->flags.mapWhenRealized = 1;
|
||||||
|
|
||||||
|
cPtr->flags.bordered = 1;
|
||||||
|
|
||||||
resizeColorWell(cPtr, DEFAULT_WIDTH, DEFAULT_HEIGHT);
|
resizeColorWell(cPtr, DEFAULT_WIDTH, DEFAULT_HEIGHT);
|
||||||
|
|
||||||
return cPtr;
|
return cPtr;
|
||||||
@@ -119,6 +123,17 @@ WMGetColorWellColor(WMColorWell *cPtr)
|
|||||||
return cPtr->color;
|
return cPtr->color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
WSetColorWellBordered(WMColorWell *cPtr, Bool flag)
|
||||||
|
{
|
||||||
|
if (cPtr->flags.bordered != flag) {
|
||||||
|
cPtr->flags.bordered = flag;
|
||||||
|
resizeColorWell(cPtr, cPtr->view->size.width, cPtr->view->size.height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#define MIN(a,b) ((a) > (b) ? (b) : (a))
|
#define MIN(a,b) ((a) > (b) ? (b) : (a))
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -126,6 +141,8 @@ resizeColorWell(WMColorWell *cPtr, unsigned int width, unsigned int height)
|
|||||||
{
|
{
|
||||||
int bw;
|
int bw;
|
||||||
|
|
||||||
|
if (cPtr->flags.bordered) {
|
||||||
|
|
||||||
if (width < MIN_WIDTH)
|
if (width < MIN_WIDTH)
|
||||||
width = MIN_WIDTH;
|
width = MIN_WIDTH;
|
||||||
if (height < MIN_HEIGHT)
|
if (height < MIN_HEIGHT)
|
||||||
@@ -139,6 +156,13 @@ resizeColorWell(WMColorWell *cPtr, unsigned int width, unsigned int height)
|
|||||||
|
|
||||||
if (cPtr->colorView->pos.x!=bw || cPtr->colorView->pos.y!=bw)
|
if (cPtr->colorView->pos.x!=bw || cPtr->colorView->pos.y!=bw)
|
||||||
W_MoveView(cPtr->colorView, bw, bw);
|
W_MoveView(cPtr->colorView, bw, bw);
|
||||||
|
} else {
|
||||||
|
W_ResizeView(cPtr->view, width, height);
|
||||||
|
|
||||||
|
W_ResizeView(cPtr->colorView, width, height);
|
||||||
|
|
||||||
|
W_MoveView(cPtr->colorView, 0, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -184,7 +208,7 @@ handleEvents(XEvent *event, void *data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static WMPixmap*
|
static WMPixmap*
|
||||||
makeDragPixmap(WMColorWell *cPtr)
|
makeDragPixmap(WMColorWell *cPtr)
|
||||||
{
|
{
|
||||||
@@ -201,6 +225,116 @@ makeDragPixmap(WMColorWell *cPtr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
slideView(WMView *view, int srcX, int srcY, int dstX, int dstY)
|
||||||
|
{
|
||||||
|
double x, y, dx, dy;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
srcX -= 8;
|
||||||
|
srcY -= 8;
|
||||||
|
dstX -= 8;
|
||||||
|
dstY -= 8;
|
||||||
|
|
||||||
|
x = srcX;
|
||||||
|
y = srcY;
|
||||||
|
|
||||||
|
dx = (double)(dstX-srcX)/20.0;
|
||||||
|
dy = (double)(dstY-srcY)/20.0;
|
||||||
|
|
||||||
|
for (i = 0; i < 20; i++) {
|
||||||
|
W_MoveView(view, x, y);
|
||||||
|
XFlush(view->screen->display);
|
||||||
|
|
||||||
|
x += dx;
|
||||||
|
y += dy;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
dragColor(ColorWell *cPtr, XEvent *event, WMPixmap *image)
|
||||||
|
{
|
||||||
|
WMView *dragView;
|
||||||
|
WMScreen *scr = cPtr->view->screen;
|
||||||
|
Display *dpy = scr->display;
|
||||||
|
XColor black = {0, 0,0,0, DoRed|DoGreen|DoBlue};
|
||||||
|
XColor green = {0, 0x4500,0xb000,0x4500, DoRed|DoGreen|DoBlue};
|
||||||
|
XColor back = {0, 0xffff,0xffff,0xffff, DoRed|DoGreen|DoBlue};
|
||||||
|
Bool done = False;
|
||||||
|
WMColorWell *activeWell = NULL;
|
||||||
|
|
||||||
|
dragView = W_CreateTopView(scr);
|
||||||
|
|
||||||
|
W_ResizeView(dragView, 16, 16);
|
||||||
|
dragView->attribFlags |= CWOverrideRedirect | CWSaveUnder;
|
||||||
|
dragView->attribs.event_mask = StructureNotifyMask;
|
||||||
|
dragView->attribs.override_redirect = True;
|
||||||
|
dragView->attribs.save_under = True;
|
||||||
|
|
||||||
|
W_MoveView(dragView, event->xmotion.x_root-8, event->xmotion.y_root-8);
|
||||||
|
|
||||||
|
W_RealizeView(dragView);
|
||||||
|
|
||||||
|
W_MapView(dragView);
|
||||||
|
|
||||||
|
XSetWindowBackgroundPixmap(dpy, dragView->window, WMGetPixmapXID(image));
|
||||||
|
XClearWindow(dpy, dragView->window);
|
||||||
|
|
||||||
|
|
||||||
|
XGrabPointer(dpy, dragView->window, True,
|
||||||
|
ButtonMotionMask|ButtonReleaseMask|EnterWindowMask,
|
||||||
|
GrabModeSync, GrabModeAsync,
|
||||||
|
scr->rootWin, scr->defaultCursor, CurrentTime);
|
||||||
|
|
||||||
|
while (!done) {
|
||||||
|
XEvent ev;
|
||||||
|
WMView *view;
|
||||||
|
|
||||||
|
XAllowEvents(dpy, SyncPointer, CurrentTime);
|
||||||
|
WMNextEvent(dpy, &ev);
|
||||||
|
|
||||||
|
switch (ev.type) {
|
||||||
|
case ButtonRelease:
|
||||||
|
if (activeWell != NULL) {
|
||||||
|
WMSetColorWellColor(activeWell, cPtr->color);
|
||||||
|
} else {
|
||||||
|
slideView(dragView, ev.xbutton.x_root, ev.xbutton.y_root,
|
||||||
|
event->xmotion.x_root, event->xmotion.y_root);
|
||||||
|
}
|
||||||
|
|
||||||
|
done = True;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EnterNotify:
|
||||||
|
view = W_GetViewForXWindow(dpy, ev.xcrossing.window);
|
||||||
|
|
||||||
|
if (view && view->self && W_CLASS(view->self) == WC_ColorWell
|
||||||
|
&& view->self != activeWell && view->self != cPtr) {
|
||||||
|
|
||||||
|
activeWell = view->self;
|
||||||
|
XRecolorCursor(dpy, scr->defaultCursor, &green, &back);
|
||||||
|
} else if (view->self!=NULL && view->self != activeWell) {
|
||||||
|
XRecolorCursor(dpy, scr->defaultCursor, &black, &back);
|
||||||
|
activeWell = NULL;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MotionNotify:
|
||||||
|
W_MoveView(dragView, ev.xmotion.x_root-8, ev.xmotion.y_root-8);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
WMHandleEvent(&ev);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
XUngrabPointer(dpy, CurrentTime);
|
||||||
|
XRecolorCursor(dpy, scr->defaultCursor, &black, &back);
|
||||||
|
|
||||||
|
W_DestroyView(dragView);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
handleDragEvents(XEvent *event, void *data)
|
handleDragEvents(XEvent *event, void *data)
|
||||||
@@ -226,8 +360,12 @@ handleDragEvents(XEvent *event, void *data)
|
|||||||
offs.height = 2;
|
offs.height = 2;
|
||||||
pixmap = makeDragPixmap(cPtr);
|
pixmap = makeDragPixmap(cPtr);
|
||||||
|
|
||||||
|
/*
|
||||||
WMDragImageFromView(cPtr->view, pixmap, cPtr->view->pos,
|
WMDragImageFromView(cPtr->view, pixmap, cPtr->view->pos,
|
||||||
offs, event, True);
|
offs, event, True);
|
||||||
|
* */
|
||||||
|
|
||||||
|
dragColor(cPtr, event, pixmap);
|
||||||
|
|
||||||
WMReleasePixmap(pixmap);
|
WMReleasePixmap(pixmap);
|
||||||
}
|
}
|
||||||
@@ -235,7 +373,7 @@ handleDragEvents(XEvent *event, void *data)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
101
WINGs/wevent.c
101
WINGs/wevent.c
@@ -11,6 +11,11 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_POLL_H
|
||||||
|
#include <poll.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_SYS_SELECT_H
|
#ifdef HAVE_SYS_SELECT_H
|
||||||
# include <sys/select.h>
|
# include <sys/select.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -708,9 +713,93 @@ WMIsDoubleClick(XEvent *event)
|
|||||||
Bool
|
Bool
|
||||||
W_WaitForEvent(Display *dpy, unsigned long xeventmask)
|
W_WaitForEvent(Display *dpy, unsigned long xeventmask)
|
||||||
{
|
{
|
||||||
#ifndef HAVE_SELECT
|
#if defined(HAVE_POLL) && defined(HAVE_POLL_H) && !defined(HAVE_SELECT)
|
||||||
#error This_system_does_not_have_select(2)_and_is_not_supported
|
struct pollfd *fds;
|
||||||
|
InputHandler *handler;
|
||||||
|
int count, timeout, nfds, k, retval;
|
||||||
|
|
||||||
|
for (nfds = 1, handler = inputHandler;
|
||||||
|
handler != 0; handler = handler->next) nfds++;
|
||||||
|
|
||||||
|
fds = wmalloc(nfds * sizeof(struct pollfd));
|
||||||
|
fds[0].fd = ConnectionNumber(dpy);
|
||||||
|
fds[0].events = POLLIN;
|
||||||
|
|
||||||
|
for (k = 1, handler = inputHandler;
|
||||||
|
handler;
|
||||||
|
handler = handler->next, k++) {
|
||||||
|
fds[k].fd = handler->fd;
|
||||||
|
fds[k].events = 0;
|
||||||
|
if (handler->mask & WIReadMask)
|
||||||
|
fds[k].events |= POLLIN;
|
||||||
|
|
||||||
|
if (handler->mask & WIWriteMask)
|
||||||
|
fds[k].events |= POLLOUT;
|
||||||
|
|
||||||
|
#if 0 /* FIXME */
|
||||||
|
if (handler->mask & WIExceptMask)
|
||||||
|
FD_SET(handler->fd, &eset);
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Setup the select() timeout to the estimated time until the
|
||||||
|
* next timer expires.
|
||||||
|
*/
|
||||||
|
if (timerPending()) {
|
||||||
|
struct timeval tv;
|
||||||
|
delayUntilNextTimerEvent(&tv);
|
||||||
|
timeout = tv.tv_sec * 1000 + tv.tv_usec / 1000;
|
||||||
|
} else {
|
||||||
|
timeout = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (xeventmask==0) {
|
||||||
|
if (XPending(dpy))
|
||||||
|
return True;
|
||||||
|
} else {
|
||||||
|
XEvent ev;
|
||||||
|
if (XCheckMaskEvent(dpy, xeventmask, &ev)) {
|
||||||
|
XPutBackEvent(dpy, &ev);
|
||||||
|
return True;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
count = poll(fds, nfds, timeout);
|
||||||
|
|
||||||
|
if (count > 0) {
|
||||||
|
handler = inputHandler;
|
||||||
|
k = 1;
|
||||||
|
while (handler) {
|
||||||
|
int mask;
|
||||||
|
|
||||||
|
mask = 0;
|
||||||
|
|
||||||
|
if (fds[k].revents & (POLLIN|POLLRDNORM|POLLRDBAND|POLLPRI))
|
||||||
|
mask |= WIReadMask;
|
||||||
|
|
||||||
|
if (fds[k].revents & (POLLOUT | POLLWRBAND))
|
||||||
|
mask |= WIWriteMask;
|
||||||
|
|
||||||
|
if (fds[k].revents & (POLLHUP | POLLNVAL | POLLERR))
|
||||||
|
mask |= WIExceptMask;
|
||||||
|
|
||||||
|
if (mask!=0 && handler->callback) {
|
||||||
|
(*handler->callback)(handler->fd, mask,
|
||||||
|
handler->clientData);
|
||||||
|
}
|
||||||
|
|
||||||
|
handler = handler->next;
|
||||||
|
k++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
retval = fds[0].revents & (POLLIN|POLLRDNORM|POLLRDBAND|POLLPRI);
|
||||||
|
free(fds);
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
#else /* not HAVE_POLL */
|
||||||
|
#ifdef HAVE_SELECT
|
||||||
struct timeval timeout;
|
struct timeval timeout;
|
||||||
struct timeval *timeoutPtr;
|
struct timeval *timeoutPtr;
|
||||||
fd_set rset, wset, eset;
|
fd_set rset, wset, eset;
|
||||||
@@ -764,7 +853,7 @@ W_WaitForEvent(Display *dpy, unsigned long xeventmask)
|
|||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* TODO: port to poll() */
|
|
||||||
count = select(1 + maxfd, &rset, &wset, &eset, timeoutPtr);
|
count = select(1 + maxfd, &rset, &wset, &eset, timeoutPtr);
|
||||||
|
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
@@ -794,10 +883,12 @@ W_WaitForEvent(Display *dpy, unsigned long xeventmask)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return FD_ISSET(ConnectionNumber(dpy), &rset);
|
return FD_ISSET(ConnectionNumber(dpy), &rset);
|
||||||
|
#else /* not HAVE_SELECT, not HAVE_POLL */
|
||||||
|
Neither select nor poll. You lose.
|
||||||
|
#endif /* HAVE_SELECT */
|
||||||
|
#endif /* HAVE_POLL */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
WMNextEvent(Display *dpy, XEvent *event)
|
WMNextEvent(Display *dpy, XEvent *event)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,6 +30,8 @@ typedef struct W_FilePanel {
|
|||||||
|
|
||||||
WMButton *homeButton;
|
WMButton *homeButton;
|
||||||
|
|
||||||
|
WMView *accessoryView;
|
||||||
|
|
||||||
WMTextField *fileField;
|
WMTextField *fileField;
|
||||||
|
|
||||||
char **fileTypes;
|
char **fileTypes;
|
||||||
@@ -358,6 +360,28 @@ WMGetFilePanelFileName(WMFilePanel *panel)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
WMSetFilePanelAccessoryView(WMFilePanel *panel, WMView *view)
|
||||||
|
{
|
||||||
|
WMView *v;
|
||||||
|
|
||||||
|
panel->accessoryView = view;
|
||||||
|
|
||||||
|
v = WMWidgetView(panel->win);
|
||||||
|
|
||||||
|
W_ReparentView(view, v);
|
||||||
|
|
||||||
|
W_MoveView(view, (v->size.width - v->size.width)/2, 300);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
WMView*
|
||||||
|
WMGetFilePanelAccessoryView(WMFilePanel *panel)
|
||||||
|
{
|
||||||
|
return panel->accessoryView;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static char*
|
static char*
|
||||||
get_name_from_path(char *path)
|
get_name_from_path(char *path)
|
||||||
{
|
{
|
||||||
@@ -564,3 +588,5 @@ buttonClick(WMButton *bPtr, WMFilePanel *panel)
|
|||||||
|
|
||||||
panel->flags.done = 1;
|
panel->flags.done = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ WMCreateFontInDefaultEncoding(WMScreen *scrPtr, char *fontName)
|
|||||||
WMFont*
|
WMFont*
|
||||||
WMRetainFont(WMFont *font)
|
WMRetainFont(WMFont *font)
|
||||||
{
|
{
|
||||||
assert(font!=NULL);
|
wassertrv(font!=NULL, NULL);
|
||||||
|
|
||||||
font->refCount++;
|
font->refCount++;
|
||||||
|
|
||||||
@@ -102,7 +102,8 @@ WMRetainFont(WMFont *font)
|
|||||||
void
|
void
|
||||||
WMReleaseFont(WMFont *font)
|
WMReleaseFont(WMFont *font)
|
||||||
{
|
{
|
||||||
assert(font!=NULL);
|
wassertr(font!=NULL);
|
||||||
|
|
||||||
font->refCount--;
|
font->refCount--;
|
||||||
if (font->refCount < 1) {
|
if (font->refCount < 1) {
|
||||||
if (font->notFontSet)
|
if (font->notFontSet)
|
||||||
@@ -118,7 +119,7 @@ WMReleaseFont(WMFont *font)
|
|||||||
unsigned int
|
unsigned int
|
||||||
WMFontHeight(WMFont *font)
|
WMFontHeight(WMFont *font)
|
||||||
{
|
{
|
||||||
assert(font!=NULL);
|
wassertrv(font!=NULL, 0);
|
||||||
|
|
||||||
return font->height;
|
return font->height;
|
||||||
}
|
}
|
||||||
@@ -179,6 +180,8 @@ WMBoldSystemFontOfSize(WMScreen *scrPtr, int size)
|
|||||||
XFontSet
|
XFontSet
|
||||||
WMGetFontFontSet(WMFont *font)
|
WMGetFontFontSet(WMFont *font)
|
||||||
{
|
{
|
||||||
|
wassertrv(font!=NULL, NULL);
|
||||||
|
|
||||||
if (font->notFontSet)
|
if (font->notFontSet)
|
||||||
return NULL;
|
return NULL;
|
||||||
else
|
else
|
||||||
@@ -189,8 +192,8 @@ WMGetFontFontSet(WMFont *font)
|
|||||||
int
|
int
|
||||||
WMWidthOfString(WMFont *font, char *text, int length)
|
WMWidthOfString(WMFont *font, char *text, int length)
|
||||||
{
|
{
|
||||||
assert(font!=NULL);
|
wassertrv(font!=NULL, 0);
|
||||||
assert(text!=NULL);
|
wassertrv(text!=NULL, 0);
|
||||||
|
|
||||||
if (font->notFontSet)
|
if (font->notFontSet)
|
||||||
return XTextWidth(font->font.normal, text, length);
|
return XTextWidth(font->font.normal, text, length);
|
||||||
@@ -210,6 +213,8 @@ void
|
|||||||
WMDrawString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x, int y,
|
WMDrawString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x, int y,
|
||||||
char *text, int length)
|
char *text, int length)
|
||||||
{
|
{
|
||||||
|
wassertr(font!=NULL);
|
||||||
|
|
||||||
if (font->notFontSet) {
|
if (font->notFontSet) {
|
||||||
XSetFont(scr->display, gc, font->font.normal->fid);
|
XSetFont(scr->display, gc, font->font.normal->fid);
|
||||||
XDrawString(scr->display, d, gc, x, y + font->y, text, length);
|
XDrawString(scr->display, d, gc, x, y + font->y, text, length);
|
||||||
@@ -224,6 +229,8 @@ void
|
|||||||
WMDrawImageString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x, int y,
|
WMDrawImageString(WMScreen *scr, Drawable d, GC gc, WMFont *font, int x, int y,
|
||||||
char *text, int length)
|
char *text, int length)
|
||||||
{
|
{
|
||||||
|
wassertr(font != NULL);
|
||||||
|
|
||||||
if (font->notFontSet) {
|
if (font->notFontSet) {
|
||||||
XSetFont(scr->display, gc, font->font.normal->fid);
|
XSetFont(scr->display, gc, font->font.normal->fid);
|
||||||
XDrawImageString(scr->display, d, gc, x, y + font->y, text, length);
|
XDrawImageString(scr->display, d, gc, x, y + font->y, text, length);
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ paintFrame(Frame *fPtr)
|
|||||||
int fy, fh;
|
int fy, fh;
|
||||||
|
|
||||||
if (fPtr->caption!=NULL)
|
if (fPtr->caption!=NULL)
|
||||||
th = scrPtr->normalFont->height;
|
th = WMFontHeight(scrPtr->normalFont);
|
||||||
else {
|
else {
|
||||||
th = 0;
|
th = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -281,12 +281,30 @@ static char *PULLDOWN_INDICATOR[] = {
|
|||||||
#define PULLDOWN_INDICATOR_HEIGHT 7
|
#define PULLDOWN_INDICATOR_HEIGHT 7
|
||||||
|
|
||||||
|
|
||||||
|
#define CHECK_MARK_WIDTH 8
|
||||||
|
#define CHECK_MARK_HEIGHT 10
|
||||||
|
|
||||||
|
static char *CHECK_MARK[] = {
|
||||||
|
"======== ",
|
||||||
|
"======= #",
|
||||||
|
"====== #%",
|
||||||
|
"===== #%=",
|
||||||
|
" #== #%==",
|
||||||
|
" #% #%===",
|
||||||
|
" % #%====",
|
||||||
|
" #%=====",
|
||||||
|
" #%======",
|
||||||
|
"#%======="};
|
||||||
|
|
||||||
|
|
||||||
#define STIPPLE_WIDTH 8
|
#define STIPPLE_WIDTH 8
|
||||||
#define STIPPLE_HEIGHT 8
|
#define STIPPLE_HEIGHT 8
|
||||||
static unsigned char STIPPLE_BITS[] = {
|
static unsigned char STIPPLE_BITS[] = {
|
||||||
0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa};
|
0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa};
|
||||||
|
|
||||||
|
|
||||||
|
extern void W_ReadConfigurations(void);
|
||||||
|
|
||||||
|
|
||||||
extern W_ViewProcedureTable _WindowViewProcedures;
|
extern W_ViewProcedureTable _WindowViewProcedures;
|
||||||
extern W_ViewProcedureTable _FrameViewProcedures;
|
extern W_ViewProcedureTable _FrameViewProcedures;
|
||||||
@@ -489,6 +507,8 @@ WMCreateScreenWithRContext(Display *display, int screen, RContext *context)
|
|||||||
|
|
||||||
initProcedureTable();
|
initProcedureTable();
|
||||||
|
|
||||||
|
W_ReadConfigurations();
|
||||||
|
|
||||||
assert(W_ApplicationInitialized());
|
assert(W_ApplicationInitialized());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -567,6 +587,16 @@ WMCreateScreenWithRContext(Display *display, int screen, RContext *context)
|
|||||||
|
|
||||||
scrPtr->boldFont = WMBoldSystemFontOfSize(scrPtr, 12);
|
scrPtr->boldFont = WMBoldSystemFontOfSize(scrPtr, 12);
|
||||||
|
|
||||||
|
if (!scrPtr->boldFont)
|
||||||
|
scrPtr->boldFont = scrPtr->normalFont;
|
||||||
|
|
||||||
|
if (!scrPtr->normalFont) {
|
||||||
|
wwarning("could not load any fonts. Make sure your font installation"
|
||||||
|
"and locale settings are correct.");
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
scrPtr->checkButtonImageOn = makePixmap(scrPtr, CHECK_BUTTON_ON,
|
scrPtr->checkButtonImageOn = makePixmap(scrPtr, CHECK_BUTTON_ON,
|
||||||
CHECK_BUTTON_ON_WIDTH,
|
CHECK_BUTTON_ON_WIDTH,
|
||||||
CHECK_BUTTON_ON_HEIGHT, False);
|
CHECK_BUTTON_ON_HEIGHT, False);
|
||||||
@@ -636,6 +666,11 @@ WMCreateScreenWithRContext(Display *display, int screen, RContext *context)
|
|||||||
scrPtr->pullDownIndicator = makePixmap(scrPtr, PULLDOWN_INDICATOR,
|
scrPtr->pullDownIndicator = makePixmap(scrPtr, PULLDOWN_INDICATOR,
|
||||||
PULLDOWN_INDICATOR_WIDTH,
|
PULLDOWN_INDICATOR_WIDTH,
|
||||||
PULLDOWN_INDICATOR_HEIGHT, True);
|
PULLDOWN_INDICATOR_HEIGHT, True);
|
||||||
|
|
||||||
|
scrPtr->checkMark = makePixmap(scrPtr, CHECK_MARK,
|
||||||
|
CHECK_MARK_WIDTH,
|
||||||
|
CHECK_MARK_HEIGHT, True);
|
||||||
|
|
||||||
loadPixmaps(scrPtr);
|
loadPixmaps(scrPtr);
|
||||||
|
|
||||||
scrPtr->defaultCursor = XCreateFontCursor(display, XC_left_ptr);
|
scrPtr->defaultCursor = XCreateFontCursor(display, XC_left_ptr);
|
||||||
|
|||||||
@@ -99,6 +99,13 @@ WMSetLabelImage(WMLabel *lPtr, WMPixmap *image)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
WMPixmap*
|
||||||
|
WMGetLabelImage(WMLabel *lPtr)
|
||||||
|
{
|
||||||
|
return lPtr->image;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
WMSetLabelImagePosition(WMLabel *lPtr, WMImagePosition position)
|
WMSetLabelImagePosition(WMLabel *lPtr, WMImagePosition position)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
#include "WINGsP.h"
|
#include "WINGsP.h"
|
||||||
|
|
||||||
|
char *WMListDidScrollNotification = "WMListDidScrollNotification";
|
||||||
|
|
||||||
|
|
||||||
typedef struct W_List {
|
typedef struct W_List {
|
||||||
W_Class widgetClass;
|
W_Class widgetClass;
|
||||||
@@ -99,7 +101,7 @@ WMCreateList(WMWidget *parent)
|
|||||||
|EnterWindowMask|LeaveWindowMask|ButtonMotionMask,
|
|EnterWindowMask|LeaveWindowMask|ButtonMotionMask,
|
||||||
handleActionEvents, lPtr);
|
handleActionEvents, lPtr);
|
||||||
|
|
||||||
lPtr->itemHeight = scrPtr->normalFont->height + 1;
|
lPtr->itemHeight = WMFontHeight(scrPtr->normalFont) + 1;
|
||||||
|
|
||||||
/* create the vertical scroller */
|
/* create the vertical scroller */
|
||||||
lPtr->vScroller = WMCreateScroller(lPtr);
|
lPtr->vScroller = WMCreateScroller(lPtr);
|
||||||
@@ -224,6 +226,7 @@ WMRemoveListItem(WMList *lPtr, int row)
|
|||||||
{
|
{
|
||||||
WMListItem *llist;
|
WMListItem *llist;
|
||||||
WMListItem *tmp;
|
WMListItem *tmp;
|
||||||
|
int topItem = lPtr->topItem;
|
||||||
|
|
||||||
CHECK_CLASS(lPtr, WC_List);
|
CHECK_CLASS(lPtr, WC_List);
|
||||||
|
|
||||||
@@ -266,6 +269,8 @@ WMRemoveListItem(WMList *lPtr, int row)
|
|||||||
if (!lPtr->idleID) {
|
if (!lPtr->idleID) {
|
||||||
lPtr->idleID = WMAddIdleHandler((WMCallback*)updateScroller, lPtr);
|
lPtr->idleID = WMAddIdleHandler((WMCallback*)updateScroller, lPtr);
|
||||||
}
|
}
|
||||||
|
if (lPtr->topItem != topItem)
|
||||||
|
WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -370,6 +375,13 @@ WMGetListSelectedItemRow(WMList *lPtr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
WMGetListItemHeight(WMList *lPtr)
|
||||||
|
{
|
||||||
|
return lPtr->itemHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
WMSetListPosition(WMList *lPtr, int row)
|
WMSetListPosition(WMList *lPtr, int row)
|
||||||
{
|
{
|
||||||
@@ -417,6 +429,7 @@ vScrollCallBack(WMWidget *scroller, void *self)
|
|||||||
WMList *lPtr = (WMList*)self;
|
WMList *lPtr = (WMList*)self;
|
||||||
WMScroller *sPtr = (WMScroller*)scroller;
|
WMScroller *sPtr = (WMScroller*)scroller;
|
||||||
int height;
|
int height;
|
||||||
|
int topItem = lPtr->topItem;
|
||||||
|
|
||||||
height = lPtr->view->size.height - 4;
|
height = lPtr->view->size.height - 4;
|
||||||
|
|
||||||
@@ -476,6 +489,9 @@ vScrollCallBack(WMWidget *scroller, void *self)
|
|||||||
/* do nothing */
|
/* do nothing */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (lPtr->topItem != topItem)
|
||||||
|
WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -516,8 +532,8 @@ paintItem(List *lPtr, int index)
|
|||||||
flags |= WLDSIsBranch;
|
flags |= WLDSIsBranch;
|
||||||
|
|
||||||
if (lPtr->draw)
|
if (lPtr->draw)
|
||||||
(*lPtr->draw)(lPtr, view->window, itemPtr->text, flags, &rect);
|
(*lPtr->draw)(lPtr, index, view->window, itemPtr->text, flags,
|
||||||
|
&rect);
|
||||||
} else {
|
} else {
|
||||||
if (itemPtr->selected)
|
if (itemPtr->selected)
|
||||||
XFillRectangle(scr->display, view->window, W_GC(scr->white), x, y,
|
XFillRectangle(scr->display, view->window, W_GC(scr->white), x, y,
|
||||||
@@ -706,6 +722,7 @@ handleActionEvents(XEvent *event, void *data)
|
|||||||
{
|
{
|
||||||
List *lPtr = (List*)data;
|
List *lPtr = (List*)data;
|
||||||
int tmp;
|
int tmp;
|
||||||
|
int topItem = lPtr->topItem;
|
||||||
|
|
||||||
CHECK_CLASS(data, WC_List);
|
CHECK_CLASS(data, WC_List);
|
||||||
|
|
||||||
@@ -713,15 +730,12 @@ handleActionEvents(XEvent *event, void *data)
|
|||||||
case ButtonRelease:
|
case ButtonRelease:
|
||||||
lPtr->flags.buttonPressed = 0;
|
lPtr->flags.buttonPressed = 0;
|
||||||
tmp = getItemIndexAt(lPtr, event->xbutton.y);
|
tmp = getItemIndexAt(lPtr, event->xbutton.y);
|
||||||
|
|
||||||
if (tmp == lPtr->selectedItem && tmp >= 0) {
|
if (tmp == lPtr->selectedItem && tmp >= 0) {
|
||||||
if (WMIsDoubleClick(event)) {
|
|
||||||
if (lPtr->doubleAction)
|
|
||||||
(*lPtr->doubleAction)(lPtr, lPtr->doubleClientData);
|
|
||||||
} else {
|
|
||||||
if (lPtr->action)
|
if (lPtr->action)
|
||||||
(*lPtr->action)(lPtr, lPtr->clientData);
|
(*lPtr->action)(lPtr, lPtr->clientData);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EnterNotify:
|
case EnterNotify:
|
||||||
@@ -743,6 +757,11 @@ handleActionEvents(XEvent *event, void *data)
|
|||||||
lPtr->selectedItem = tmp;
|
lPtr->selectedItem = tmp;
|
||||||
}
|
}
|
||||||
lPtr->flags.buttonPressed = 1;
|
lPtr->flags.buttonPressed = 1;
|
||||||
|
|
||||||
|
if (WMIsDoubleClick(event)) {
|
||||||
|
if (lPtr->doubleAction)
|
||||||
|
(*lPtr->doubleAction)(lPtr, lPtr->doubleClientData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -756,6 +775,8 @@ handleActionEvents(XEvent *event, void *data)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (lPtr->topItem != topItem)
|
||||||
|
WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ W_DrawRelief(W_Screen *scr, Drawable d, int x, int y, unsigned int width,
|
|||||||
|
|
||||||
XDrawLine(dpy, d, bgc, x+width-1, y, x+width-1, y+height-1);
|
XDrawLine(dpy, d, bgc, x+width-1, y, x+width-1, y+height-1);
|
||||||
if (height > 2 && relief!=WRPushed) {
|
if (height > 2 && relief!=WRPushed) {
|
||||||
XDrawLine(dpy, d, dgc, x+width-2, y+2, x+width-2, y+height-3);
|
XDrawLine(dpy, d, dgc, x+width-2, y+1, x+width-2, y+height-2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,12 +116,13 @@ W_GetTextHeight(WMFont *font, char *text, int width, int wrap)
|
|||||||
int count;
|
int count;
|
||||||
int length = strlen(text);
|
int length = strlen(text);
|
||||||
int h;
|
int h;
|
||||||
|
int fheight = WMFontHeight(font);
|
||||||
|
|
||||||
h = 0;
|
h = 0;
|
||||||
while (length > 0) {
|
while (length > 0) {
|
||||||
count = fitText(ptr, font, width, wrap);
|
count = fitText(ptr, font, width, wrap);
|
||||||
|
|
||||||
h += font->height;
|
h += fheight;
|
||||||
|
|
||||||
if (isspace(ptr[count]))
|
if (isspace(ptr[count]))
|
||||||
count++;
|
count++;
|
||||||
@@ -142,6 +143,7 @@ W_PaintText(W_View *view, Drawable d, WMFont *font, int x, int y,
|
|||||||
int line_width;
|
int line_width;
|
||||||
int line_x;
|
int line_x;
|
||||||
int count;
|
int count;
|
||||||
|
int fheight = WMFontHeight(font);
|
||||||
|
|
||||||
while (length > 0) {
|
while (length > 0) {
|
||||||
count = fitText(ptr, font, width, wrap);
|
count = fitText(ptr, font, width, wrap);
|
||||||
@@ -156,7 +158,7 @@ W_PaintText(W_View *view, Drawable d, WMFont *font, int x, int y,
|
|||||||
|
|
||||||
WMDrawString(view->screen, d, gc, font, line_x, y, ptr, count);
|
WMDrawString(view->screen, d, gc, font, line_x, y, ptr, count);
|
||||||
|
|
||||||
y += font->height;
|
y += fheight;
|
||||||
|
|
||||||
if (isspace(ptr[count]))
|
if (isspace(ptr[count]))
|
||||||
count++;
|
count++;
|
||||||
|
|||||||
@@ -113,8 +113,8 @@ WMCreateAlertPanel(WMScreen *scrPtr, WMWindow *owner,
|
|||||||
largeFont = WMBoldSystemFontOfSize(scrPtr, 24);
|
largeFont = WMBoldSystemFontOfSize(scrPtr, 24);
|
||||||
|
|
||||||
panel->tLbl = WMCreateLabel(panel->win);
|
panel->tLbl = WMCreateLabel(panel->win);
|
||||||
WMMoveWidget(panel->tLbl, 80, (80 - largeFont->height)/2);
|
WMMoveWidget(panel->tLbl, 80, (80 - WMFontHeight(largeFont))/2);
|
||||||
WMResizeWidget(panel->tLbl, 400 - 70, largeFont->height+4);
|
WMResizeWidget(panel->tLbl, 400 - 70, WMFontHeight(largeFont)+4);
|
||||||
WMSetLabelText(panel->tLbl, title);
|
WMSetLabelText(panel->tLbl, title);
|
||||||
WMSetLabelTextAlignment(panel->tLbl, WALeft);
|
WMSetLabelTextAlignment(panel->tLbl, WALeft);
|
||||||
WMSetLabelFont(panel->tLbl, largeFont);
|
WMSetLabelFont(panel->tLbl, largeFont);
|
||||||
@@ -126,7 +126,7 @@ WMCreateAlertPanel(WMScreen *scrPtr, WMWindow *owner,
|
|||||||
if (msg) {
|
if (msg) {
|
||||||
panel->mLbl = WMCreateLabel(panel->win);
|
panel->mLbl = WMCreateLabel(panel->win);
|
||||||
WMMoveWidget(panel->mLbl, 10, 83);
|
WMMoveWidget(panel->mLbl, 10, 83);
|
||||||
WMResizeWidget(panel->mLbl, 380, scrPtr->normalFont->height*4);
|
WMResizeWidget(panel->mLbl, 380, WMFontHeight(scrPtr->normalFont)*4);
|
||||||
WMSetLabelText(panel->mLbl, msg);
|
WMSetLabelText(panel->mLbl, msg);
|
||||||
WMSetLabelTextAlignment(panel->mLbl, WACenter);
|
WMSetLabelTextAlignment(panel->mLbl, WACenter);
|
||||||
}
|
}
|
||||||
@@ -317,7 +317,7 @@ WMCreateInputPanel(WMScreen *scrPtr, WMWindow *owner, char *title, char *msg,
|
|||||||
|
|
||||||
panel->tLbl = WMCreateLabel(panel->win);
|
panel->tLbl = WMCreateLabel(panel->win);
|
||||||
WMMoveWidget(panel->tLbl, 20, 16);
|
WMMoveWidget(panel->tLbl, 20, 16);
|
||||||
WMResizeWidget(panel->tLbl, 320 - 40, largeFont->height+4);
|
WMResizeWidget(panel->tLbl, 320 - 40, WMFontHeight(largeFont)+4);
|
||||||
WMSetLabelText(panel->tLbl, title);
|
WMSetLabelText(panel->tLbl, title);
|
||||||
WMSetLabelTextAlignment(panel->tLbl, WALeft);
|
WMSetLabelTextAlignment(panel->tLbl, WALeft);
|
||||||
WMSetLabelFont(panel->tLbl, largeFont);
|
WMSetLabelFont(panel->tLbl, largeFont);
|
||||||
@@ -329,7 +329,8 @@ WMCreateInputPanel(WMScreen *scrPtr, WMWindow *owner, char *title, char *msg,
|
|||||||
if (msg) {
|
if (msg) {
|
||||||
panel->mLbl = WMCreateLabel(panel->win);
|
panel->mLbl = WMCreateLabel(panel->win);
|
||||||
WMMoveWidget(panel->mLbl, 20, 50);
|
WMMoveWidget(panel->mLbl, 20, 50);
|
||||||
WMResizeWidget(panel->mLbl, 320 - 40,scrPtr->normalFont->height*2);
|
WMResizeWidget(panel->mLbl, 320 - 40,
|
||||||
|
WMFontHeight(scrPtr->normalFont)*2);
|
||||||
WMSetLabelText(panel->mLbl, msg);
|
WMSetLabelText(panel->mLbl, msg);
|
||||||
WMSetLabelTextAlignment(panel->mLbl, WALeft);
|
WMSetLabelTextAlignment(panel->mLbl, WALeft);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ WMRetainPixmap(WMPixmap *pixmap)
|
|||||||
void
|
void
|
||||||
WMReleasePixmap(WMPixmap *pixmap)
|
WMReleasePixmap(WMPixmap *pixmap)
|
||||||
{
|
{
|
||||||
|
wassertr(pixmap!=NULL);
|
||||||
|
|
||||||
pixmap->refCount--;
|
pixmap->refCount--;
|
||||||
|
|
||||||
if (pixmap->refCount<1) {
|
if (pixmap->refCount<1) {
|
||||||
@@ -139,12 +141,17 @@ WMCreatePixmapFromXPMData(WMScreen *scrPtr, char **data)
|
|||||||
Pixmap
|
Pixmap
|
||||||
WMGetPixmapXID(WMPixmap *pixmap)
|
WMGetPixmapXID(WMPixmap *pixmap)
|
||||||
{
|
{
|
||||||
|
wassertrv(pixmap != NULL, None);
|
||||||
|
|
||||||
return pixmap->pixmap;
|
return pixmap->pixmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Pixmap
|
Pixmap
|
||||||
WMGetPixmapMaskXID(WMPixmap *pixmap)
|
WMGetPixmapMaskXID(WMPixmap *pixmap)
|
||||||
{
|
{
|
||||||
|
wassertrv(pixmap != NULL, None);
|
||||||
|
|
||||||
return pixmap->mask;
|
return pixmap->mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,7 +159,9 @@ WMGetPixmapMaskXID(WMPixmap *pixmap)
|
|||||||
WMSize
|
WMSize
|
||||||
WMGetPixmapSize(WMPixmap *pixmap)
|
WMGetPixmapSize(WMPixmap *pixmap)
|
||||||
{
|
{
|
||||||
WMSize size;
|
WMSize size = {0,0};
|
||||||
|
|
||||||
|
wassertrv(pixmap != NULL, size);
|
||||||
|
|
||||||
size.width = pixmap->width;
|
size.width = pixmap->width;
|
||||||
size.height = pixmap->height;
|
size.height = pixmap->height;
|
||||||
@@ -198,8 +207,24 @@ WMGetSystemPixmap(WMScreen *scr, int image)
|
|||||||
case WSIHighlightedArrowDown:
|
case WSIHighlightedArrowDown:
|
||||||
return WMRetainPixmap(scr->hiDownArrow);
|
return WMRetainPixmap(scr->hiDownArrow);
|
||||||
|
|
||||||
|
case WSICheckMark:
|
||||||
|
return WMRetainPixmap(scr->checkMark);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
WMDrawPixmap(WMPixmap *pixmap, Drawable d, int x, int y)
|
||||||
|
{
|
||||||
|
WMScreen *scr = pixmap->screen;
|
||||||
|
|
||||||
|
XSetClipMask(scr->display, scr->clipGC, pixmap->mask);
|
||||||
|
XSetClipOrigin(scr->display, scr->clipGC, x, y);
|
||||||
|
|
||||||
|
XCopyArea(scr->display, pixmap->pixmap, d, scr->clipGC, 0, 0,
|
||||||
|
pixmap->width, pixmap->height, x, y);
|
||||||
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ typedef struct ItemList {
|
|||||||
unsigned int disabled:1;
|
unsigned int disabled:1;
|
||||||
} ItemList;
|
} ItemList;
|
||||||
|
|
||||||
|
|
||||||
typedef struct W_PopUpButton {
|
typedef struct W_PopUpButton {
|
||||||
W_Class widgetClass;
|
W_Class widgetClass;
|
||||||
WMView *view;
|
WMView *view;
|
||||||
@@ -30,12 +31,20 @@ typedef struct W_PopUpButton {
|
|||||||
|
|
||||||
WMView *menuView; /* override redirect popup menu */
|
WMView *menuView; /* override redirect popup menu */
|
||||||
|
|
||||||
|
WMHandlerID timer; /* for autoscroll */
|
||||||
|
|
||||||
|
/**/
|
||||||
|
int scrollStartY; /* for autoscroll */
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
unsigned int pullsDown:1;
|
unsigned int pullsDown:1;
|
||||||
|
|
||||||
unsigned int configured:1;
|
unsigned int configured:1;
|
||||||
|
|
||||||
unsigned int insideMenu:1;
|
unsigned int insideMenu:1;
|
||||||
|
|
||||||
|
unsigned int enabled:1;
|
||||||
|
|
||||||
} flags;
|
} flags;
|
||||||
} PopUpButton;
|
} PopUpButton;
|
||||||
|
|
||||||
@@ -43,6 +52,8 @@ typedef struct W_PopUpButton {
|
|||||||
#define MENU_BLINK_DELAY 60000
|
#define MENU_BLINK_DELAY 60000
|
||||||
#define MENU_BLINK_COUNT 2
|
#define MENU_BLINK_COUNT 2
|
||||||
|
|
||||||
|
#define SCROLL_DELAY 30
|
||||||
|
|
||||||
|
|
||||||
W_ViewProcedureTable _PopUpButtonViewProcedures = {
|
W_ViewProcedureTable _PopUpButtonViewProcedures = {
|
||||||
NULL,
|
NULL,
|
||||||
@@ -94,6 +105,8 @@ WMCreatePopUpButton(WMWidget *parent)
|
|||||||
WMCreateEventHandler(bPtr->view, ButtonPressMask|ButtonReleaseMask,
|
WMCreateEventHandler(bPtr->view, ButtonPressMask|ButtonReleaseMask,
|
||||||
handleActionEvents, bPtr);
|
handleActionEvents, bPtr);
|
||||||
|
|
||||||
|
bPtr->flags.enabled = 1;
|
||||||
|
|
||||||
bPtr->menuView = W_CreateTopView(scr);
|
bPtr->menuView = W_CreateTopView(scr);
|
||||||
bPtr->menuView->attribs.override_redirect = True;
|
bPtr->menuView->attribs.override_redirect = True;
|
||||||
bPtr->menuView->attribFlags |= CWOverrideRedirect;
|
bPtr->menuView->attribFlags |= CWOverrideRedirect;
|
||||||
@@ -101,8 +114,8 @@ WMCreatePopUpButton(WMWidget *parent)
|
|||||||
W_ResizeView(bPtr->menuView, bPtr->view->size.width, 1);
|
W_ResizeView(bPtr->menuView, bPtr->view->size.width, 1);
|
||||||
|
|
||||||
WMCreateEventHandler(bPtr->menuView, ButtonPressMask|ButtonReleaseMask
|
WMCreateEventHandler(bPtr->menuView, ButtonPressMask|ButtonReleaseMask
|
||||||
|EnterWindowMask|LeaveWindowMask|ButtonMotionMask,
|
|EnterWindowMask|LeaveWindowMask|ButtonMotionMask
|
||||||
handleActionEvents, bPtr);
|
|ExposureMask, handleActionEvents, bPtr);
|
||||||
|
|
||||||
return bPtr;
|
return bPtr;
|
||||||
}
|
}
|
||||||
@@ -244,6 +257,15 @@ WMRemovePopUpButtonItem(WMPopUpButton *bPtr, int index)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
WMSetPopUpButtonEnabled(WMPopUpButton *bPtr, Bool flag)
|
||||||
|
{
|
||||||
|
bPtr->flags.enabled = flag;
|
||||||
|
if (bPtr->view->flags.mapped)
|
||||||
|
paintPopUpButton(bPtr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
WMSetPopUpButtonSelectedItem(WMPopUpButton *bPtr, int index)
|
WMSetPopUpButtonSelectedItem(WMPopUpButton *bPtr, int index)
|
||||||
{
|
{
|
||||||
@@ -380,10 +402,11 @@ paintPopUpButton(PopUpButton *bPtr)
|
|||||||
bPtr->view->size.height, WRRaised);
|
bPtr->view->size.height, WRRaised);
|
||||||
|
|
||||||
if (caption) {
|
if (caption) {
|
||||||
W_PaintText(bPtr->view, pixmap, scr->normalFont,
|
W_PaintText(bPtr->view, pixmap, scr->normalFont, 6,
|
||||||
6, (bPtr->view->size.height-scr->normalFont->height)/2,
|
(bPtr->view->size.height-WMFontHeight(scr->normalFont))/2,
|
||||||
bPtr->view->size.width, WALeft, W_GC(scr->black), False,
|
bPtr->view->size.width, WALeft,
|
||||||
caption, strlen(caption));
|
bPtr->flags.enabled ? W_GC(scr->black) : W_GC(scr->darkGray),
|
||||||
|
False, caption, strlen(caption));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bPtr->flags.pullsDown) {
|
if (bPtr->flags.pullsDown) {
|
||||||
@@ -448,7 +471,7 @@ paintMenuEntry(PopUpButton *bPtr, int index, int highlight)
|
|||||||
itemHeight = bPtr->view->size.height;
|
itemHeight = bPtr->view->size.height;
|
||||||
width = bPtr->view->size.width;
|
width = bPtr->view->size.width;
|
||||||
height = itemHeight * bPtr->itemCount;
|
height = itemHeight * bPtr->itemCount;
|
||||||
yo = (itemHeight - scr->normalFont->height)/2;
|
yo = (itemHeight - WMFontHeight(scr->normalFont))/2;
|
||||||
|
|
||||||
if (!highlight) {
|
if (!highlight) {
|
||||||
XClearArea(scr->display, bPtr->menuView->window, 0, index*itemHeight,
|
XClearArea(scr->display, bPtr->menuView->window, 0, index*itemHeight,
|
||||||
@@ -495,7 +518,7 @@ makeMenuPixmap(PopUpButton *bPtr)
|
|||||||
itemHeight = bPtr->view->size.height;
|
itemHeight = bPtr->view->size.height;
|
||||||
width = bPtr->view->size.width;
|
width = bPtr->view->size.width;
|
||||||
height = itemHeight * bPtr->itemCount;
|
height = itemHeight * bPtr->itemCount;
|
||||||
yo = (itemHeight - scr->normalFont->height)/2;
|
yo = (itemHeight - WMFontHeight(scr->normalFont))/2;
|
||||||
|
|
||||||
pixmap = XCreatePixmap(scr->display, bPtr->view->window, width, height,
|
pixmap = XCreatePixmap(scr->display, bPtr->view->window, width, height,
|
||||||
scr->depth);
|
scr->depth);
|
||||||
@@ -595,17 +618,71 @@ itemIsEnabled(PopUpButton *bPtr, int index)
|
|||||||
{
|
{
|
||||||
ItemList *item = bPtr->items;
|
ItemList *item = bPtr->items;
|
||||||
|
|
||||||
while (index-- > 0)
|
while (index-- > 0 && item)
|
||||||
item = item->nextPtr;
|
item = item->nextPtr;
|
||||||
|
|
||||||
return !item->disabled;
|
return item ? !item->disabled : False;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
autoScroll(void *data)
|
||||||
|
{
|
||||||
|
PopUpButton *bPtr = (PopUpButton*)data;
|
||||||
|
int scrHeight = WMWidgetScreen(bPtr)->rootView->size.height;
|
||||||
|
int repeat = 0;
|
||||||
|
int dy = 0;
|
||||||
|
|
||||||
|
|
||||||
|
if (bPtr->scrollStartY >= scrHeight-1
|
||||||
|
&& bPtr->menuView->pos.y+bPtr->menuView->size.height >= scrHeight-1) {
|
||||||
|
repeat = 1;
|
||||||
|
|
||||||
|
if (bPtr->menuView->pos.y+bPtr->menuView->size.height-5
|
||||||
|
<= scrHeight - 1) {
|
||||||
|
dy = scrHeight - 1
|
||||||
|
- (bPtr->menuView->pos.y+bPtr->menuView->size.height);
|
||||||
|
} else
|
||||||
|
dy = -5;
|
||||||
|
|
||||||
|
} else if (bPtr->scrollStartY <= 1 && bPtr->menuView->pos.y < 1) {
|
||||||
|
repeat = 1;
|
||||||
|
|
||||||
|
if (bPtr->menuView->pos.y+5 > 1)
|
||||||
|
dy = 1 - bPtr->menuView->pos.y;
|
||||||
|
else
|
||||||
|
dy = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (repeat) {
|
||||||
|
int oldItem;
|
||||||
|
|
||||||
|
W_MoveView(bPtr->menuView, bPtr->menuView->pos.x,
|
||||||
|
bPtr->menuView->pos.y + dy);
|
||||||
|
|
||||||
|
oldItem = bPtr->highlightedItem;
|
||||||
|
bPtr->highlightedItem = (bPtr->scrollStartY - bPtr->menuView->pos.y)
|
||||||
|
/ bPtr->view->size.height;
|
||||||
|
|
||||||
|
if (oldItem!=bPtr->highlightedItem) {
|
||||||
|
paintMenuEntry(bPtr, oldItem, False);
|
||||||
|
paintMenuEntry(bPtr, bPtr->highlightedItem,
|
||||||
|
itemIsEnabled(bPtr, bPtr->highlightedItem));
|
||||||
|
}
|
||||||
|
|
||||||
|
bPtr->timer = WMAddTimerHandler(SCROLL_DELAY, autoScroll, bPtr);
|
||||||
|
} else {
|
||||||
|
bPtr->timer = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
handleActionEvents(XEvent *event, void *data)
|
handleActionEvents(XEvent *event, void *data)
|
||||||
{
|
{
|
||||||
PopUpButton *bPtr = (PopUpButton*)data;
|
PopUpButton *bPtr = (PopUpButton*)data;
|
||||||
int oldItem;
|
int oldItem;
|
||||||
|
int scrHeight = WMWidgetScreen(bPtr)->rootView->size.height;
|
||||||
|
|
||||||
CHECK_CLASS(data, WC_PopUpButton);
|
CHECK_CLASS(data, WC_PopUpButton);
|
||||||
|
|
||||||
@@ -614,6 +691,11 @@ handleActionEvents(XEvent *event, void *data)
|
|||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
/* called for menuView */
|
/* called for menuView */
|
||||||
|
case Expose:
|
||||||
|
paintMenuEntry(bPtr, bPtr->highlightedItem,
|
||||||
|
itemIsEnabled(bPtr, bPtr->highlightedItem));
|
||||||
|
break;
|
||||||
|
|
||||||
case LeaveNotify:
|
case LeaveNotify:
|
||||||
bPtr->flags.insideMenu = 0;
|
bPtr->flags.insideMenu = 0;
|
||||||
if (bPtr->menuView->flags.mapped)
|
if (bPtr->menuView->flags.mapped)
|
||||||
@@ -634,11 +716,24 @@ handleActionEvents(XEvent *event, void *data)
|
|||||||
paintMenuEntry(bPtr, bPtr->highlightedItem,
|
paintMenuEntry(bPtr, bPtr->highlightedItem,
|
||||||
itemIsEnabled(bPtr, bPtr->highlightedItem));
|
itemIsEnabled(bPtr, bPtr->highlightedItem));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event->xmotion.y_root >= scrHeight-1
|
||||||
|
|| event->xmotion.y_root <= 1) {
|
||||||
|
bPtr->scrollStartY = event->xmotion.y_root;
|
||||||
|
if (!bPtr->timer)
|
||||||
|
autoScroll(bPtr);
|
||||||
|
} else if (bPtr->timer) {
|
||||||
|
WMDeleteTimerHandler(bPtr->timer);
|
||||||
|
bPtr->timer = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* called for bPtr->view */
|
/* called for bPtr->view */
|
||||||
case ButtonPress:
|
case ButtonPress:
|
||||||
|
if (!bPtr->flags.enabled)
|
||||||
|
break;
|
||||||
|
|
||||||
popUpMenu(bPtr);
|
popUpMenu(bPtr);
|
||||||
if (!bPtr->flags.pullsDown) {
|
if (!bPtr->flags.pullsDown) {
|
||||||
bPtr->highlightedItem = bPtr->selectedItemIndex;
|
bPtr->highlightedItem = bPtr->selectedItemIndex;
|
||||||
@@ -657,6 +752,12 @@ handleActionEvents(XEvent *event, void *data)
|
|||||||
XUngrabPointer(bPtr->view->screen->display, event->xbutton.time);
|
XUngrabPointer(bPtr->view->screen->display, event->xbutton.time);
|
||||||
if (!bPtr->flags.pullsDown)
|
if (!bPtr->flags.pullsDown)
|
||||||
popDownMenu(bPtr);
|
popDownMenu(bPtr);
|
||||||
|
|
||||||
|
if (bPtr->timer) {
|
||||||
|
WMDeleteTimerHandler(bPtr->timer);
|
||||||
|
bPtr->timer = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (bPtr->flags.insideMenu && bPtr->highlightedItem>=0) {
|
if (bPtr->flags.insideMenu && bPtr->highlightedItem>=0) {
|
||||||
if (itemIsEnabled(bPtr, bPtr->highlightedItem)) {
|
if (itemIsEnabled(bPtr, bPtr->highlightedItem)) {
|
||||||
int i;
|
int i;
|
||||||
@@ -691,6 +792,10 @@ destroyPopUpButton(PopUpButton *bPtr)
|
|||||||
{
|
{
|
||||||
ItemList *itemPtr, *tmp;
|
ItemList *itemPtr, *tmp;
|
||||||
|
|
||||||
|
if (bPtr->timer) {
|
||||||
|
WMDeleteTimerHandler(bPtr->timer);
|
||||||
|
}
|
||||||
|
|
||||||
itemPtr = bPtr->items;
|
itemPtr = bPtr->items;
|
||||||
while (itemPtr!=NULL) {
|
while (itemPtr!=NULL) {
|
||||||
free(itemPtr->text);
|
free(itemPtr->text);
|
||||||
|
|||||||
@@ -18,10 +18,13 @@ typedef struct W_Slider {
|
|||||||
int value;
|
int value;
|
||||||
|
|
||||||
Pixmap knobPixmap;
|
Pixmap knobPixmap;
|
||||||
|
WMPixmap *backPixmap;
|
||||||
|
|
||||||
WMAction *action;
|
WMAction *action;
|
||||||
void *clientData;
|
void *clientData;
|
||||||
|
|
||||||
|
int knobThickness;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
unsigned int continuous:1;
|
unsigned int continuous:1;
|
||||||
|
|
||||||
@@ -33,8 +36,6 @@ typedef struct W_Slider {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define SLIDER_LENGTH 20
|
|
||||||
|
|
||||||
|
|
||||||
static void resizeSlider();
|
static void resizeSlider();
|
||||||
|
|
||||||
@@ -54,6 +55,7 @@ static void realizeSlider(Slider *sPtr);
|
|||||||
static void handleEvents(XEvent *event, void *data);
|
static void handleEvents(XEvent *event, void *data);
|
||||||
static void handleActionEvents(XEvent *event, void *data);
|
static void handleActionEvents(XEvent *event, void *data);
|
||||||
|
|
||||||
|
static void makeKnobPixmap(Slider *sPtr);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
realizeObserver(void *self, WMNotification *not)
|
realizeObserver(void *self, WMNotification *not)
|
||||||
@@ -94,6 +96,8 @@ WMCreateSlider(WMWidget *parent)
|
|||||||
sPtr->maxValue = 100;
|
sPtr->maxValue = 100;
|
||||||
sPtr->value = 50;
|
sPtr->value = 50;
|
||||||
|
|
||||||
|
sPtr->knobThickness = 20;
|
||||||
|
|
||||||
sPtr->flags.continuous = 1;
|
sPtr->flags.continuous = 1;
|
||||||
|
|
||||||
WMAddNotificationObserver(realizeObserver, sPtr,
|
WMAddNotificationObserver(realizeObserver, sPtr,
|
||||||
@@ -103,6 +107,36 @@ WMCreateSlider(WMWidget *parent)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
WMSetSliderImage(WMSlider *sPtr, WMPixmap *pixmap)
|
||||||
|
{
|
||||||
|
if (sPtr->backPixmap)
|
||||||
|
WMReleasePixmap(sPtr->backPixmap);
|
||||||
|
|
||||||
|
sPtr->backPixmap = WMRetainPixmap(pixmap);
|
||||||
|
|
||||||
|
if (sPtr->view->flags.mapped) {
|
||||||
|
paintSlider(sPtr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
WMSetSliderKnobThickness(WMSlider *sPtr, int thickness)
|
||||||
|
{
|
||||||
|
assert(thickness > 0);
|
||||||
|
|
||||||
|
sPtr->knobThickness = thickness;
|
||||||
|
|
||||||
|
if (sPtr->knobPixmap) {
|
||||||
|
makeKnobPixmap(sPtr);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sPtr->view->flags.mapped) {
|
||||||
|
paintSlider(sPtr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
WMGetSliderMinValue(WMSlider *slider)
|
WMGetSliderMinValue(WMSlider *slider)
|
||||||
@@ -204,16 +238,18 @@ makeKnobPixmap(Slider *sPtr)
|
|||||||
|
|
||||||
if (sPtr->flags.vertical) {
|
if (sPtr->flags.vertical) {
|
||||||
w = sPtr->view->size.width-2;
|
w = sPtr->view->size.width-2;
|
||||||
h = SLIDER_LENGTH;
|
h = sPtr->knobThickness;
|
||||||
} else {
|
} else {
|
||||||
w = SLIDER_LENGTH;
|
w = sPtr->knobThickness;
|
||||||
h = sPtr->view->size.height-2;
|
h = sPtr->view->size.height-2;
|
||||||
}
|
}
|
||||||
|
|
||||||
pix = XCreatePixmap(scr->display, sPtr->view->window, w, h, scr->depth);
|
pix = XCreatePixmap(scr->display, sPtr->view->window, w, h, scr->depth);
|
||||||
XFillRectangle(scr->display, pix, W_GC(scr->gray), 0, 0, w, h);
|
XFillRectangle(scr->display, pix, W_GC(scr->gray), 0, 0, w, h);
|
||||||
|
|
||||||
if (sPtr->flags.vertical) {
|
if (sPtr->knobThickness < 10) {
|
||||||
|
W_DrawRelief(scr, pix, 0, 0, w, h, WRRaised);
|
||||||
|
} else if (sPtr->flags.vertical) {
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->white), 0, 0, 0, h-3);
|
XDrawLine(scr->display, pix, W_GC(scr->white), 0, 0, 0, h-3);
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->white), 1, 0, 1, h-3);
|
XDrawLine(scr->display, pix, W_GC(scr->white), 1, 0, 1, h-3);
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w-2, 1, w-2, h/2-2);
|
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w-2, 1, w-2, h/2-2);
|
||||||
@@ -222,6 +258,7 @@ makeKnobPixmap(Slider *sPtr)
|
|||||||
XDrawLine(scr->display, pix, W_GC(scr->white), 0, 0, w-2, 0);
|
XDrawLine(scr->display, pix, W_GC(scr->white), 0, 0, w-2, 0);
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->darkGray), 1, h/2-2, w-3, h/2-2);
|
XDrawLine(scr->display, pix, W_GC(scr->darkGray), 1, h/2-2, w-3, h/2-2);
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->white), 0, h/2-1, w-3, h/2-1);
|
XDrawLine(scr->display, pix, W_GC(scr->white), 0, h/2-1, w-3, h/2-1);
|
||||||
|
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->black), w-1, 0, w-1, h-2);
|
XDrawLine(scr->display, pix, W_GC(scr->black), w-1, 0, w-1, h-2);
|
||||||
|
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->darkGray), 0, h-3, w-2, h-3);
|
XDrawLine(scr->display, pix, W_GC(scr->darkGray), 0, h-3, w-2, h-3);
|
||||||
@@ -231,9 +268,11 @@ makeKnobPixmap(Slider *sPtr)
|
|||||||
XDrawLine(scr->display, pix, W_GC(scr->white), 0, 0, w-3, 0);
|
XDrawLine(scr->display, pix, W_GC(scr->white), 0, 0, w-3, 0);
|
||||||
|
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->white), 0, 0, 0, h-2);
|
XDrawLine(scr->display, pix, W_GC(scr->white), 0, 0, 0, h-2);
|
||||||
|
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->white), 1, 0, 1, h-3);
|
XDrawLine(scr->display, pix, W_GC(scr->white), 1, 0, 1, h-3);
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w/2-2, 1, w/2-2, h-3);
|
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w/2-2, 1, w/2-2, h-3);
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->white), w/2-1, 0, w/2-1, h-3);
|
XDrawLine(scr->display, pix, W_GC(scr->white), w/2-1, 0, w/2-1, h-3);
|
||||||
|
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w-3, 0, w-3, h-2);
|
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w-3, 0, w-3, h-2);
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->black), w-2, 0, w-2, h-2);
|
XDrawLine(scr->display, pix, W_GC(scr->black), w-2, 0, w-2, h-2);
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w-1, 0, w-1, h-1);
|
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w-1, 0, w-1, h-1);
|
||||||
@@ -241,6 +280,7 @@ makeKnobPixmap(Slider *sPtr)
|
|||||||
XDrawLine(scr->display, pix, W_GC(scr->black), 1, h-1, w/2+1, h-1);
|
XDrawLine(scr->display, pix, W_GC(scr->black), 1, h-1, w/2+1, h-1);
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->darkGray), 1, h-2, w/2-2, h-2);
|
XDrawLine(scr->display, pix, W_GC(scr->darkGray), 1, h-2, w/2-2, h-2);
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w/2, h-2, w-3,h-2);
|
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w/2, h-2, w-3,h-2);
|
||||||
|
|
||||||
XDrawLine(scr->display, pix, W_GC(scr->black), 0, h-1, w-2, h-1);
|
XDrawLine(scr->display, pix, W_GC(scr->black), 0, h-1, w-2, h-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -305,20 +345,30 @@ paintSlider(Slider *sPtr)
|
|||||||
|
|
||||||
buffer = XCreatePixmap(scr->display, sPtr->view->window,
|
buffer = XCreatePixmap(scr->display, sPtr->view->window,
|
||||||
size.width, size.height, scr->depth);
|
size.width, size.height, scr->depth);
|
||||||
XFillRectangle(scr->display, buffer, lgc, 0, 0, size.width, size.height);
|
|
||||||
|
if (sPtr->backPixmap) {
|
||||||
|
WMSize size = WMGetPixmapSize(sPtr->backPixmap);
|
||||||
|
|
||||||
|
XCopyArea(scr->display, WMGetPixmapXID(sPtr->backPixmap),
|
||||||
|
buffer, scr->copyGC, 0, 0, size.width, size.height, 1, 1);
|
||||||
|
} else {
|
||||||
|
XFillRectangle(scr->display, buffer, lgc, 0, 0, size.width,
|
||||||
|
size.height);
|
||||||
XFillRectangle(scr->display, buffer, scr->stippleGC, 0, 0, size.width,
|
XFillRectangle(scr->display, buffer, scr->stippleGC, 0, 0, size.width,
|
||||||
size.height);
|
size.height);
|
||||||
|
}
|
||||||
|
|
||||||
if (sPtr->flags.vertical) {
|
if (sPtr->flags.vertical) {
|
||||||
pos = (size.height-2-SLIDER_LENGTH)*(POSV-MINV)/(MAXV-MINV)+1;
|
pos = (size.height-2-sPtr->knobThickness)*(POSV-MINV)/(MAXV-MINV)+1;
|
||||||
/* draw knob */
|
/* draw knob */
|
||||||
XCopyArea(scr->display, sPtr->knobPixmap, buffer,
|
XCopyArea(scr->display, sPtr->knobPixmap, buffer,
|
||||||
scr->copyGC, 0, 0, size.width-2, SLIDER_LENGTH, 1, pos);
|
scr->copyGC, 0, 0, size.width-2, sPtr->knobThickness,
|
||||||
|
1, pos);
|
||||||
} else {
|
} else {
|
||||||
pos = (size.width-2-SLIDER_LENGTH)*(POSV-MINV)/(MAXV-MINV)+1;
|
pos = (size.width-2-sPtr->knobThickness)*(POSV-MINV)/(MAXV-MINV)+1;
|
||||||
/* draw knob */
|
/* draw knob */
|
||||||
XCopyArea(scr->display, sPtr->knobPixmap, buffer,
|
XCopyArea(scr->display, sPtr->knobPixmap, buffer,
|
||||||
scr->copyGC, 0, 0, SLIDER_LENGTH, size.height, pos, 1);
|
scr->copyGC, 0, 0, sPtr->knobThickness, size.height, pos, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
XDrawLine(scr->display, buffer, bgc, 0, 0, 0, size.height-1);
|
XDrawLine(scr->display, buffer, bgc, 0, 0, 0, size.height-1);
|
||||||
@@ -373,18 +423,18 @@ getSliderPart(Slider *sPtr, int x, int y)
|
|||||||
|
|
||||||
if (sPtr->flags.vertical) {
|
if (sPtr->flags.vertical) {
|
||||||
p = y;
|
p = y;
|
||||||
pos = (size.height-2-SLIDER_LENGTH)*(POSV-MINV)/(MAXV-MINV);
|
pos = (size.height-2-sPtr->knobThickness)*(POSV-MINV)/(MAXV-MINV);
|
||||||
if (p < pos)
|
if (p < pos)
|
||||||
return INCR_PART;
|
return INCR_PART;
|
||||||
if (p > pos + SLIDER_LENGTH)
|
if (p > pos + sPtr->knobThickness)
|
||||||
return DECR_PART;
|
return DECR_PART;
|
||||||
return KNOB_PART;
|
return KNOB_PART;
|
||||||
} else {
|
} else {
|
||||||
p = x;
|
p = x;
|
||||||
pos = (size.width-2-SLIDER_LENGTH)*(POSV-MINV)/(MAXV-MINV);
|
pos = (size.width-2-sPtr->knobThickness)*(POSV-MINV)/(MAXV-MINV);
|
||||||
if (p < pos)
|
if (p < pos)
|
||||||
return DECR_PART;
|
return DECR_PART;
|
||||||
if (p > pos + SLIDER_LENGTH)
|
if (p > pos + sPtr->knobThickness)
|
||||||
return INCR_PART;
|
return INCR_PART;
|
||||||
return KNOB_PART;
|
return KNOB_PART;
|
||||||
}
|
}
|
||||||
@@ -398,9 +448,11 @@ valueForMousePoint(Slider *sPtr, int x, int y)
|
|||||||
int f;
|
int f;
|
||||||
|
|
||||||
if (sPtr->flags.vertical) {
|
if (sPtr->flags.vertical) {
|
||||||
f = (y-SLIDER_LENGTH/2)*(MAXV-MINV)/((int)size.height-2-SLIDER_LENGTH);
|
f = (y-sPtr->knobThickness/2)*(MAXV-MINV)
|
||||||
|
/ ((int)size.height-2-sPtr->knobThickness);
|
||||||
} else {
|
} else {
|
||||||
f = (x-SLIDER_LENGTH/2)*(MAXV-MINV)/((int)size.width-2-SLIDER_LENGTH);
|
f = (x-sPtr->knobThickness/2)*(MAXV-MINV)
|
||||||
|
/ ((int)size.width-2-sPtr->knobThickness);
|
||||||
}
|
}
|
||||||
|
|
||||||
f += sPtr->minValue;
|
f += sPtr->minValue;
|
||||||
@@ -408,6 +460,7 @@ valueForMousePoint(Slider *sPtr, int x, int y)
|
|||||||
f = sPtr->minValue;
|
f = sPtr->minValue;
|
||||||
else if (f > sPtr->maxValue)
|
else if (f > sPtr->maxValue)
|
||||||
f = sPtr->maxValue;
|
f = sPtr->maxValue;
|
||||||
|
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -477,6 +530,9 @@ destroySlider(Slider *sPtr)
|
|||||||
if (sPtr->knobPixmap)
|
if (sPtr->knobPixmap)
|
||||||
XFreePixmap(sPtr->view->screen->display, sPtr->knobPixmap);
|
XFreePixmap(sPtr->view->screen->display, sPtr->knobPixmap);
|
||||||
|
|
||||||
|
if (sPtr->backPixmap)
|
||||||
|
WMReleasePixmap(sPtr->backPixmap);
|
||||||
|
|
||||||
free(sPtr);
|
free(sPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -273,41 +273,18 @@ testSlider(WMScreen *scr)
|
|||||||
s = WMCreateSlider(win);
|
s = WMCreateSlider(win);
|
||||||
WMResizeWidget(s, 16, 100);
|
WMResizeWidget(s, 16, 100);
|
||||||
WMMoveWidget(s, 100, 100);
|
WMMoveWidget(s, 100, 100);
|
||||||
|
WMSetSliderKnobThickness(s, 8);
|
||||||
|
|
||||||
s = WMCreateSlider(win);
|
s = WMCreateSlider(win);
|
||||||
WMResizeWidget(s, 100, 16);
|
WMResizeWidget(s, 100, 16);
|
||||||
WMMoveWidget(s, 100, 10);
|
WMMoveWidget(s, 100, 10);
|
||||||
|
WMSetSliderKnobThickness(s, 8);
|
||||||
|
|
||||||
WMRealizeWidget(win);
|
WMRealizeWidget(win);
|
||||||
WMMapSubwidgets(win);
|
WMMapSubwidgets(win);
|
||||||
WMMapWidget(win);
|
WMMapWidget(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
void
|
|
||||||
testText(WMScreen *scr)
|
|
||||||
{
|
|
||||||
WMWindow *win;
|
|
||||||
WMSimpleText *text;
|
|
||||||
|
|
||||||
windowCount++;
|
|
||||||
|
|
||||||
win = WMCreateWindow(scr, "testText");
|
|
||||||
WMResizeWidget(win, 300, 300);
|
|
||||||
WMSetWindowTitle(win, "Text");
|
|
||||||
|
|
||||||
WMSetWindowCloseAction(win, closeAction, NULL);
|
|
||||||
|
|
||||||
text = WMCreateSimpleText(win);
|
|
||||||
WMResizeWidget(text, 280, 280);
|
|
||||||
WMMoveWidget(text, 10, 10);
|
|
||||||
|
|
||||||
WMRealizeWidget(win);
|
|
||||||
WMMapSubwidgets(win);
|
|
||||||
WMMapWidget(win);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
void
|
||||||
testTextField(WMScreen *scr)
|
testTextField(WMScreen *scr)
|
||||||
{
|
{
|
||||||
@@ -424,13 +401,15 @@ int main(int argc, char **argv)
|
|||||||
*
|
*
|
||||||
* Put the testSomething() function you want to test here.
|
* Put the testSomething() function you want to test here.
|
||||||
*/
|
*/
|
||||||
#if 1
|
#if 0
|
||||||
testOpenFilePanel(scr);
|
testOpenFilePanel(scr);
|
||||||
testFontPanel(scr);
|
testFontPanel(scr);
|
||||||
testList(scr);
|
testList(scr);
|
||||||
testGradientButtons(scr);
|
testGradientButtons(scr);
|
||||||
testScrollView(scr);
|
testScrollView(scr);
|
||||||
|
#endif
|
||||||
testColorWell(scr);
|
testColorWell(scr);
|
||||||
|
#if 1
|
||||||
testSlider(scr);
|
testSlider(scr);
|
||||||
testTextField(scr);
|
testTextField(scr);
|
||||||
testPullDown(scr);
|
testPullDown(scr);
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ typedef struct W_TextField {
|
|||||||
short usableWidth;
|
short usableWidth;
|
||||||
short offsetWidth; /* offset of text from border */
|
short offsetWidth; /* offset of text from border */
|
||||||
|
|
||||||
|
WMRange selection;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
WMHandlerID timerID; /* for cursor blinking */
|
WMHandlerID timerID; /* for cursor blinking */
|
||||||
#endif
|
#endif
|
||||||
@@ -191,7 +193,7 @@ WMCreateTextField(WMWidget *parent)
|
|||||||
WMSetTextFieldBordered(tPtr, DEFAULT_BORDERED);
|
WMSetTextFieldBordered(tPtr, DEFAULT_BORDERED);
|
||||||
tPtr->flags.alignment = DEFAULT_ALIGNMENT;
|
tPtr->flags.alignment = DEFAULT_ALIGNMENT;
|
||||||
tPtr->offsetWidth = (tPtr->view->size.height
|
tPtr->offsetWidth = (tPtr->view->size.height
|
||||||
- tPtr->view->screen->normalFont->height)/2;
|
- WMFontHeight(tPtr->view->screen->normalFont))/2;
|
||||||
|
|
||||||
WMCreateEventHandler(tPtr->view, EnterWindowMask|LeaveWindowMask
|
WMCreateEventHandler(tPtr->view, EnterWindowMask|LeaveWindowMask
|
||||||
|ButtonPressMask|KeyPressMask|Button1MotionMask,
|
|ButtonPressMask|KeyPressMask|Button1MotionMask,
|
||||||
@@ -307,8 +309,12 @@ WMSetTextFieldText(WMTextField *tPtr, char *text)
|
|||||||
}
|
}
|
||||||
strcpy(tPtr->text, text);
|
strcpy(tPtr->text, text);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
if (tPtr->textLen < tPtr->cursorPosition)
|
if (tPtr->textLen < tPtr->cursorPosition)
|
||||||
tPtr->cursorPosition = tPtr->textLen;
|
tPtr->cursorPosition = tPtr->textLen;
|
||||||
|
*/
|
||||||
|
tPtr->cursorPosition = 0;
|
||||||
|
tPtr->viewPosition = 0;
|
||||||
|
|
||||||
if (tPtr->view->flags.realized)
|
if (tPtr->view->flags.realized)
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
@@ -370,7 +376,7 @@ resizeTextField(WMTextField *tPtr, unsigned int width, unsigned int height)
|
|||||||
W_ResizeView(tPtr->view, width, height);
|
W_ResizeView(tPtr->view, width, height);
|
||||||
|
|
||||||
tPtr->offsetWidth = (tPtr->view->size.height
|
tPtr->offsetWidth = (tPtr->view->size.height
|
||||||
- tPtr->view->screen->normalFont->height)/2;
|
- WMFontHeight(tPtr->view->screen->normalFont))/2;
|
||||||
|
|
||||||
tPtr->usableWidth = tPtr->view->size.width - 2*tPtr->offsetWidth;
|
tPtr->usableWidth = tPtr->view->size.width - 2*tPtr->offsetWidth;
|
||||||
}
|
}
|
||||||
@@ -477,7 +483,7 @@ paintTextField(TextField *tPtr)
|
|||||||
&(tPtr->text[tPtr->viewPosition]),
|
&(tPtr->text[tPtr->viewPosition]),
|
||||||
tPtr->textLen - tPtr->viewPosition);
|
tPtr->textLen - tPtr->viewPosition);
|
||||||
|
|
||||||
th = screen->normalFont->height;
|
th = WMFontHeight(screen->normalFont);
|
||||||
|
|
||||||
ty = tPtr->offsetWidth;
|
ty = tPtr->offsetWidth;
|
||||||
switch (tPtr->flags.alignment) {
|
switch (tPtr->flags.alignment) {
|
||||||
|
|||||||
@@ -144,8 +144,9 @@ createView(W_Screen *screen, W_View *parent)
|
|||||||
view->attribFlags = CWEventMask|CWBitGravity;
|
view->attribFlags = CWEventMask|CWBitGravity;
|
||||||
view->attribs = defAtts;
|
view->attribs = defAtts;
|
||||||
|
|
||||||
view->attribFlags |= CWBackPixel|CWColormap;
|
view->attribFlags |= CWBackPixel|CWColormap|CWBorderPixel;
|
||||||
view->attribs.background_pixel = W_PIXEL(screen->gray);
|
view->attribs.background_pixel = W_PIXEL(screen->gray);
|
||||||
|
view->attribs.border_pixel = W_PIXEL(screen->black);
|
||||||
view->attribs.colormap = screen->colormap;
|
view->attribs.colormap = screen->colormap;
|
||||||
|
|
||||||
adoptChildView(parent, view);
|
adoptChildView(parent, view);
|
||||||
|
|||||||
236
WPrefs.app/Appearance.c
Normal file
236
WPrefs.app/Appearance.c
Normal file
@@ -0,0 +1,236 @@
|
|||||||
|
/* TextureAndColor.c- color/texture for titlebar etc.
|
||||||
|
*
|
||||||
|
* WPrefs - Window Maker Preferences Program
|
||||||
|
*
|
||||||
|
* Copyright (c) 1999 Alfredo K. Kojima
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||||
|
* USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "WPrefs.h"
|
||||||
|
|
||||||
|
#include "TexturePanel.h"
|
||||||
|
|
||||||
|
typedef struct _Panel {
|
||||||
|
WMFrame *frame;
|
||||||
|
char *sectionName;
|
||||||
|
|
||||||
|
CallbackRec callbacks;
|
||||||
|
|
||||||
|
WMWindow *win;
|
||||||
|
|
||||||
|
WMLabel *prevL;
|
||||||
|
|
||||||
|
WMPopUpButton *secP;
|
||||||
|
|
||||||
|
/* texture list */
|
||||||
|
WMLabel *texL;
|
||||||
|
WMList *texLs;
|
||||||
|
|
||||||
|
WMPopUpButton *cmdP;
|
||||||
|
WMTextField *texT;
|
||||||
|
|
||||||
|
WMButton *editB;
|
||||||
|
|
||||||
|
/* for preview shit */
|
||||||
|
Pixmap preview;
|
||||||
|
Pixmap ftitle;
|
||||||
|
Pixmap utitle;
|
||||||
|
Pixmap otitle;
|
||||||
|
Pixmap icon;
|
||||||
|
Pixmap back;
|
||||||
|
Pixmap mtitle;
|
||||||
|
Pixmap mitem;
|
||||||
|
} _Panel;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define ICON_FILE "appearance"
|
||||||
|
|
||||||
|
|
||||||
|
#define FTITLE (1<<0)
|
||||||
|
#define UTITLE (1<<1)
|
||||||
|
#define OTITLE (1<<2)
|
||||||
|
#define ICON (1<<3)
|
||||||
|
#define BACK (1<<4)
|
||||||
|
#define MTITLE (1<<5)
|
||||||
|
#define MITEM (1<<6)
|
||||||
|
#define EVERYTHING 0xff
|
||||||
|
|
||||||
|
|
||||||
|
static Pixmap
|
||||||
|
renderTexture(_Panel *panel, char *texture, int width, int height,
|
||||||
|
Bool bordered)
|
||||||
|
{
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
updatePreviewBox(_Panel *panel, int elements)
|
||||||
|
{
|
||||||
|
WMScreen *scr = WMWidgetScreen(panel->win);
|
||||||
|
Display *dpy = WMScreenDisplay(scr);
|
||||||
|
/* RContext *rc = WMScreenRContext(scr);*/
|
||||||
|
int refresh = 0;
|
||||||
|
char *tmp;
|
||||||
|
|
||||||
|
if (!panel->preview) {
|
||||||
|
panel->preview = XCreatePixmap(dpy, WMWidgetXID(panel->win),
|
||||||
|
220-4, 185-4, WMScreenDepth(scr));
|
||||||
|
|
||||||
|
refresh = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (elements & FTITLE) {
|
||||||
|
if (panel->ftitle)
|
||||||
|
XFreePixmap(dpy, panel->ftitle);
|
||||||
|
|
||||||
|
panel->ftitle = renderTexture(panel, tmp, 180, 20, True);
|
||||||
|
free(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* have to repaint everything to make things simple, eliminating
|
||||||
|
* clipping stuff */
|
||||||
|
if (refresh) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (refresh<0) {
|
||||||
|
WMPixmap *pix;
|
||||||
|
pix = WMCreatePixmapFromXPixmaps(scr, panel->preview, None,
|
||||||
|
220-4, 185-4, WMScreenDepth(scr));
|
||||||
|
|
||||||
|
WMSetLabelImage(panel->prevL, pix);
|
||||||
|
WMReleasePixmap(pix);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static char*
|
||||||
|
getStrArrayForKey(char *key)
|
||||||
|
{
|
||||||
|
proplist_t v;
|
||||||
|
|
||||||
|
v = GetObjectForKey(key);
|
||||||
|
if (!v)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return PLGetDescription(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
createPanel(Panel *p)
|
||||||
|
{
|
||||||
|
_Panel *panel = (_Panel*)p;
|
||||||
|
WMColor *color;
|
||||||
|
WMFont *boldFont;
|
||||||
|
WMScreen *scr = WMWidgetScreen(panel->win);
|
||||||
|
|
||||||
|
panel->frame = WMCreateFrame(panel->win);
|
||||||
|
WMResizeWidget(panel->frame, FRAME_WIDTH, FRAME_HEIGHT);
|
||||||
|
WMMoveWidget(panel->frame, FRAME_LEFT, FRAME_TOP);
|
||||||
|
|
||||||
|
/* preview box */
|
||||||
|
panel->prevL = WMCreateLabel(panel->frame);
|
||||||
|
WMResizeWidget(panel->prevL, 260, 190);
|
||||||
|
WMMoveWidget(panel->prevL, 10, 10);
|
||||||
|
WMSetLabelRelief(panel->prevL, WRSunken);
|
||||||
|
|
||||||
|
panel->secP = WMCreatePopUpButton(panel->frame);
|
||||||
|
WMResizeWidget(panel->secP, 242, 20);
|
||||||
|
WMMoveWidget(panel->secP, 10, 207);
|
||||||
|
// WMSetPopUpButtonAction(panel->secP, changePage, panel);
|
||||||
|
|
||||||
|
|
||||||
|
/* texture list */
|
||||||
|
boldFont = WMBoldSystemFontOfSize(scr, 12);
|
||||||
|
|
||||||
|
panel->texL = WMCreateLabel(panel->frame);
|
||||||
|
WMResizeWidget(panel->texL, 225, 18);
|
||||||
|
WMMoveWidget(panel->texL, 285, 10);
|
||||||
|
WMSetLabelFont(panel->texL, boldFont);
|
||||||
|
WMSetLabelText(panel->texL, _("Textures"));
|
||||||
|
WMSetLabelRelief(panel->texL, WRSunken);
|
||||||
|
WMSetLabelTextAlignment(panel->texL, WACenter);
|
||||||
|
color = WMDarkGrayColor(scr);
|
||||||
|
WMSetWidgetBackgroundColor(panel->texL, color);
|
||||||
|
WMReleaseColor(color);
|
||||||
|
color = WMWhiteColor(scr);
|
||||||
|
WMSetLabelTextColor(panel->texL, color);
|
||||||
|
WMReleaseColor(color);
|
||||||
|
|
||||||
|
WMReleaseFont(boldFont);
|
||||||
|
|
||||||
|
|
||||||
|
panel->texLs = WMCreateList(panel->frame);
|
||||||
|
WMResizeWidget(panel->texLs, 225, 144);
|
||||||
|
WMMoveWidget(panel->texLs, 285, 30);
|
||||||
|
|
||||||
|
panel->cmdP = WMCreatePopUpButton(panel->frame);
|
||||||
|
WMResizeWidget(panel->cmdP, 225, 20);
|
||||||
|
WMMoveWidget(panel->cmdP, 285, 180);
|
||||||
|
WMSetPopUpButtonPullsDown(panel->cmdP, True);
|
||||||
|
WMSetPopUpButtonText(panel->cmdP, _("Texture Commands"));
|
||||||
|
WMAddPopUpButtonItem(panel->cmdP, _("Create New"));
|
||||||
|
WMAddPopUpButtonItem(panel->cmdP, _("Add From Text Field"));
|
||||||
|
WMAddPopUpButtonItem(panel->cmdP, _("Remove Selected"));
|
||||||
|
WMAddPopUpButtonItem(panel->cmdP, _("Extract From File"));
|
||||||
|
|
||||||
|
panel->editB = WMCreateCommandButton(panel->frame);
|
||||||
|
WMResizeWidget(panel->editB, 64, 20);
|
||||||
|
WMMoveWidget(panel->editB, 260, 207);
|
||||||
|
WMSetButtonText(panel->editB, _("Browse..."));
|
||||||
|
|
||||||
|
panel->texT = WMCreateTextField(panel->frame);
|
||||||
|
WMResizeWidget(panel->texT, 176, 20);
|
||||||
|
WMMoveWidget(panel->texT, 330, 207);
|
||||||
|
|
||||||
|
/**/
|
||||||
|
|
||||||
|
WMRealizeWidget(panel->frame);
|
||||||
|
WMMapSubwidgets(panel->frame);
|
||||||
|
|
||||||
|
WMSetPopUpButtonSelectedItem(panel->secP, 0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Panel*
|
||||||
|
InitAppearance(WMScreen *scr, WMWindow *win)
|
||||||
|
{
|
||||||
|
_Panel *panel;
|
||||||
|
|
||||||
|
panel = wmalloc(sizeof(_Panel));
|
||||||
|
memset(panel, 0, sizeof(_Panel));
|
||||||
|
|
||||||
|
panel->sectionName = _("Appearance Preferences");
|
||||||
|
|
||||||
|
panel->win = win;
|
||||||
|
|
||||||
|
panel->callbacks.createWidgets = createPanel;
|
||||||
|
|
||||||
|
AddSection(panel, ICON_FILE);
|
||||||
|
|
||||||
|
return panel;
|
||||||
|
}
|
||||||
@@ -355,7 +355,7 @@ createPanel(Panel *p)
|
|||||||
panel->ignB = WMCreateSwitchButton(panel->optF);
|
panel->ignB = WMCreateSwitchButton(panel->optF);
|
||||||
WMResizeWidget(panel->ignB, 210, 50);
|
WMResizeWidget(panel->ignB, 210, 50);
|
||||||
WMMoveWidget(panel->ignB, 15, 10);
|
WMMoveWidget(panel->ignB, 15, 10);
|
||||||
WMSetButtonText(panel->ignB, _("Do not let aplications receive the "\
|
WMSetButtonText(panel->ignB, _("Do not let applications receive the "\
|
||||||
"click used to focus windows."));
|
"click used to focus windows."));
|
||||||
|
|
||||||
panel->newB = WMCreateSwitchButton(panel->optF);
|
panel->newB = WMCreateSwitchButton(panel->optF);
|
||||||
|
|||||||
@@ -46,6 +46,10 @@ typedef struct _Panel {
|
|||||||
|
|
||||||
WMLabel *instructionsL;
|
WMLabel *instructionsL;
|
||||||
|
|
||||||
|
WMColor *white;
|
||||||
|
WMColor *black;
|
||||||
|
WMFont *font;
|
||||||
|
|
||||||
/**/
|
/**/
|
||||||
char capturing;
|
char capturing;
|
||||||
char **shortcuts;
|
char **shortcuts;
|
||||||
@@ -71,6 +75,7 @@ static char *keyOptions[] = {
|
|||||||
"LowerKey",
|
"LowerKey",
|
||||||
"RaiseLowerKey",
|
"RaiseLowerKey",
|
||||||
"ShadeKey",
|
"ShadeKey",
|
||||||
|
"MoveResizeKey",
|
||||||
"SelectKey",
|
"SelectKey",
|
||||||
"FocusNextKey",
|
"FocusNextKey",
|
||||||
"FocusPrevKey",
|
"FocusPrevKey",
|
||||||
@@ -92,6 +97,14 @@ static char *keyOptions[] = {
|
|||||||
"WindowShortcut2Key",
|
"WindowShortcut2Key",
|
||||||
"WindowShortcut3Key",
|
"WindowShortcut3Key",
|
||||||
"WindowShortcut4Key",
|
"WindowShortcut4Key",
|
||||||
|
#ifdef EXTEND_WINDOWSHORTCUT
|
||||||
|
"WindowShortcut5Key",
|
||||||
|
"WindowShortcut6Key",
|
||||||
|
"WindowShortcut7Key",
|
||||||
|
"WindowShortcut8Key",
|
||||||
|
"WindowShortcut9Key",
|
||||||
|
"WindowShortcut10Key",
|
||||||
|
#endif
|
||||||
"ClipRaiseKey",
|
"ClipRaiseKey",
|
||||||
"ClipLowerKey",
|
"ClipLowerKey",
|
||||||
#ifndef XKB_MODELOCK
|
#ifndef XKB_MODELOCK
|
||||||
@@ -180,6 +193,8 @@ captureClick(WMWidget *w, void *data)
|
|||||||
if (panel->shortcuts[row])
|
if (panel->shortcuts[row])
|
||||||
free(panel->shortcuts[row]);
|
free(panel->shortcuts[row]);
|
||||||
panel->shortcuts[row] = shortcut;
|
panel->shortcuts[row] = shortcut;
|
||||||
|
|
||||||
|
WMRedisplayWidget(panel->actLs);
|
||||||
} else {
|
} else {
|
||||||
free(shortcut);
|
free(shortcut);
|
||||||
}
|
}
|
||||||
@@ -205,6 +220,7 @@ clearShortcut(WMWidget *w, void *data)
|
|||||||
if (panel->shortcuts[row])
|
if (panel->shortcuts[row])
|
||||||
free(panel->shortcuts[row]);
|
free(panel->shortcuts[row]);
|
||||||
panel->shortcuts[row]=NULL;
|
panel->shortcuts[row]=NULL;
|
||||||
|
WMRedisplayWidget(panel->actLs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,6 +242,7 @@ typedKeys(void *observerData, WMNotification *notification)
|
|||||||
free(panel->shortcuts[row]);
|
free(panel->shortcuts[row]);
|
||||||
panel->shortcuts[row] = NULL;
|
panel->shortcuts[row] = NULL;
|
||||||
}
|
}
|
||||||
|
WMRedisplayWidget(panel->actLs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -281,6 +298,40 @@ showData(_Panel *panel)
|
|||||||
panel->shortcuts[i] = NULL;
|
panel->shortcuts[i] = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
WMRedisplayWidget(panel->actLs);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
paintItem(WMList *lPtr, int index, Drawable d, char *text, int state,
|
||||||
|
WMRect *rect)
|
||||||
|
{
|
||||||
|
int width, height, x, y;
|
||||||
|
_Panel *panel = (_Panel*)WMGetHangedData(lPtr);
|
||||||
|
WMScreen *scr = WMWidgetScreen(lPtr);
|
||||||
|
Display *dpy = WMScreenDisplay(scr);
|
||||||
|
|
||||||
|
width = rect->size.width;
|
||||||
|
height = rect->size.height;
|
||||||
|
x = rect->pos.x;
|
||||||
|
y = rect->pos.y;
|
||||||
|
|
||||||
|
if (state & WLDSSelected)
|
||||||
|
XFillRectangle(dpy, d, WMColorGC(panel->white), x, y, width,
|
||||||
|
height);
|
||||||
|
else
|
||||||
|
XClearArea(dpy, d, x, y, width, height, False);
|
||||||
|
|
||||||
|
if (panel->shortcuts[index]) {
|
||||||
|
WMPixmap *pix = WMGetSystemPixmap(scr, WSICheckMark);
|
||||||
|
WMSize size = WMGetPixmapSize(pix);
|
||||||
|
|
||||||
|
WMDrawPixmap(pix, d, x+(20-size.width)/2, (height-size.height)/2+y);
|
||||||
|
WMReleasePixmap(pix);
|
||||||
|
}
|
||||||
|
|
||||||
|
WMDrawString(scr, d, WMColorGC(panel->black), panel->font, x+20, y,
|
||||||
|
text, strlen(text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -318,6 +369,8 @@ createPanel(Panel *p)
|
|||||||
panel->actLs = WMCreateList(panel->frame);
|
panel->actLs = WMCreateList(panel->frame);
|
||||||
WMResizeWidget(panel->actLs, 280, 190);
|
WMResizeWidget(panel->actLs, 280, 190);
|
||||||
WMMoveWidget(panel->actLs, 20, 32);
|
WMMoveWidget(panel->actLs, 20, 32);
|
||||||
|
WMSetListUserDrawProc(panel->actLs, paintItem);
|
||||||
|
WMHangData(panel->actLs, panel);
|
||||||
|
|
||||||
WMAddListItem(panel->actLs, _("Open applications menu"));
|
WMAddListItem(panel->actLs, _("Open applications menu"));
|
||||||
WMAddListItem(panel->actLs, _("Open window list menu"));
|
WMAddListItem(panel->actLs, _("Open window list menu"));
|
||||||
@@ -332,6 +385,7 @@ createPanel(Panel *p)
|
|||||||
WMAddListItem(panel->actLs, _("Raise/Lower window under mouse pointer"));
|
WMAddListItem(panel->actLs, _("Raise/Lower window under mouse pointer"));
|
||||||
WMAddListItem(panel->actLs, _("Shade active window"));
|
WMAddListItem(panel->actLs, _("Shade active window"));
|
||||||
WMAddListItem(panel->actLs, _("Select active window"));
|
WMAddListItem(panel->actLs, _("Select active window"));
|
||||||
|
WMAddListItem(panel->actLs, _("Move/Resize active window"));
|
||||||
WMAddListItem(panel->actLs, _("Focus next window"));
|
WMAddListItem(panel->actLs, _("Focus next window"));
|
||||||
WMAddListItem(panel->actLs, _("Focus previous window"));
|
WMAddListItem(panel->actLs, _("Focus previous window"));
|
||||||
WMAddListItem(panel->actLs, _("Switch to next workspace"));
|
WMAddListItem(panel->actLs, _("Switch to next workspace"));
|
||||||
@@ -449,6 +503,10 @@ InitKeyboardShortcuts(WMScreen *scr, WMWindow *win)
|
|||||||
panel->callbacks.createWidgets = createPanel;
|
panel->callbacks.createWidgets = createPanel;
|
||||||
panel->callbacks.updateDomain = storeData;
|
panel->callbacks.updateDomain = storeData;
|
||||||
|
|
||||||
|
panel->white = WMWhiteColor(scr);
|
||||||
|
panel->black = WMBlackColor(scr);
|
||||||
|
panel->font = WMSystemFontOfSize(scr, 12);
|
||||||
|
|
||||||
AddSection(panel, ICON_FILE);
|
AddSection(panel, ICON_FILE);
|
||||||
|
|
||||||
return panel;
|
return panel;
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ WPrefs_SOURCES = \
|
|||||||
main.c \
|
main.c \
|
||||||
WPrefs.c \
|
WPrefs.c \
|
||||||
WPrefs.h \
|
WPrefs.h \
|
||||||
|
Appearance.c \
|
||||||
Configurations.c \
|
Configurations.c \
|
||||||
Expert.c \
|
Expert.c \
|
||||||
Focus.c \
|
Focus.c \
|
||||||
@@ -33,6 +34,7 @@ WPrefs_SOURCES = \
|
|||||||
TextureAndColor.c \
|
TextureAndColor.c \
|
||||||
TexturePanel.c \
|
TexturePanel.c \
|
||||||
TexturePanel.h \
|
TexturePanel.h \
|
||||||
|
Themes.c \
|
||||||
WindowHandling.c \
|
WindowHandling.c \
|
||||||
Workspace.c \
|
Workspace.c \
|
||||||
double.c \
|
double.c \
|
||||||
@@ -56,8 +58,8 @@ WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a
|
|||||||
|
|
||||||
WPrefs_LDADD = \
|
WPrefs_LDADD = \
|
||||||
$(top_builddir)/WINGs/libWINGs.a\
|
$(top_builddir)/WINGs/libWINGs.a\
|
||||||
$(top_builddir)/wrlib/libwraster.a \
|
$(top_builddir)/wrlib/libwraster.la \
|
||||||
$(top_builddir)/libPropList/libPropList.a \
|
$(top_builddir)/libPropList/libPropList.la \
|
||||||
@GFXLFLAGS@ \
|
@GFXLFLAGS@ \
|
||||||
@XLFLAGS@ \
|
@XLFLAGS@ \
|
||||||
@GFXLIBS@ \
|
@GFXLIBS@ \
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -110,6 +113,7 @@ WPrefs_SOURCES = \
|
|||||||
main.c \
|
main.c \
|
||||||
WPrefs.c \
|
WPrefs.c \
|
||||||
WPrefs.h \
|
WPrefs.h \
|
||||||
|
Appearance.c \
|
||||||
Configurations.c \
|
Configurations.c \
|
||||||
Expert.c \
|
Expert.c \
|
||||||
Focus.c \
|
Focus.c \
|
||||||
@@ -125,6 +129,7 @@ WPrefs_SOURCES = \
|
|||||||
TextureAndColor.c \
|
TextureAndColor.c \
|
||||||
TexturePanel.c \
|
TexturePanel.c \
|
||||||
TexturePanel.h \
|
TexturePanel.h \
|
||||||
|
Themes.c \
|
||||||
WindowHandling.c \
|
WindowHandling.c \
|
||||||
Workspace.c \
|
Workspace.c \
|
||||||
double.c \
|
double.c \
|
||||||
@@ -147,8 +152,8 @@ WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a
|
|||||||
|
|
||||||
WPrefs_LDADD = \
|
WPrefs_LDADD = \
|
||||||
$(top_builddir)/WINGs/libWINGs.a\
|
$(top_builddir)/WINGs/libWINGs.a\
|
||||||
$(top_builddir)/wrlib/libwraster.a \
|
$(top_builddir)/wrlib/libwraster.la \
|
||||||
$(top_builddir)/libPropList/libPropList.a \
|
$(top_builddir)/libPropList/libPropList.la \
|
||||||
@GFXLFLAGS@ \
|
@GFXLFLAGS@ \
|
||||||
@XLFLAGS@ \
|
@XLFLAGS@ \
|
||||||
@GFXLIBS@ \
|
@GFXLIBS@ \
|
||||||
@@ -168,15 +173,16 @@ LIBS = @LIBS@
|
|||||||
X_CFLAGS = @X_CFLAGS@
|
X_CFLAGS = @X_CFLAGS@
|
||||||
X_LIBS = @X_LIBS@
|
X_LIBS = @X_LIBS@
|
||||||
X_PRE_LIBS = @X_PRE_LIBS@
|
X_PRE_LIBS = @X_PRE_LIBS@
|
||||||
WPrefs_OBJECTS = main.o WPrefs.o Configurations.o Expert.o Focus.o \
|
WPrefs_OBJECTS = main.o WPrefs.o Appearance.o Configurations.o Expert.o \
|
||||||
Icons.o KeyboardSettings.o KeyboardShortcuts.o Menu.o MenuPreferences.o \
|
Focus.o Icons.o KeyboardSettings.o KeyboardShortcuts.o Menu.o \
|
||||||
MouseSettings.o Paths.o Preferences.o Text.o TextureAndColor.o \
|
MenuPreferences.o MouseSettings.o Paths.o Preferences.o Text.o \
|
||||||
TexturePanel.o WindowHandling.o Workspace.o double.o MenuGuru.o \
|
TextureAndColor.o TexturePanel.o Themes.o WindowHandling.o Workspace.o \
|
||||||
xmodifier.o
|
double.o MenuGuru.o xmodifier.o
|
||||||
WPrefs_LDFLAGS =
|
WPrefs_LDFLAGS =
|
||||||
CFLAGS = @CFLAGS@
|
CFLAGS = @CFLAGS@
|
||||||
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
|
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
|
||||||
LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
|
||||||
|
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
||||||
DATA = $(wpdata_DATA)
|
DATA = $(wpdata_DATA)
|
||||||
|
|
||||||
DIST_COMMON = README Makefile.am Makefile.in
|
DIST_COMMON = README Makefile.am Makefile.in
|
||||||
@@ -192,7 +198,7 @@ OBJECTS = $(WPrefs_OBJECTS)
|
|||||||
all: all-recursive all-am
|
all: all-recursive all-am
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .S .c .o .s
|
.SUFFIXES: .S .c .lo .o .s
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --gnu WPrefs.app/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --gnu WPrefs.app/Makefile
|
||||||
|
|
||||||
@@ -215,8 +221,8 @@ install-wpexecbinPROGRAMS: $(wpexecbin_PROGRAMS)
|
|||||||
$(mkinstalldirs) $(DESTDIR)$(wpexecbindir)
|
$(mkinstalldirs) $(DESTDIR)$(wpexecbindir)
|
||||||
@list='$(wpexecbin_PROGRAMS)'; for p in $$list; do \
|
@list='$(wpexecbin_PROGRAMS)'; for p in $$list; do \
|
||||||
if test -f $$p; then \
|
if test -f $$p; then \
|
||||||
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(wpexecbindir)/`echo $$p|sed '$(transform)'`"; \
|
echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(wpexecbindir)/`echo $$p|sed '$(transform)'`"; \
|
||||||
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(wpexecbindir)/`echo $$p|sed '$(transform)'`; \
|
$(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(wpexecbindir)/`echo $$p|sed '$(transform)'`; \
|
||||||
else :; fi; \
|
else :; fi; \
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -245,6 +251,25 @@ distclean-compile:
|
|||||||
|
|
||||||
maintainer-clean-compile:
|
maintainer-clean-compile:
|
||||||
|
|
||||||
|
.c.lo:
|
||||||
|
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||||
|
|
||||||
|
.s.lo:
|
||||||
|
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||||
|
|
||||||
|
.S.lo:
|
||||||
|
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||||
|
|
||||||
|
mostlyclean-libtool:
|
||||||
|
-rm -f *.lo
|
||||||
|
|
||||||
|
clean-libtool:
|
||||||
|
-rm -rf .libs _libs
|
||||||
|
|
||||||
|
distclean-libtool:
|
||||||
|
|
||||||
|
maintainer-clean-libtool:
|
||||||
|
|
||||||
WPrefs: $(WPrefs_OBJECTS) $(WPrefs_DEPENDENCIES)
|
WPrefs: $(WPrefs_OBJECTS) $(WPrefs_DEPENDENCIES)
|
||||||
@rm -f WPrefs
|
@rm -f WPrefs
|
||||||
$(LINK) $(WPrefs_LDFLAGS) $(WPrefs_OBJECTS) $(WPrefs_LDADD) $(LIBS)
|
$(LINK) $(WPrefs_LDFLAGS) $(WPrefs_OBJECTS) $(WPrefs_LDADD) $(LIBS)
|
||||||
@@ -397,17 +422,20 @@ maintainer-clean-generic:
|
|||||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||||
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
|
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
|
||||||
mostlyclean-am: mostlyclean-wpexecbinPROGRAMS mostlyclean-compile \
|
mostlyclean-am: mostlyclean-wpexecbinPROGRAMS mostlyclean-compile \
|
||||||
mostlyclean-tags mostlyclean-generic
|
mostlyclean-libtool mostlyclean-tags \
|
||||||
|
mostlyclean-generic
|
||||||
|
|
||||||
clean-am: clean-wpexecbinPROGRAMS clean-compile clean-tags \
|
clean-am: clean-wpexecbinPROGRAMS clean-compile clean-libtool \
|
||||||
clean-generic mostlyclean-am
|
clean-tags clean-generic mostlyclean-am
|
||||||
|
|
||||||
distclean-am: distclean-wpexecbinPROGRAMS distclean-compile \
|
distclean-am: distclean-wpexecbinPROGRAMS distclean-compile \
|
||||||
distclean-tags distclean-generic clean-am
|
distclean-libtool distclean-tags distclean-generic \
|
||||||
|
clean-am
|
||||||
|
|
||||||
maintainer-clean-am: maintainer-clean-wpexecbinPROGRAMS \
|
maintainer-clean-am: maintainer-clean-wpexecbinPROGRAMS \
|
||||||
maintainer-clean-compile maintainer-clean-tags \
|
maintainer-clean-compile maintainer-clean-libtool \
|
||||||
maintainer-clean-generic distclean-am
|
maintainer-clean-tags maintainer-clean-generic \
|
||||||
|
distclean-am
|
||||||
|
|
||||||
mostlyclean: mostlyclean-recursive mostlyclean-am
|
mostlyclean: mostlyclean-recursive mostlyclean-am
|
||||||
|
|
||||||
@@ -415,6 +443,7 @@ clean: clean-recursive clean-am
|
|||||||
|
|
||||||
distclean: distclean-recursive distclean-am
|
distclean: distclean-recursive distclean-am
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-recursive maintainer-clean-am
|
maintainer-clean: maintainer-clean-recursive maintainer-clean-am
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
@@ -424,11 +453,13 @@ maintainer-clean: maintainer-clean-recursive maintainer-clean-am
|
|||||||
clean-wpexecbinPROGRAMS maintainer-clean-wpexecbinPROGRAMS \
|
clean-wpexecbinPROGRAMS maintainer-clean-wpexecbinPROGRAMS \
|
||||||
uninstall-wpexecbinPROGRAMS install-wpexecbinPROGRAMS \
|
uninstall-wpexecbinPROGRAMS install-wpexecbinPROGRAMS \
|
||||||
mostlyclean-compile distclean-compile clean-compile \
|
mostlyclean-compile distclean-compile clean-compile \
|
||||||
maintainer-clean-compile uninstall-wpdataDATA install-wpdataDATA \
|
maintainer-clean-compile mostlyclean-libtool distclean-libtool \
|
||||||
install-data-recursive uninstall-data-recursive install-exec-recursive \
|
clean-libtool maintainer-clean-libtool uninstall-wpdataDATA \
|
||||||
uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
|
install-wpdataDATA install-data-recursive uninstall-data-recursive \
|
||||||
all-recursive check-recursive installcheck-recursive info-recursive \
|
install-exec-recursive uninstall-exec-recursive installdirs-recursive \
|
||||||
dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
|
uninstalldirs-recursive all-recursive check-recursive \
|
||||||
|
installcheck-recursive info-recursive dvi-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 \
|
||||||
|
|||||||
@@ -546,14 +546,23 @@ browserClick(WMWidget *w, void *data)
|
|||||||
|
|
||||||
if (isMenu(item)) {
|
if (isMenu(item)) {
|
||||||
updateForItemType(panel, TNothing);
|
updateForItemType(panel, TNothing);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (WMGetBrowserSelectedColumn(panel->browser)==
|
WMSetPopUpButtonEnabled(panel->cmd2P, True);
|
||||||
WMGetBrowserFirstVisibleColumn(panel->browser)) {
|
return;
|
||||||
|
} else {
|
||||||
|
int column = WMGetBrowserSelectedColumn(panel->browser);
|
||||||
|
|
||||||
|
if (column == WMGetBrowserNumberOfColumns(panel->browser)-1
|
||||||
|
&& column > 0)
|
||||||
|
WMSetPopUpButtonEnabled(panel->cmd2P, True);
|
||||||
|
else
|
||||||
|
WMSetPopUpButtonEnabled(panel->cmd2P, False);
|
||||||
|
|
||||||
|
if (column==WMGetBrowserFirstVisibleColumn(panel->browser)) {
|
||||||
/* second column is empty, because selected item is not a submenu */
|
/* second column is empty, because selected item is not a submenu */
|
||||||
WMSetTextFieldText(panel->tit2T, NULL);
|
WMSetTextFieldText(panel->tit2T, NULL);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
command = getItemCommand(item);
|
command = getItemCommand(item);
|
||||||
|
|
||||||
|
|||||||
@@ -633,8 +633,8 @@ createPanel(Panel *p)
|
|||||||
WMSetFrameTitle(panel->menuF, _("Workspace Mouse Actions"));
|
WMSetFrameTitle(panel->menuF, _("Workspace Mouse Actions"));
|
||||||
|
|
||||||
panel->disaB = WMCreateSwitchButton(panel->menuF);
|
panel->disaB = WMCreateSwitchButton(panel->menuF);
|
||||||
WMResizeWidget(panel->disaB, 185, 19);
|
WMResizeWidget(panel->disaB, 205, 18);
|
||||||
WMMoveWidget(panel->disaB, 20, 20);
|
WMMoveWidget(panel->disaB, 10, 20);
|
||||||
WMSetButtonText(panel->disaB, _("Disable mouse actions"));
|
WMSetButtonText(panel->disaB, _("Disable mouse actions"));
|
||||||
|
|
||||||
panel->mblL = WMCreateLabel(panel->menuF);
|
panel->mblL = WMCreateLabel(panel->menuF);
|
||||||
|
|||||||
@@ -223,7 +223,8 @@ listClick(WMWidget *w, void *data)
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
paintItem(WMList *lPtr, Drawable d, char *text, int state, WMRect *rect)
|
paintItem(WMList *lPtr, int index, Drawable d, char *text, int state,
|
||||||
|
WMRect *rect)
|
||||||
{
|
{
|
||||||
int width, height, x, y;
|
int width, height, x, y;
|
||||||
_Panel *panel = (_Panel*)WMGetHangedData(lPtr);
|
_Panel *panel = (_Panel*)WMGetHangedData(lPtr);
|
||||||
|
|||||||
@@ -33,6 +33,17 @@ the contents of the ~/GNUstep/Defaults directory before using it.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
|
||||||
|
Like Window Maker, WPrefs is distributed with through the General Public
|
||||||
|
License (as stated in the file COPYING). As an exception, the icons and
|
||||||
|
original graphical artwork included with WPrefs has the additional
|
||||||
|
restriction that they must not be redistributed without the rest of the
|
||||||
|
Window Maker distribution. In other words, you can use and distribute the
|
||||||
|
WPrefs icons freely, as long as they are distributed for use with Window
|
||||||
|
Maker (ripping the icons and putting them in your program is prohibited).
|
||||||
|
|
||||||
|
|
||||||
Notes
|
Notes
|
||||||
-----
|
-----
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ char *WMGetColorWellRGBString(WMColorWell *cPtr) {
|
|||||||
*/
|
*/
|
||||||
static void buttonCallback(WMWidget *self, void *data);
|
static void buttonCallback(WMWidget *self, void *data);
|
||||||
static void renderTextureButtons (_TexturePanel *panel);
|
static void renderTextureButtons (_TexturePanel *panel);
|
||||||
static void paintListItem(WMList *lPtr, Drawable d, char *text, int state, WMRect *rect);
|
static void paintListItem(WMList *lPtr, int index, Drawable d, char *text, int state, WMRect *rect);
|
||||||
static void notificationObserver(void *self, WMNotification *notif);
|
static void notificationObserver(void *self, WMNotification *notif);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -139,7 +139,7 @@ notificationObserver(void *self, WMNotification *notif)
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
paintListItem(WMList *lPtr, Drawable d, char *text, int state, WMRect *rect)
|
paintListItem(WMList *lPtr, int index, Drawable d, char *text, int state, WMRect *rect)
|
||||||
{
|
{
|
||||||
WMScreen *scr;
|
WMScreen *scr;
|
||||||
int width, height, x, y;
|
int width, height, x, y;
|
||||||
|
|||||||
262
WPrefs.app/Themes.c
Normal file
262
WPrefs.app/Themes.c
Normal file
@@ -0,0 +1,262 @@
|
|||||||
|
/* Themes.c- Theme stuff
|
||||||
|
*
|
||||||
|
* WPrefs - Window Maker Preferences Program
|
||||||
|
*
|
||||||
|
* Copyright (c) 1998 Alfredo K. Kojima
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||||
|
* USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "WPrefs.h"
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
typedef struct _Panel {
|
||||||
|
WMFrame *frame;
|
||||||
|
|
||||||
|
char *sectionName;
|
||||||
|
|
||||||
|
CallbackRec callbacks;
|
||||||
|
|
||||||
|
WMWindow *win;
|
||||||
|
|
||||||
|
WMButton *saveB;
|
||||||
|
WMList *list;
|
||||||
|
WMButton *loadB;
|
||||||
|
WMButton *instB;
|
||||||
|
|
||||||
|
WMFrame *totF;
|
||||||
|
WMButton *totB;
|
||||||
|
WMLabel *totL;
|
||||||
|
|
||||||
|
WMFrame *botF;
|
||||||
|
WMButton *botB;
|
||||||
|
WMLabel *botL;
|
||||||
|
|
||||||
|
pid_t tilePID;
|
||||||
|
pid_t barPID;
|
||||||
|
} _Panel;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define ICON_FILE "theme"
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
showData(_Panel *panel)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
finishedTileDownload(void *data)
|
||||||
|
{
|
||||||
|
_Panel *panel = (_Panel*)data;
|
||||||
|
|
||||||
|
WMSetButtonText(panel->totB, _("Set"));
|
||||||
|
panel->tilePID = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
finishedBarDownload(void *data)
|
||||||
|
{
|
||||||
|
_Panel *panel = (_Panel*)data;
|
||||||
|
|
||||||
|
WMSetButtonText(panel->botB, _("Set"));
|
||||||
|
panel->barPID = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static pid_t
|
||||||
|
downloadFile(WMScreen *scr, _Panel *panel, char *file)
|
||||||
|
{
|
||||||
|
pid_t pid;
|
||||||
|
|
||||||
|
pid = fork();
|
||||||
|
if (pid < 0) {
|
||||||
|
wsyserror("could not fork() process");
|
||||||
|
|
||||||
|
WMRunAlertPanel(scr, panel->win, _("Error"),
|
||||||
|
"Could not start download. fork() failed",
|
||||||
|
_("OK"), NULL, NULL);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (pid != 0) {
|
||||||
|
return pid;
|
||||||
|
}
|
||||||
|
|
||||||
|
close(ConnectionNumber(WMScreenDisplay(scr)));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
downloadCallback(WMWidget *w, void *data)
|
||||||
|
{
|
||||||
|
_Panel *panel = (_Panel*)data;
|
||||||
|
pid_t newPid;
|
||||||
|
WMButton *button = (WMButton*)w;
|
||||||
|
pid_t *pid;
|
||||||
|
|
||||||
|
if (button == panel->totB) {
|
||||||
|
pid = &panel->tilePID;
|
||||||
|
} else {
|
||||||
|
pid = &panel->barPID;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (*pid == 0) {
|
||||||
|
newPid = downloadFile(WMWidgetScreen(w), panel, NULL);
|
||||||
|
if (newPid < 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
WMSetButtonText(button, _("Stop"));
|
||||||
|
|
||||||
|
if (button == panel->totB) {
|
||||||
|
AddDeadChildHandler(newPid, finishedTileDownload, data);
|
||||||
|
} else {
|
||||||
|
AddDeadChildHandler(newPid, finishedBarDownload, data);
|
||||||
|
}
|
||||||
|
*pid = newPid;
|
||||||
|
} else {
|
||||||
|
*pid = 0;
|
||||||
|
|
||||||
|
WMSetButtonText(button, _("Download"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
updateThemeList(_Panel *panel)
|
||||||
|
{
|
||||||
|
WMClearList(panel->list);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
createPanel(Panel *p)
|
||||||
|
{
|
||||||
|
_Panel *panel = (_Panel*)p;
|
||||||
|
WMScreen *scr = WMWidgetScreen(panel->win);
|
||||||
|
|
||||||
|
panel->frame = WMCreateFrame(panel->win);
|
||||||
|
WMResizeWidget(panel->frame, FRAME_WIDTH, FRAME_HEIGHT);
|
||||||
|
WMMoveWidget(panel->frame, FRAME_LEFT, FRAME_TOP);
|
||||||
|
|
||||||
|
panel->saveB = WMCreateCommandButton(panel->frame);
|
||||||
|
WMResizeWidget(panel->saveB, 154, 24);
|
||||||
|
WMMoveWidget(panel->saveB, 15, 10);
|
||||||
|
WMSetButtonText(panel->saveB, _("Save Current Theme"));
|
||||||
|
|
||||||
|
panel->list = WMCreateList(panel->frame);
|
||||||
|
WMResizeWidget(panel->list, 154, 150);
|
||||||
|
WMMoveWidget(panel->list, 15, 40);
|
||||||
|
|
||||||
|
panel->loadB = WMCreateCommandButton(panel->frame);
|
||||||
|
WMResizeWidget(panel->loadB, 74, 24);
|
||||||
|
WMMoveWidget(panel->loadB, 15, 200);
|
||||||
|
WMSetButtonText(panel->loadB, _("Load"));
|
||||||
|
|
||||||
|
panel->instB = WMCreateCommandButton(panel->frame);
|
||||||
|
WMResizeWidget(panel->instB, 74, 24);
|
||||||
|
WMMoveWidget(panel->instB, 95, 200);
|
||||||
|
WMSetButtonText(panel->instB, _("Install"));
|
||||||
|
|
||||||
|
|
||||||
|
/**************** Tile of the day ****************/
|
||||||
|
|
||||||
|
panel->totF = WMCreateFrame(panel->frame);
|
||||||
|
WMResizeWidget(panel->totF, 210, 105);
|
||||||
|
WMMoveWidget(panel->totF, 240, 10);
|
||||||
|
WMSetFrameTitle(panel->totF, _("Tile of The Day"));
|
||||||
|
|
||||||
|
panel->totL = WMCreateLabel(panel->totF);
|
||||||
|
WMResizeWidget(panel->totL, 67, 67);
|
||||||
|
WMMoveWidget(panel->totL, 25, 25);
|
||||||
|
WMSetLabelRelief(panel->totL, WRSunken);
|
||||||
|
|
||||||
|
panel->totB = WMCreateCommandButton(panel->totF);
|
||||||
|
WMResizeWidget(panel->totB, 86, 24);
|
||||||
|
WMMoveWidget(panel->totB, 105, 45);
|
||||||
|
WMSetButtonText(panel->totB, _("Download"));
|
||||||
|
WMSetButtonAction(panel->totB, downloadCallback, panel);
|
||||||
|
|
||||||
|
WMMapSubwidgets(panel->totF);
|
||||||
|
|
||||||
|
/**************** Bar of the day ****************/
|
||||||
|
|
||||||
|
panel->botF = WMCreateFrame(panel->frame);
|
||||||
|
WMResizeWidget(panel->botF, 315, 95);
|
||||||
|
WMMoveWidget(panel->botF, 190, 125);
|
||||||
|
WMSetFrameTitle(panel->botF, _("Bar of The Day"));
|
||||||
|
|
||||||
|
panel->botL = WMCreateLabel(panel->botF);
|
||||||
|
WMResizeWidget(panel->botL, 285, 32);
|
||||||
|
WMMoveWidget(panel->botL, 15, 20);
|
||||||
|
WMSetLabelRelief(panel->botL, WRSunken);
|
||||||
|
|
||||||
|
panel->botB = WMCreateCommandButton(panel->botF);
|
||||||
|
WMResizeWidget(panel->botB, 86, 24);
|
||||||
|
WMMoveWidget(panel->botB, 110, 60);
|
||||||
|
WMSetButtonText(panel->botB, _("Download"));
|
||||||
|
WMSetButtonAction(panel->botB, downloadCallback, panel);
|
||||||
|
|
||||||
|
WMMapSubwidgets(panel->botF);
|
||||||
|
|
||||||
|
WMRealizeWidget(panel->frame);
|
||||||
|
WMMapSubwidgets(panel->frame);
|
||||||
|
|
||||||
|
showData(panel);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
storeData(_Panel *panel)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Panel*
|
||||||
|
InitThemes(WMScreen *scr, WMWindow *win)
|
||||||
|
{
|
||||||
|
_Panel *panel;
|
||||||
|
|
||||||
|
panel = wmalloc(sizeof(_Panel));
|
||||||
|
memset(panel, 0, sizeof(_Panel));
|
||||||
|
|
||||||
|
panel->sectionName = _("Themes");
|
||||||
|
|
||||||
|
panel->win = win;
|
||||||
|
|
||||||
|
panel->callbacks.createWidgets = createPanel;
|
||||||
|
panel->callbacks.updateDomain = storeData;
|
||||||
|
|
||||||
|
AddSection(panel, ICON_FILE);
|
||||||
|
|
||||||
|
return panel;
|
||||||
|
}
|
||||||
@@ -39,8 +39,6 @@ extern Panel *InitFocus(WMScreen *scr, WMWindow *win);
|
|||||||
|
|
||||||
extern Panel *InitPreferences(WMScreen *scr, WMWindow *win);
|
extern Panel *InitPreferences(WMScreen *scr, WMWindow *win);
|
||||||
|
|
||||||
extern Panel *InitTextureAndColor(WMScreen *scr, WMWindow *win);
|
|
||||||
|
|
||||||
extern Panel *InitText(WMScreen *scr, WMWindow *win);
|
extern Panel *InitText(WMScreen *scr, WMWindow *win);
|
||||||
|
|
||||||
extern Panel *InitConfigurations(WMScreen *scr, WMWindow *win);
|
extern Panel *InitConfigurations(WMScreen *scr, WMWindow *win);
|
||||||
@@ -55,6 +53,13 @@ extern Panel *InitMenuPreferences(WMScreen *scr, WMWindow *win);
|
|||||||
|
|
||||||
extern Panel *InitIcons(WMScreen *scr, WMWindow *win);
|
extern Panel *InitIcons(WMScreen *scr, WMWindow *win);
|
||||||
|
|
||||||
|
extern Panel *InitThemes(WMScreen *scr, WMWindow *win);
|
||||||
|
|
||||||
|
extern Panel *InitTextureAndColor(WMScreen *scr, WMWindow *win);
|
||||||
|
|
||||||
|
extern Panel *InitAppearance(WMScreen *scr, WMWindow *win);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define MAX_SECTIONS 16
|
#define MAX_SECTIONS 16
|
||||||
|
|
||||||
@@ -506,15 +511,21 @@ Initialize(WMScreen *scr)
|
|||||||
#endif
|
#endif
|
||||||
InitKeyboardShortcuts(scr, WPrefs.win);
|
InitKeyboardShortcuts(scr, WPrefs.win);
|
||||||
InitMouseSettings(scr, WPrefs.win);
|
InitMouseSettings(scr, WPrefs.win);
|
||||||
|
|
||||||
#ifdef not_yet_fully_implemented
|
#ifdef not_yet_fully_implemented
|
||||||
InitTextureAndColor(scr, WPrefs.win);
|
InitAppearance(scr, WPrefs.win);
|
||||||
InitText(scr, WPrefs.win);
|
InitText(scr, WPrefs.win);
|
||||||
|
InitThemes(scr, WPrefs.win);
|
||||||
#endif
|
#endif
|
||||||
InitExpert(scr, WPrefs.win);
|
InitExpert(scr, WPrefs.win);
|
||||||
|
|
||||||
WMRealizeWidget(WPrefs.scrollV);
|
WMRealizeWidget(WPrefs.scrollV);
|
||||||
|
|
||||||
WMSetLabelText(WPrefs.statusL, "This program is still under development. Backup your ~/GNUstep/Defaults directory, before using it.");
|
WMSetLabelText(WPrefs.statusL,
|
||||||
|
"WPrefs is free software and is distributed WITHOUT ANY "
|
||||||
|
"WARRANTY under the terms of the GNU General Public License."
|
||||||
|
"Redistribution of the icons in this program separately from the program itself is prohibited.");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -555,7 +566,7 @@ loadConfigurations(WMScreen *scr, WMWindow *mainw)
|
|||||||
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 Window Maker is in your search path."));
|
wfatal(_("Make sure wmaker is in your search path."));
|
||||||
|
|
||||||
WMRunAlertPanel(scr, mainw, _("Error"),
|
WMRunAlertPanel(scr, mainw, _("Error"),
|
||||||
_("Could not extract version from Window Maker. Make sure it is correctly installed and is in your PATH environment variable."),
|
_("Could not extract version from Window Maker. Make sure it is correctly installed and is in your PATH environment variable."),
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
@@ -36,8 +37,12 @@
|
|||||||
#include <WINGs.h>
|
#include <WINGs.h>
|
||||||
#include <WUtil.h>
|
#include <WUtil.h>
|
||||||
|
|
||||||
|
/** some config options **/
|
||||||
|
#undef EXTEND_WINDOWSHORTCUT
|
||||||
|
|
||||||
#define WVERSION "0.8"
|
/****/
|
||||||
|
|
||||||
|
#define WVERSION "0.9"
|
||||||
#define WMVERSION "0.20.x"
|
#define WMVERSION "0.20.x"
|
||||||
|
|
||||||
|
|
||||||
@@ -63,6 +68,7 @@ typedef struct PanelRec {
|
|||||||
} PanelRec;
|
} PanelRec;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void AddSection(Panel *panel, char *iconFile);
|
void AddSection(Panel *panel, char *iconFile);
|
||||||
|
|
||||||
char *LocateImage(char *name);
|
char *LocateImage(char *name);
|
||||||
@@ -93,6 +99,11 @@ void SetBoolForKey(Bool value, char *defaultName);
|
|||||||
|
|
||||||
void SetSpeedForKey(int speed, char *defaultName);
|
void SetSpeedForKey(int speed, char *defaultName);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void AddDeadChildHandler(pid_t pid, void (*handler)(void*), void *data);
|
||||||
|
|
||||||
|
|
||||||
#define FRAME_TOP 105
|
#define FRAME_TOP 105
|
||||||
#define FRAME_LEFT -2
|
#define FRAME_LEFT -2
|
||||||
#define FRAME_WIDTH 524
|
#define FRAME_WIDTH 524
|
||||||
|
|||||||
@@ -21,11 +21,27 @@
|
|||||||
|
|
||||||
#include "WPrefs.h"
|
#include "WPrefs.h"
|
||||||
|
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
#include <X11/Xlocale.h>
|
#include <X11/Xlocale.h>
|
||||||
|
|
||||||
|
#include <sys/wait.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
extern void Initialize(WMScreen *scr);
|
extern void Initialize(WMScreen *scr);
|
||||||
|
|
||||||
|
#define MAX_DEATHS 64
|
||||||
|
|
||||||
|
struct {
|
||||||
|
pid_t pid;
|
||||||
|
void *data;
|
||||||
|
void (*handler)(void*);
|
||||||
|
} DeadHandlers[MAX_DEATHS];
|
||||||
|
|
||||||
|
|
||||||
|
static pid_t DeadChildren[MAX_DEATHS];
|
||||||
|
static int DeadChildrenCount = 0;
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -60,6 +76,38 @@ print_help(char *progname)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static RETSIGTYPE
|
||||||
|
handleDeadChild(int sig)
|
||||||
|
{
|
||||||
|
pid_t pid;
|
||||||
|
int status;
|
||||||
|
|
||||||
|
pid = waitpid(-1, &status, WNOHANG);
|
||||||
|
if (pid > 0) {
|
||||||
|
DeadChildren[DeadChildrenCount++] = pid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
AddDeadChildHandler(pid_t pid, void (*handler)(void*), void *data)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < MAX_DEATHS; i++) {
|
||||||
|
if (DeadHandlers[i].pid == 0) {
|
||||||
|
DeadHandlers[i].pid = pid;
|
||||||
|
DeadHandlers[i].handler = handler;
|
||||||
|
DeadHandlers[i].data = data;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assert(i!=MAX_DEATHS);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
@@ -69,6 +117,8 @@ main(int argc, char **argv)
|
|||||||
int i;
|
int i;
|
||||||
char *display_name="";
|
char *display_name="";
|
||||||
|
|
||||||
|
memset(DeadHandlers, 0, sizeof(DeadHandlers));
|
||||||
|
|
||||||
WMInitializeApplication("WPrefs", &argc, argv);
|
WMInitializeApplication("WPrefs", &argc, argv);
|
||||||
|
|
||||||
if (argc>1) {
|
if (argc>1) {
|
||||||
@@ -130,6 +180,18 @@ main(int argc, char **argv)
|
|||||||
XEvent event;
|
XEvent event;
|
||||||
|
|
||||||
WMNextEvent(dpy, &event);
|
WMNextEvent(dpy, &event);
|
||||||
|
|
||||||
|
while (DeadChildrenCount-- > 0) {
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i=0; i<MAX_DEATHS; i++) {
|
||||||
|
if (DeadChildren[i] == DeadHandlers[i].pid) {
|
||||||
|
(*DeadHandlers[i].handler)(DeadHandlers[i].data);
|
||||||
|
DeadHandlers[i].pid = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
WMHandleEvent(&event);
|
WMHandleEvent(&event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ POTFILES = \
|
|||||||
$(top_builddir)/WPrefs/Configurations.c \
|
$(top_builddir)/WPrefs/Configurations.c \
|
||||||
$(top_builddir)/WPrefs/Expert.c \
|
$(top_builddir)/WPrefs/Expert.c \
|
||||||
$(top_builddir)/WPrefs/Focus.c \
|
$(top_builddir)/WPrefs/Focus.c \
|
||||||
|
$(top_builddir)/WPrefs/Icons.c \
|
||||||
$(top_builddir)/WPrefs/KeyboardSettings.c \
|
$(top_builddir)/WPrefs/KeyboardSettings.c \
|
||||||
$(top_builddir)/WPrefs/KeyboardShortcuts.c \
|
$(top_builddir)/WPrefs/KeyboardShortcuts.c \
|
||||||
$(top_builddir)/WPrefs/Menu.c \
|
$(top_builddir)/WPrefs/Menu.c \
|
||||||
@@ -20,6 +21,7 @@ POTFILES = \
|
|||||||
$(top_builddir)/WPrefs/Preferences.c \
|
$(top_builddir)/WPrefs/Preferences.c \
|
||||||
$(top_builddir)/WPrefs/Text.c \
|
$(top_builddir)/WPrefs/Text.c \
|
||||||
$(top_builddir)/WPrefs/TextureAndColor.c \
|
$(top_builddir)/WPrefs/TextureAndColor.c \
|
||||||
|
$(top_builddir)/WPrefs/Themes.c \
|
||||||
$(top_builddir)/WPrefs/WPrefs.c \
|
$(top_builddir)/WPrefs/WPrefs.c \
|
||||||
$(top_builddir)/WPrefs/WindowHandling.c \
|
$(top_builddir)/WPrefs/WindowHandling.c \
|
||||||
$(top_builddir)/WPrefs/Workspace.c \
|
$(top_builddir)/WPrefs/Workspace.c \
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -102,6 +105,7 @@ POTFILES = \
|
|||||||
$(top_builddir)/WPrefs/Configurations.c \
|
$(top_builddir)/WPrefs/Configurations.c \
|
||||||
$(top_builddir)/WPrefs/Expert.c \
|
$(top_builddir)/WPrefs/Expert.c \
|
||||||
$(top_builddir)/WPrefs/Focus.c \
|
$(top_builddir)/WPrefs/Focus.c \
|
||||||
|
$(top_builddir)/WPrefs/Icons.c \
|
||||||
$(top_builddir)/WPrefs/KeyboardSettings.c \
|
$(top_builddir)/WPrefs/KeyboardSettings.c \
|
||||||
$(top_builddir)/WPrefs/KeyboardShortcuts.c \
|
$(top_builddir)/WPrefs/KeyboardShortcuts.c \
|
||||||
$(top_builddir)/WPrefs/Menu.c \
|
$(top_builddir)/WPrefs/Menu.c \
|
||||||
@@ -112,6 +116,7 @@ POTFILES = \
|
|||||||
$(top_builddir)/WPrefs/Preferences.c \
|
$(top_builddir)/WPrefs/Preferences.c \
|
||||||
$(top_builddir)/WPrefs/Text.c \
|
$(top_builddir)/WPrefs/Text.c \
|
||||||
$(top_builddir)/WPrefs/TextureAndColor.c \
|
$(top_builddir)/WPrefs/TextureAndColor.c \
|
||||||
|
$(top_builddir)/WPrefs/Themes.c \
|
||||||
$(top_builddir)/WPrefs/WPrefs.c \
|
$(top_builddir)/WPrefs/WPrefs.c \
|
||||||
$(top_builddir)/WPrefs/WindowHandling.c \
|
$(top_builddir)/WPrefs/WindowHandling.c \
|
||||||
$(top_builddir)/WPrefs/Workspace.c \
|
$(top_builddir)/WPrefs/Workspace.c \
|
||||||
@@ -196,6 +201,7 @@ clean: clean-generic mostlyclean
|
|||||||
|
|
||||||
distclean: distclean-generic clean
|
distclean: distclean-generic clean
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-generic distclean
|
maintainer-clean: maintainer-clean-generic distclean
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
1390
WPrefs.app/po/hr.po
1390
WPrefs.app/po/hr.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -250,6 +253,7 @@ clean: clean-generic mostlyclean
|
|||||||
|
|
||||||
distclean: distclean-generic clean
|
distclean: distclean-generic clean
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-generic distclean
|
maintainer-clean: maintainer-clean-generic distclean
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -250,6 +253,7 @@ clean: clean-generic mostlyclean
|
|||||||
|
|
||||||
distclean: distclean-generic clean
|
distclean: distclean-generic clean
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-generic distclean
|
maintainer-clean: maintainer-clean-generic distclean
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB |
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
defsdatadir = $(pkgdatadir)/Backgrounds
|
defsdatadir = $(pkgdatadir)/Backgrounds
|
||||||
|
|
||||||
defsdata_DATA = BlueImage.jpeg SeaNight.jpeg BlueWaves.jpeg
|
defsdata_DATA = BlueImage.jpeg
|
||||||
|
|
||||||
EXTRA_DIST = $(defsdata_DATA)
|
EXTRA_DIST = $(defsdata_DATA)
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -92,7 +95,7 @@ wprefsdir = @wprefsdir@
|
|||||||
|
|
||||||
defsdatadir = $(pkgdatadir)/Backgrounds
|
defsdatadir = $(pkgdatadir)/Backgrounds
|
||||||
|
|
||||||
defsdata_DATA = BlueImage.jpeg SeaNight.jpeg BlueWaves.jpeg
|
defsdata_DATA = BlueImage.jpeg
|
||||||
|
|
||||||
EXTRA_DIST = $(defsdata_DATA)
|
EXTRA_DIST = $(defsdata_DATA)
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
@@ -193,6 +196,7 @@ clean: clean-generic mostlyclean
|
|||||||
|
|
||||||
distclean: distclean-generic clean
|
distclean: distclean-generic clean
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-generic distclean
|
maintainer-clean: maintainer-clean-generic distclean
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -195,6 +198,7 @@ clean: clean-generic mostlyclean
|
|||||||
|
|
||||||
distclean: distclean-generic clean
|
distclean: distclean-generic clean
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-generic distclean
|
maintainer-clean: maintainer-clean-generic distclean
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Dock = {
|
Dock = {
|
||||||
Applications = (
|
Applications = (
|
||||||
{
|
{
|
||||||
Command = "";
|
Command = "-";
|
||||||
Name = Logo.WMDock;
|
Name = Logo.WMDock;
|
||||||
AutoLaunch = No;
|
AutoLaunch = No;
|
||||||
Forced = No;
|
Forced = No;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Dock = {
|
Dock = {
|
||||||
Applications = (
|
Applications = (
|
||||||
{
|
{
|
||||||
Command = "";
|
Command = "-";
|
||||||
Name = Logo.WMDock;
|
Name = Logo.WMDock;
|
||||||
AutoLaunch = No;
|
AutoLaunch = No;
|
||||||
Forced = No;
|
Forced = No;
|
||||||
|
|||||||
@@ -6,6 +6,13 @@
|
|||||||
WMSoundServer = {Icon = Sound.tiff;};
|
WMSoundServer = {Icon = Sound.tiff;};
|
||||||
XTerm = {Icon = GNUterm.tiff;};
|
XTerm = {Icon = GNUterm.tiff;};
|
||||||
NXTerm = {Icon = GNUterm.tiff;};
|
NXTerm = {Icon = GNUterm.tiff;};
|
||||||
|
ScilabGraphic0.Xscilab = {KeepInsideScreen=YES;};
|
||||||
|
ScilabGraphic1.Xscilab = {KeepInsideScreen=YES;};
|
||||||
|
ScilabGraphic2.Xscilab = {KeepInsideScreen=YES;};
|
||||||
|
ScilabGraphic3.Xscilab = {KeepInsideScreen=YES;};
|
||||||
|
ScilabGraphic4.Xscilab = {KeepInsideScreen=YES;};
|
||||||
|
ScilabGraphic5.Xscilab = {KeepInsideScreen=YES;};
|
||||||
|
ScilabGraphic6.Xscilab = {KeepInsideScreen=YES;};
|
||||||
xcalc = {AlwaysUserIcon = Yes;Icon = "HP-16C-48.xpm";};
|
xcalc = {AlwaysUserIcon = Yes;Icon = "HP-16C-48.xpm";};
|
||||||
Netscape = {Icon = Netscape.xpm;};
|
Netscape = {Icon = Netscape.xpm;};
|
||||||
Emacs = {Icon = ColorGNU.xpm;};
|
Emacs = {Icon = ColorGNU.xpm;};
|
||||||
|
|||||||
@@ -6,6 +6,13 @@
|
|||||||
WMSoundServer = {Icon = Sound.#extension#;};
|
WMSoundServer = {Icon = Sound.#extension#;};
|
||||||
XTerm = {Icon = GNUterm.#extension#;};
|
XTerm = {Icon = GNUterm.#extension#;};
|
||||||
NXTerm = {Icon = GNUterm.#extension#;};
|
NXTerm = {Icon = GNUterm.#extension#;};
|
||||||
|
ScilabGraphic0.Xscilab = {KeepInsideScreen=YES;};
|
||||||
|
ScilabGraphic1.Xscilab = {KeepInsideScreen=YES;};
|
||||||
|
ScilabGraphic2.Xscilab = {KeepInsideScreen=YES;};
|
||||||
|
ScilabGraphic3.Xscilab = {KeepInsideScreen=YES;};
|
||||||
|
ScilabGraphic4.Xscilab = {KeepInsideScreen=YES;};
|
||||||
|
ScilabGraphic5.Xscilab = {KeepInsideScreen=YES;};
|
||||||
|
ScilabGraphic6.Xscilab = {KeepInsideScreen=YES;};
|
||||||
xcalc = {AlwaysUserIcon = Yes;Icon = "HP-16C-48.xpm";};
|
xcalc = {AlwaysUserIcon = Yes;Icon = "HP-16C-48.xpm";};
|
||||||
Netscape = {Icon = Netscape.xpm;};
|
Netscape = {Icon = Netscape.xpm;};
|
||||||
Emacs = {Icon = ColorGNU.xpm;};
|
Emacs = {Icon = ColorGNU.xpm;};
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
|
|
||||||
defsdatadir = $(pkgdatadir)/IconSets
|
defsdatadir = $(pkgdatadir)/IconSets
|
||||||
|
|
||||||
defsdata_DATA = Default
|
defsdata_DATA = Default.iconset
|
||||||
|
|
||||||
EXTRA_DIST =
|
EXTRA_DIST =
|
||||||
|
|
||||||
CLEANFILES = Default
|
CLEANFILES = Default.iconset
|
||||||
|
|
||||||
Default: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes ./Makefile
|
Default.iconset: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes ./Makefile
|
||||||
-rm -f Default
|
-rm -f Default.iconset
|
||||||
cp $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes Default
|
cp $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes Default.iconset
|
||||||
chmod 644 Default
|
chmod 644 Default.iconset
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -92,11 +95,11 @@ wprefsdir = @wprefsdir@
|
|||||||
|
|
||||||
defsdatadir = $(pkgdatadir)/IconSets
|
defsdatadir = $(pkgdatadir)/IconSets
|
||||||
|
|
||||||
defsdata_DATA = Default
|
defsdata_DATA = Default.iconset
|
||||||
|
|
||||||
EXTRA_DIST =
|
EXTRA_DIST =
|
||||||
|
|
||||||
CLEANFILES = Default
|
CLEANFILES = Default.iconset
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
CONFIG_HEADER = ../../src/config.h
|
CONFIG_HEADER = ../../src/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
@@ -195,6 +198,7 @@ clean: clean-generic mostlyclean
|
|||||||
|
|
||||||
distclean: distclean-generic clean
|
distclean: distclean-generic clean
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-generic distclean
|
maintainer-clean: maintainer-clean-generic distclean
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
@@ -206,10 +210,10 @@ installdirs mostlyclean-generic distclean-generic clean-generic \
|
|||||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
||||||
|
|
||||||
|
|
||||||
Default: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes ./Makefile
|
Default.iconset: $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes ./Makefile
|
||||||
-rm -f Default
|
-rm -f Default.iconset
|
||||||
cp $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes Default
|
cp $(top_srcdir)/WindowMaker/Defaults/WMWindowAttributes Default.iconset
|
||||||
chmod 644 Default
|
chmod 644 Default.iconset
|
||||||
|
|
||||||
# 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.
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -202,6 +205,7 @@ clean: clean-generic mostlyclean
|
|||||||
|
|
||||||
distclean: distclean-generic clean
|
distclean: distclean-generic clean
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-generic distclean
|
maintainer-clean: maintainer-clean-generic distclean
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
|||||||
@@ -1,14 +1,37 @@
|
|||||||
SUBDIRS = Defaults Styles Themes Icons Pixmaps Backgrounds IconSets
|
SUBDIRS = Backgrounds Defaults IconSets Icons Pixmaps Styles Themes
|
||||||
|
|
||||||
prefsdatadir = $(pkgdatadir)
|
prefsdatadir = $(pkgdatadir)
|
||||||
|
|
||||||
prefsdata_DATA = wmmacros README menu plmenu autostart.sh exitscript.sh \
|
prefsdata_DATA =\
|
||||||
menu.cz menu.de menu.fr menu.gl menu.ja menu.ko menu.nl menu.pt \
|
README\
|
||||||
menu.it menu.no menu.he menu.es menu.ru menu.tr menu.el menu.se \
|
README.themes\
|
||||||
menu.fi menu.hr menu.dk menu.sl
|
autostart.sh\
|
||||||
|
exitscript.sh\
|
||||||
|
menu\
|
||||||
|
menu.cz\
|
||||||
|
menu.de\
|
||||||
|
menu.dk\
|
||||||
|
menu.el\
|
||||||
|
menu.es\
|
||||||
|
menu.fi\
|
||||||
|
menu.fr\
|
||||||
|
menu.gl\
|
||||||
|
menu.he\
|
||||||
|
menu.hr\
|
||||||
|
menu.hu\
|
||||||
|
menu.it\
|
||||||
|
menu.ja\
|
||||||
|
menu.ko\
|
||||||
|
menu.nl\
|
||||||
|
menu.no\
|
||||||
|
menu.pt\
|
||||||
|
menu.ru\
|
||||||
|
menu.se\
|
||||||
|
menu.sl\
|
||||||
|
menu.tr
|
||||||
|
|
||||||
|
EXTRA_DIST = $(prefsdata_DATA) mkMakefile wmmacros.in plmenu.in\
|
||||||
EXTRA_DIST = $(prefsdata_DATA) wmmacros.in plmenu.in plmenu.fr.in plmenu.hr.in
|
plmenu.fr.in plmenu.hr.in
|
||||||
|
|
||||||
CLEANFILES = wmmacros plmenu
|
CLEANFILES = wmmacros plmenu
|
||||||
|
|
||||||
@@ -19,7 +42,6 @@ wmmacros: $(srcdir)/wmmacros.in ./Makefile
|
|||||||
$(srcdir)/wmmacros.in > wmmacros; \
|
$(srcdir)/wmmacros.in > wmmacros; \
|
||||||
chmod 644 wmmacros
|
chmod 644 wmmacros
|
||||||
|
|
||||||
|
|
||||||
plmenu: $(srcdir)/plmenu.in ./Makefile
|
plmenu: $(srcdir)/plmenu.in ./Makefile
|
||||||
-rm -f plmenu
|
-rm -f plmenu
|
||||||
|
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -90,16 +93,40 @@ X_LOCALE = @X_LOCALE@
|
|||||||
pixmapdir = @pixmapdir@
|
pixmapdir = @pixmapdir@
|
||||||
wprefsdir = @wprefsdir@
|
wprefsdir = @wprefsdir@
|
||||||
|
|
||||||
SUBDIRS = Defaults Styles Themes Icons Pixmaps Backgrounds IconSets
|
SUBDIRS = Backgrounds Defaults IconSets Icons Pixmaps Styles Themes
|
||||||
|
|
||||||
prefsdatadir = $(pkgdatadir)
|
prefsdatadir = $(pkgdatadir)
|
||||||
|
|
||||||
prefsdata_DATA = wmmacros README menu plmenu autostart.sh exitscript.sh \
|
prefsdata_DATA =\
|
||||||
menu.cz menu.de menu.fr menu.gl menu.ja menu.ko menu.nl menu.pt \
|
README\
|
||||||
menu.it menu.no menu.he menu.es menu.ru menu.tr menu.el menu.se \
|
README.themes\
|
||||||
menu.fi menu.hr menu.dk menu.sl
|
autostart.sh\
|
||||||
|
exitscript.sh\
|
||||||
|
menu\
|
||||||
|
menu.cz\
|
||||||
|
menu.de\
|
||||||
|
menu.dk\
|
||||||
|
menu.el\
|
||||||
|
menu.es\
|
||||||
|
menu.fi\
|
||||||
|
menu.fr\
|
||||||
|
menu.gl\
|
||||||
|
menu.he\
|
||||||
|
menu.hr\
|
||||||
|
menu.hu\
|
||||||
|
menu.it\
|
||||||
|
menu.ja\
|
||||||
|
menu.ko\
|
||||||
|
menu.nl\
|
||||||
|
menu.no\
|
||||||
|
menu.pt\
|
||||||
|
menu.ru\
|
||||||
|
menu.se\
|
||||||
|
menu.sl\
|
||||||
|
menu.tr
|
||||||
|
|
||||||
EXTRA_DIST = $(prefsdata_DATA) wmmacros.in plmenu.in plmenu.fr.in plmenu.hr.in
|
EXTRA_DIST = $(prefsdata_DATA) mkMakefile wmmacros.in plmenu.in\
|
||||||
|
plmenu.fr.in plmenu.hr.in
|
||||||
|
|
||||||
CLEANFILES = wmmacros plmenu
|
CLEANFILES = wmmacros plmenu
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
@@ -285,6 +312,7 @@ clean: clean-recursive clean-am
|
|||||||
|
|
||||||
distclean: distclean-recursive distclean-am
|
distclean: distclean-recursive distclean-am
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-recursive maintainer-clean-am
|
maintainer-clean: maintainer-clean-recursive maintainer-clean-am
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -194,6 +197,7 @@ clean: clean-generic mostlyclean
|
|||||||
|
|
||||||
distclean: distclean-generic clean
|
distclean: distclean-generic clean
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-generic distclean
|
maintainer-clean: maintainer-clean-generic distclean
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
|||||||
85
WindowMaker/README.themes
Normal file
85
WindowMaker/README.themes
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Themes For Window Maker
|
||||||
|
=======================
|
||||||
|
|
||||||
|
Note: the information contained in this file is only valid for themes
|
||||||
|
in the .themed (for theme directory) format, supported in
|
||||||
|
Window Maker 0.20.4 or newer.
|
||||||
|
|
||||||
|
|
||||||
|
How To Install a Theme Pack
|
||||||
|
===========================
|
||||||
|
|
||||||
|
To install a theme, unpack your theme into your theme directory,
|
||||||
|
usually ~/GNUstep/Library/WindowMaker/Themes
|
||||||
|
|
||||||
|
cd ~/GNUstep/Library/WindowMaker/Themes
|
||||||
|
gunzip -c xyztheme.tar.gz | tar xf -
|
||||||
|
|
||||||
|
|
||||||
|
How To Load a Theme
|
||||||
|
===================
|
||||||
|
|
||||||
|
Use the setstyle command to load a theme. Example:
|
||||||
|
|
||||||
|
setstyle xyztheme.themed
|
||||||
|
|
||||||
|
Note that if you move the directory of the theme (for example, from
|
||||||
|
~/GNUstep/Library/WindowMaker/Themes to /usr/local/share/WindowMaker/Themes)
|
||||||
|
you will have to reload that theme so that path information is updated.
|
||||||
|
|
||||||
|
|
||||||
|
How To Make a Theme Pack
|
||||||
|
========================
|
||||||
|
|
||||||
|
To create a theme pack from your current configuration, use the getstyle
|
||||||
|
utility with the -p flag. Example:
|
||||||
|
|
||||||
|
getstyle -p MyTheme
|
||||||
|
|
||||||
|
This will create a theme pack named MyTheme.themed, containing everything
|
||||||
|
it requires, including all pixmap files.
|
||||||
|
|
||||||
|
Additionally, you can put a text file named MyTheme.lsm in the MyTheme.themed
|
||||||
|
directory. This file can contain info like copyrights, credits or whatever.
|
||||||
|
|
||||||
|
To distribute your theme, just make a .tar.gz of the .themed directory.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
tar cf MyTheme.tar MyTheme.themed
|
||||||
|
gzip MyTheme.tar
|
||||||
|
|
||||||
|
|
||||||
|
How To Delete a Theme Pack
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Just remove the .themed directory. Example:
|
||||||
|
|
||||||
|
cd ~/GNUstep/Library/WindowMaker/Themes
|
||||||
|
rm -fr themename.themed
|
||||||
|
|
||||||
|
|
||||||
|
How To Save Disk Space
|
||||||
|
======================
|
||||||
|
|
||||||
|
If you have more than 1 theme that use the same huge background image,
|
||||||
|
you can delete all the duplicated files and then create hard links in
|
||||||
|
place of them. For example, if you have:
|
||||||
|
|
||||||
|
theme1.themed/back.jpg
|
||||||
|
|
||||||
|
theme2.themed/backimage.jpg
|
||||||
|
|
||||||
|
theme3.themed/back.jpg
|
||||||
|
|
||||||
|
and all three files contain the same image, you can do:
|
||||||
|
|
||||||
|
rm theme2.themed/backimage.jpg
|
||||||
|
rm theme3.themed/back.jpg
|
||||||
|
ln theme1.themed/back.jpg theme2.themed/backimage.jpg
|
||||||
|
ln theme1.themed/back.jpg theme3.themed/back.jpg
|
||||||
|
|
||||||
|
|
||||||
0
WindowMaker/Styles/Autumn → WindowMaker/Styles/Autumn.style
Executable file → Normal file
0
WindowMaker/Styles/Autumn → WindowMaker/Styles/Autumn.style
Executable file → Normal file
0
WindowMaker/Styles/Black → WindowMaker/Styles/Black.style
Executable file → Normal file
0
WindowMaker/Styles/Black → WindowMaker/Styles/Black.style
Executable file → Normal file
19
WindowMaker/Styles/BlackTexture.style
Normal file
19
WindowMaker/Styles/BlackTexture.style
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
TitleJustify = center;
|
||||||
|
HighlightColor = white;
|
||||||
|
HighlightTextColor = black;
|
||||||
|
ClipTitleColor = white;
|
||||||
|
CClipTitleColor = gray60;
|
||||||
|
FTitleColor = white;
|
||||||
|
PTitleColor = white;
|
||||||
|
UTitleColor = gray20;
|
||||||
|
FTitleBack = (thgradient, "BlueImage.jpeg", 140, "rgb:30/32/3e", black);
|
||||||
|
PTitleBack = (thgradient,"BlueImage.jpeg",140,"rgb:70/72/7e","rgb:45/47/4e");
|
||||||
|
UTitleBack = (thgradient,"BlueImage.jpeg", 100,white,"rgb:9e/94/80");
|
||||||
|
MenuTitleColor = white;
|
||||||
|
MenuTextColor = white;
|
||||||
|
MenuDisabledColor = gray60;
|
||||||
|
MenuTitleBack = (thgradient, "BlueImage.jpeg", 140, "rgb:30/32/3e", black);
|
||||||
|
MenuTextBack = (thgradient,"BlueImage.jpeg",140,"rgb:50/5a/5e","rgb:20/2a/2e");
|
||||||
|
IconBack = (tdgradient, "BlueImage.jpeg", 140, "rgb:30/32/3e", black);
|
||||||
|
}
|
||||||
2
WindowMaker/Styles/Blue → WindowMaker/Styles/Blue.style
Executable file → Normal file
2
WindowMaker/Styles/Blue → WindowMaker/Styles/Blue.style
Executable file → Normal file
@@ -10,4 +10,6 @@ UTitleBack = (hgradient, "rgb:90/90/90", "rgb:c0/c0/c0");
|
|||||||
PTitleBack = (hgradient, "rgb:50/50/50", "rgb:80/80/80");
|
PTitleBack = (hgradient, "rgb:50/50/50", "rgb:80/80/80");
|
||||||
MenuTitleBack = (hgradient, "rgb:20/20/70", "rgb:00/00/20");
|
MenuTitleBack = (hgradient, "rgb:20/20/70", "rgb:00/00/20");
|
||||||
MenuTextBack = (hgradient, "rgb:c0/c0/c0", "rgb:90/90/90");
|
MenuTextBack = (hgradient, "rgb:c0/c0/c0", "rgb:90/90/90");
|
||||||
|
IconTitleBack = "#101040";
|
||||||
|
IconTitleColor = white;
|
||||||
}
|
}
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
HighlightColor = white;
|
|
||||||
HighlightTextColor = black;
|
|
||||||
|
|
||||||
FTitleColor = "white";
|
|
||||||
PTitleColor = "white";
|
|
||||||
UTitleColor = "gray";
|
|
||||||
MenuTitleColor = "white";
|
|
||||||
MenuDisabledColor = "gray50";
|
|
||||||
MenuTextColor = "white";
|
|
||||||
FTitleBack = (hgradient, "rgb:20/24/40","rgb:69/a6/e7");
|
|
||||||
UTitleBack = (hgradient, "rgb:00/04/20","rgb:37/57/79");
|
|
||||||
PTitleBack = (hgradient, "rgb:10/10/30","rgb:49/86/c7");
|
|
||||||
MenuTitleBack = (hgradient, "rgb:20/24/40","rgb:69/a6/e7");
|
|
||||||
MenuTextBack = (hgradient, "rgb:00/00/10","rgb:59/96/d7");
|
|
||||||
}
|
|
||||||
0
WindowMaker/Styles/BlueDawn → WindowMaker/Styles/BlueDawn.style
Executable file → Normal file
0
WindowMaker/Styles/BlueDawn → WindowMaker/Styles/BlueDawn.style
Executable file → Normal file
0
WindowMaker/Styles/BlueishGreen → WindowMaker/Styles/BlueishGreen.style
Executable file → Normal file
0
WindowMaker/Styles/BlueishGreen → WindowMaker/Styles/BlueishGreen.style
Executable file → Normal file
0
WindowMaker/Styles/Brown → WindowMaker/Styles/Brown.style
Executable file → Normal file
0
WindowMaker/Styles/Brown → WindowMaker/Styles/Brown.style
Executable file → Normal file
0
WindowMaker/Styles/Chumbo → WindowMaker/Styles/Chumbo.style
Executable file → Normal file
0
WindowMaker/Styles/Chumbo → WindowMaker/Styles/Chumbo.style
Executable file → Normal file
0
WindowMaker/Styles/Copper → WindowMaker/Styles/Copper.style
Executable file → Normal file
0
WindowMaker/Styles/Copper → WindowMaker/Styles/Copper.style
Executable file → Normal file
0
WindowMaker/Styles/DarkBlue → WindowMaker/Styles/DarkBlue.style
Executable file → Normal file
0
WindowMaker/Styles/DarkBlue → WindowMaker/Styles/DarkBlue.style
Executable file → Normal file
0
WindowMaker/Styles/DarkRed → WindowMaker/Styles/DarkRed.style
Executable file → Normal file
0
WindowMaker/Styles/DarkRed → WindowMaker/Styles/DarkRed.style
Executable file → Normal file
0
WindowMaker/Styles/Fire → WindowMaker/Styles/Fire.style
Executable file → Normal file
0
WindowMaker/Styles/Fire → WindowMaker/Styles/Fire.style
Executable file → Normal file
0
WindowMaker/Styles/Food → WindowMaker/Styles/Food.style
Executable file → Normal file
0
WindowMaker/Styles/Food → WindowMaker/Styles/Food.style
Executable file → Normal file
0
WindowMaker/Styles/Golden → WindowMaker/Styles/Golden.style
Executable file → Normal file
0
WindowMaker/Styles/Golden → WindowMaker/Styles/Golden.style
Executable file → Normal file
0
WindowMaker/Styles/Green → WindowMaker/Styles/Green.style
Executable file → Normal file
0
WindowMaker/Styles/Green → WindowMaker/Styles/Green.style
Executable file → Normal file
0
WindowMaker/Styles/GreyBlue → WindowMaker/Styles/GreyBlue.style
Executable file → Normal file
0
WindowMaker/Styles/GreyBlue → WindowMaker/Styles/GreyBlue.style
Executable file → Normal file
0
WindowMaker/Styles/Gtk → WindowMaker/Styles/Gtk.style
Executable file → Normal file
0
WindowMaker/Styles/Gtk → WindowMaker/Styles/Gtk.style
Executable file → Normal file
0
WindowMaker/Styles/LightBlue → WindowMaker/Styles/LightBlue.style
Executable file → Normal file
0
WindowMaker/Styles/LightBlue → WindowMaker/Styles/LightBlue.style
Executable file → Normal file
@@ -1,33 +1,33 @@
|
|||||||
defsdatadir = $(pkgdatadir)/Styles
|
|
||||||
|
|
||||||
defsdata_DATA = \
|
prefsdatadir = $(pkgdatadir)/Styles
|
||||||
Autumn\
|
|
||||||
Black\
|
prefsdata_DATA =\
|
||||||
Blue\
|
Autumn.style\
|
||||||
BlueAluminum\
|
Black.style\
|
||||||
BlueDawn\
|
BlackTexture.style\
|
||||||
BlueishGreen\
|
Blue.style\
|
||||||
Brown\
|
BlueDawn.style\
|
||||||
Chumbo\
|
BlueishGreen.style\
|
||||||
Copper\
|
Brown.style\
|
||||||
DarkBlue\
|
Chumbo.style\
|
||||||
DarkRed\
|
Copper.style\
|
||||||
Fire\
|
DarkBlue.style\
|
||||||
Food\
|
DarkRed.style\
|
||||||
Golden\
|
Fire.style\
|
||||||
Green\
|
Food.style\
|
||||||
GreyBlue\
|
Golden.style\
|
||||||
Gtk\
|
Green.style\
|
||||||
LightBlue\
|
GreyBlue.style\
|
||||||
Pastel\
|
Gtk.style\
|
||||||
Pink\
|
LightBlue.style\
|
||||||
Pumpkin\
|
Pastel.style\
|
||||||
Purple\
|
Purple.style\
|
||||||
Red\
|
Red.style\
|
||||||
RednBlue\
|
RednBlue.style\
|
||||||
ShinyBrown\
|
Summer.style\
|
||||||
Summer\
|
Traditional.style\
|
||||||
Traditional\
|
VioletBlue.style
|
||||||
VioletBlue
|
|
||||||
|
EXTRA_DIST = $(prefsdata_DATA)
|
||||||
|
|
||||||
|
|
||||||
EXTRA_DIST = $(defsdata_DATA)
|
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ I18N = @I18N@
|
|||||||
I18N_MB = @I18N_MB@
|
I18N_MB = @I18N_MB@
|
||||||
ICONEXT = @ICONEXT@
|
ICONEXT = @ICONEXT@
|
||||||
INTLIBS = @INTLIBS@
|
INTLIBS = @INTLIBS@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LITE = @LITE@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
MOFILES = @MOFILES@
|
MOFILES = @MOFILES@
|
||||||
@@ -90,43 +93,40 @@ X_LOCALE = @X_LOCALE@
|
|||||||
pixmapdir = @pixmapdir@
|
pixmapdir = @pixmapdir@
|
||||||
wprefsdir = @wprefsdir@
|
wprefsdir = @wprefsdir@
|
||||||
|
|
||||||
defsdatadir = $(pkgdatadir)/Styles
|
prefsdatadir = $(pkgdatadir)/Styles
|
||||||
|
|
||||||
defsdata_DATA = \
|
prefsdata_DATA =\
|
||||||
Autumn\
|
Autumn.style\
|
||||||
Black\
|
Black.style\
|
||||||
Blue\
|
BlackTexture.style\
|
||||||
BlueAluminum\
|
Blue.style\
|
||||||
BlueDawn\
|
BlueDawn.style\
|
||||||
BlueishGreen\
|
BlueishGreen.style\
|
||||||
Brown\
|
Brown.style\
|
||||||
Chumbo\
|
Chumbo.style\
|
||||||
Copper\
|
Copper.style\
|
||||||
DarkBlue\
|
DarkBlue.style\
|
||||||
DarkRed\
|
DarkRed.style\
|
||||||
Fire\
|
Fire.style\
|
||||||
Food\
|
Food.style\
|
||||||
Golden\
|
Golden.style\
|
||||||
Green\
|
Green.style\
|
||||||
GreyBlue\
|
GreyBlue.style\
|
||||||
Gtk\
|
Gtk.style\
|
||||||
LightBlue\
|
LightBlue.style\
|
||||||
Pastel\
|
Pastel.style\
|
||||||
Pink\
|
Purple.style\
|
||||||
Pumpkin\
|
Red.style\
|
||||||
Purple\
|
RednBlue.style\
|
||||||
Red\
|
Summer.style\
|
||||||
RednBlue\
|
Traditional.style\
|
||||||
ShinyBrown\
|
VioletBlue.style
|
||||||
Summer\
|
|
||||||
Traditional\
|
|
||||||
VioletBlue
|
|
||||||
|
|
||||||
EXTRA_DIST = $(defsdata_DATA)
|
EXTRA_DIST = $(prefsdata_DATA)
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
CONFIG_HEADER = ../../src/config.h
|
CONFIG_HEADER = ../../src/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
DATA = $(defsdata_DATA)
|
DATA = $(prefsdata_DATA)
|
||||||
|
|
||||||
DIST_COMMON = Makefile.am Makefile.in
|
DIST_COMMON = Makefile.am Makefile.in
|
||||||
|
|
||||||
@@ -146,23 +146,23 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
|
|
||||||
install-defsdataDATA: $(defsdata_DATA)
|
install-prefsdataDATA: $(prefsdata_DATA)
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
$(mkinstalldirs) $(DESTDIR)$(defsdatadir)
|
$(mkinstalldirs) $(DESTDIR)$(prefsdatadir)
|
||||||
@list='$(defsdata_DATA)'; for p in $$list; do \
|
@list='$(prefsdata_DATA)'; for p in $$list; do \
|
||||||
if test -f $(srcdir)/$$p; then \
|
if test -f $(srcdir)/$$p; then \
|
||||||
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(defsdatadir)/$$p"; \
|
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(prefsdatadir)/$$p"; \
|
||||||
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(defsdatadir)/$$p; \
|
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(prefsdatadir)/$$p; \
|
||||||
else if test -f $$p; then \
|
else if test -f $$p; then \
|
||||||
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(defsdatadir)/$$p"; \
|
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(prefsdatadir)/$$p"; \
|
||||||
$(INSTALL_DATA) $$p $(DESTDIR)$(defsdatadir)/$$p; \
|
$(INSTALL_DATA) $$p $(DESTDIR)$(prefsdatadir)/$$p; \
|
||||||
fi; fi; \
|
fi; fi; \
|
||||||
done
|
done
|
||||||
|
|
||||||
uninstall-defsdataDATA:
|
uninstall-prefsdataDATA:
|
||||||
@$(NORMAL_UNINSTALL)
|
@$(NORMAL_UNINSTALL)
|
||||||
list='$(defsdata_DATA)'; for p in $$list; do \
|
list='$(prefsdata_DATA)'; for p in $$list; do \
|
||||||
rm -f $(DESTDIR)$(defsdatadir)/$$p; \
|
rm -f $(DESTDIR)$(prefsdatadir)/$$p; \
|
||||||
done
|
done
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
TAGS:
|
TAGS:
|
||||||
@@ -187,18 +187,18 @@ installcheck:
|
|||||||
install-exec:
|
install-exec:
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
|
|
||||||
install-data: install-defsdataDATA
|
install-data: install-prefsdataDATA
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
|
|
||||||
install: install-exec install-data all
|
install: install-exec install-data all
|
||||||
@:
|
@:
|
||||||
|
|
||||||
uninstall: uninstall-defsdataDATA
|
uninstall: uninstall-prefsdataDATA
|
||||||
|
|
||||||
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:
|
||||||
$(mkinstalldirs) $(DATADIR)$(defsdatadir)
|
$(mkinstalldirs) $(DATADIR)$(prefsdatadir)
|
||||||
|
|
||||||
|
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
@@ -221,12 +221,13 @@ clean: clean-generic mostlyclean
|
|||||||
|
|
||||||
distclean: distclean-generic clean
|
distclean: distclean-generic clean
|
||||||
-rm -f config.status
|
-rm -f config.status
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-generic distclean
|
maintainer-clean: maintainer-clean-generic distclean
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
@echo "it deletes files that may require special tools to rebuild."
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
|
||||||
.PHONY: uninstall-defsdataDATA install-defsdataDATA tags distdir info \
|
.PHONY: uninstall-prefsdataDATA install-prefsdataDATA tags distdir info \
|
||||||
dvi installcheck install-exec install-data install uninstall all \
|
dvi installcheck install-exec install-data install uninstall all \
|
||||||
installdirs mostlyclean-generic distclean-generic clean-generic \
|
installdirs mostlyclean-generic distclean-generic clean-generic \
|
||||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
||||||
|
|||||||
0
WindowMaker/Styles/Pastel → WindowMaker/Styles/Pastel.style
Executable file → Normal file
0
WindowMaker/Styles/Pastel → WindowMaker/Styles/Pastel.style
Executable file → Normal file
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
HighlightColor = white;
|
|
||||||
HighlightTextColor = black;
|
|
||||||
TitleJustify = center;
|
|
||||||
FTitleColor = gray40;
|
|
||||||
PTitleColor = gray;
|
|
||||||
UTitleColor = gray;
|
|
||||||
FTitleBack = (hgradient, white, pink);
|
|
||||||
PTitleBack = (hgradient, pink, pink2);
|
|
||||||
UTitleBack = (hgradient, pink3, pink4);
|
|
||||||
MenuTitleColor = white;
|
|
||||||
MenuTextColor = white;
|
|
||||||
MenuDisabledColor = gray60;
|
|
||||||
MenuTitleBack = (hgradient, pink2, pink4);
|
|
||||||
MenuTextBack = (hgradient, pink4, black);
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
TitleJustify = center;
|
|
||||||
HighlightColor = white;
|
|
||||||
HighlightTextColor = black;
|
|
||||||
ClipTitleColor = white;
|
|
||||||
CClipTitleColor = gray20;
|
|
||||||
FTitleColor = white;
|
|
||||||
PTitleColor = gray60;
|
|
||||||
UTitleColor = gray60;
|
|
||||||
FTitleBack = (hgradient, orange2, orange4);
|
|
||||||
PTitleBack = (hgradient, orange4, black);
|
|
||||||
UTitleBack = (hgradient, "rgb:18/38/59", black);
|
|
||||||
MenuTitleColor = white;
|
|
||||||
MenuTextColor = white;
|
|
||||||
MenuDisabledColor = gray60;
|
|
||||||
MenuTitleBack = (hgradient, orange2, orange4);
|
|
||||||
MenuTextBack = (hgradient, "rgb:18/38/59", "rgb:00/14/28");
|
|
||||||
IconBack = (dgradient, "rgb:a6/a6/b6", "rgb:51/55/61");
|
|
||||||
}
|
|
||||||
0
WindowMaker/Styles/Purple → WindowMaker/Styles/Purple.style
Executable file → Normal file
0
WindowMaker/Styles/Purple → WindowMaker/Styles/Purple.style
Executable file → Normal file
0
WindowMaker/Styles/Red → WindowMaker/Styles/Red.style
Executable file → Normal file
0
WindowMaker/Styles/Red → WindowMaker/Styles/Red.style
Executable file → Normal file
0
WindowMaker/Styles/RednBlue → WindowMaker/Styles/RednBlue.style
Executable file → Normal file
0
WindowMaker/Styles/RednBlue → WindowMaker/Styles/RednBlue.style
Executable file → Normal file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user