mirror of
https://github.com/gryf/wmaker.git
synced 2026-10-18 01:22:30 +02:00
Code update for Window Maker version 0.50.0
Read changes in ChangeLog and NEWS
This commit is contained in:
1 parent
16698efd45
commit
0261c32636
231 files changed
+18866
-6325
No files matched your search
@@ -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,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
|
||||||
|
|||||||
@@ -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:
|
||||||
.............................
|
.............................
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
=============================================
|
=============================================
|
||||||
|
|||||||
+5
-1
@@ -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;"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
||||||
............................
|
............................
|
||||||
|
|
||||||
|
|||||||
+11
-7
@@ -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
|
||||||
|
|||||||
+63
-28
@@ -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;"
|
||||||
|
|||||||
+26
-4
@@ -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 */
|
||||||
|
|||||||
+5
-2
@@ -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,
|
||||||
|
|||||||
+7
-7
@@ -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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+23
-4
@@ -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;
|
||||||
|
|||||||
+146
-8
@@ -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
|
||||||
|
|||||||
+96
-5
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
+12
-5
@@ -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);
|
||||||
|
|||||||
+1
-1
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
+29
-8
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+5
-3
@@ -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++;
|
||||||
|
|||||||
+6
-5
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
+26
-1
@@ -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);
|
||||||
|
}
|
||||||
+115
-10
@@ -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);
|
||||||
|
|||||||
+72
-16
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
+5
-26
@@ -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);
|
||||||
|
|||||||
+9
-3
@@ -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) {
|
||||||
|
|||||||
+2
-1
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
+1
-1
@@ -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@ \
|
||||||
|
|||||||
+53
-22
@@ -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 \
|
||||||
|
|||||||
+13
-4
@@ -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);
|
||||||
|
|||||||
+2
-1
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
+16
-5
@@ -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."),
|
||||||
|
|||||||
+12
-1
@@ -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;"
|
||||||
|
|||||||
+505
-490
File diff suppressed because it is too large.
Load diff
+698
-692
File diff suppressed because it is too large.
Load diff
+520
-318
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;"
|
||||||
|
|||||||
+30
-8
@@ -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
|
||||||
|
|
||||||
|
|||||||
+34
-6
@@ -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;"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|
||||||
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
@@ -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);
|
||||||
|
}
|
||||||
Executable → Regular
+2
@@ -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");
|
|
||||||
}
|
|
||||||
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
@@ -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
|
||||||
|
|||||||
Executable → Regular
File renamed without changes.
@@ -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");
|
|
||||||
}
|
|
||||||
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
Loaded 100 of 231 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user