wmcp: Add version 1.2.8 to repository.
From http://www.cs.mun.ca/~gstarkes/wmaker/dockapps/files/wmcp-1.2.8.tar.gz
This commit is contained in:
parent
673a7d931f
commit
a2bcf3c0f4
41
wmcp/Makefile
Normal file
41
wmcp/Makefile
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
|
||||||
|
|
||||||
|
INCLUDES =-I/usr/X11R6/include/X11 -I/usr/local/include -I/usr/include/X11R6/X11
|
||||||
|
LIBINC =-L/usr/X11R6/lib -L/usr/include/lib
|
||||||
|
LIBS = -lm -lX11 -lXpm -lXext
|
||||||
|
|
||||||
|
TARGET = wmcp
|
||||||
|
OBJECTS = wmcp.o
|
||||||
|
SOURCE = wmcp.c
|
||||||
|
|
||||||
|
scalpel:
|
||||||
|
if [ -e buttons.xpm ]; then rm buttons.xpm; fi
|
||||||
|
if [ -e pushed_buttons.xpm ]; then rm pushed_buttons.xpm; fi
|
||||||
|
if [ -e backdrop.xpm ]; then rm backdrop.xpm; fi
|
||||||
|
ln -s buttons-scalpel.xpm buttons.xpm
|
||||||
|
ln -s pushed_buttons-scalpel.xpm pushed_buttons.xpm
|
||||||
|
ln -s backdrop-scalpel.xpm backdrop.xpm
|
||||||
|
make clean
|
||||||
|
make ${TARGET}
|
||||||
|
|
||||||
|
gv:
|
||||||
|
if [ -e buttons.xpm ]; then rm buttons.xpm; fi
|
||||||
|
if [ -e pushed_buttons.xpm ]; then rm pushed_buttons.xpm; fi
|
||||||
|
if [ -e backdrop.xpm ]; then rm backdrop.xpm; fi
|
||||||
|
ln -s buttons-gv.xpm buttons.xpm
|
||||||
|
ln -s pushed_buttons-gv.xpm pushed_buttons.xpm
|
||||||
|
ln -s backdrop-gv.xpm backdrop.xpm
|
||||||
|
make clean
|
||||||
|
make ${TARGET}
|
||||||
|
|
||||||
|
###################################################################
|
||||||
|
|
||||||
|
${OBJECTS}: ${SOURCE}
|
||||||
|
gcc -g -c -Wall ${INCLUDES} ${FLAGS} $< -o $*.o
|
||||||
|
|
||||||
|
${TARGET}: ${OBJECTS}
|
||||||
|
gcc -g -o ${TARGET} ${OBJECTS} ${LIBINC} ${LIBS}
|
||||||
|
|
||||||
|
clean::
|
||||||
|
for i in ${OBJECTS}; do if [ -e $$i ] ; then rm $$i; fi; done
|
||||||
|
if [ -e ${TARGET} ] ; then rm ${TARGET}; fi
|
158
wmcp/README
Normal file
158
wmcp/README
Normal file
|
@ -0,0 +1,158 @@
|
||||||
|
|
||||||
|
|
||||||
|
wmcp ( Window Maker Crappy Pager )
|
||||||
|
|
||||||
|
Version 1.2.8
|
||||||
|
|
||||||
|
Origional Author:
|
||||||
|
Ben Cohen <buddog@aztec.asu.edu>
|
||||||
|
|
||||||
|
Contributors: ( ** Thanks alot to them !! ** )
|
||||||
|
Thomas Nemeth <tnemeth@multimania.com> -- Pushed button highlighting
|
||||||
|
Craig Maloney <craig@ic.net> -- CTRL + ALT + key option
|
||||||
|
Gert Beumer <Gert@scintilla.utwente.nl> -- Dynamic button sizes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A simple dockable pager for use in Window Maker.
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
INSTALL:
|
||||||
|
--------
|
||||||
|
|
||||||
|
Unzip the file: gunzip wmcp-1.2.8.tar.gz
|
||||||
|
Untar the file: tar xvf wmcp-1.2.8.tar
|
||||||
|
CD to src dir: cd wmcp-1.2.8
|
||||||
|
|
||||||
|
do one of these makes:
|
||||||
|
make -- make wmcp using the default button scheme (scalpel)
|
||||||
|
make scalpel -- make wmcp using the scalpel style button colors
|
||||||
|
make gv -- make wmcp using the ghostview style button colors
|
||||||
|
|
||||||
|
copy wmcp to some directory in your $PATH.
|
||||||
|
( ie: cp wmcp /usr/local/bin )
|
||||||
|
|
||||||
|
type wmcp
|
||||||
|
|
||||||
|
Grab the appicon and move it to the dock.
|
||||||
|
|
||||||
|
If make doesn't work, you may need to fiddle with the settings in
|
||||||
|
the Makefile.
|
||||||
|
|
||||||
|
Tested on:
|
||||||
|
WindowMaker-0.20.3
|
||||||
|
WindowMaker-0.50.2
|
||||||
|
X Clients: Red Hat 5.0, Red Hat 6.0, HP-UX 10.20
|
||||||
|
X Servers: XFree86, Exceed, AccelX
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
USAGE:
|
||||||
|
------
|
||||||
|
|
||||||
|
usage: wmcp [-g geometry] [-d dpy] [-n workspaces] [-a alt key] [-v]
|
||||||
|
[-c] [-w i/n/w] [-s y/n] [-x #] [-y #] [-h]
|
||||||
|
|
||||||
|
-g geometry: ie: 64x64+10+10
|
||||||
|
-d dpy: Display. ie: 127.0.0.1:0.0
|
||||||
|
-n workspaces: How many buttons to start with.
|
||||||
|
-a alt key: integer 1-4 defining ModXMask (default 1 Mod1Mask).
|
||||||
|
-w i/n/w: Window State: Iconic, Normal, Withdrawn (default Withdrawn)
|
||||||
|
-s y/n: Shaped window: yes or no (default y)
|
||||||
|
-c Sends CTRL + ALT + Key (default only sends ALT + key)
|
||||||
|
-v Verbose. 0=off, 1=on (default 0)
|
||||||
|
-x # Number of buttons on the x-direction (1,2,3 or 4)
|
||||||
|
-y # Number of buttons in the y-direction (1,2,3 or 4)
|
||||||
|
-h Help. This screen.
|
||||||
|
|
||||||
|
|
||||||
|
Left mouse button:
|
||||||
|
Selects the workspace to switch to.
|
||||||
|
|
||||||
|
Right / Middle mouse buttons:
|
||||||
|
Change the number of buttons displayed.
|
||||||
|
|
||||||
|
|
||||||
|
EXAMPLES:
|
||||||
|
---------
|
||||||
|
Use all defaults. Good for WindowMaker.
|
||||||
|
mwdl
|
||||||
|
|
||||||
|
Normal X window, non shaped window, send CTRL + ALT + key
|
||||||
|
wmdl -w n -s n -c
|
||||||
|
|
||||||
|
2x2 button grid:
|
||||||
|
wmdl -x 2 -y 2
|
||||||
|
|
||||||
|
2x3 button grid:
|
||||||
|
wmdl -x 2 -y 3
|
||||||
|
|
||||||
|
|
||||||
|
NOTES:
|
||||||
|
------
|
||||||
|
|
||||||
|
This pager works by sending synthetic ALT + number key press events to the
|
||||||
|
root window. The "-c" command line switch makes the application send
|
||||||
|
a CNTRL + ALT + number key which might be of use in another window manager.
|
||||||
|
|
||||||
|
Because the ALT key may have different key codes on different X servers,
|
||||||
|
you can use the -a command line switch to change which meta key is used.
|
||||||
|
I doubt anyone will ever have to do this though. The Mod1Mask which is the
|
||||||
|
program's default seems to work on most if not all systems.
|
||||||
|
|
||||||
|
I don't know of any Window Maker hooks for determining things like how
|
||||||
|
may workspaces are actually in use. If any one know about this stuff, please
|
||||||
|
let me know.
|
||||||
|
|
||||||
|
It is very easy to change the look of wmcp by editing the colors in the
|
||||||
|
pixmap files. Someday we'll add an official 'skins' ability but for now
|
||||||
|
just edit the xpm files to change the colors etc.
|
||||||
|
|
||||||
|
This program is released under the GPL license and has been created by looking
|
||||||
|
a lot at the code for wmppp, wmtime, wmload and various other Window Maker
|
||||||
|
resources and info on the Web and Usenet.
|
||||||
|
|
||||||
|
|
||||||
|
BTW, the one true enlightened way is "Sloppy Focus."
|
||||||
|
|
||||||
|
|
||||||
|
CHANGE LOG:
|
||||||
|
-----------
|
||||||
|
|
||||||
|
1.2.8 May 25, 1999 -- Gert Beumer
|
||||||
|
Added -x and -y functionality to configure the amount of buttons.
|
||||||
|
Changed the rendering of the buttons from the pixmap
|
||||||
|
(to suport multiple button startup)
|
||||||
|
|
||||||
|
1.2.6 Feb 11, 1999
|
||||||
|
Once again changed the button XPM styling.
|
||||||
|
Added window state = Iconic, Normal, or Withdrawn.
|
||||||
|
Added shaped window = yes or no.
|
||||||
|
CTRL + ALT code added by -- Craig Maloney <craig@ic.net>.
|
||||||
|
|
||||||
|
1.2.5 Jan 25, 1999
|
||||||
|
Made buttons flat style ala Ghostview 3.5.8
|
||||||
|
|
||||||
|
1.2 Jan 24, 1999
|
||||||
|
Pushed button images added by Thomas Nemeth <tnemeth@multimania.com>
|
||||||
|
|
||||||
|
1.1 Dec 24ish, 1998
|
||||||
|
Origional version.
|
||||||
|
|
||||||
|
TODO:
|
||||||
|
-----
|
||||||
|
|
||||||
|
Add a simple method for changing 'skins' other than just editing the XPM
|
||||||
|
files by hand.
|
||||||
|
|
||||||
|
Add catching Window Maker's events to know how to refresh the pager when
|
||||||
|
the current workspace is changed via the clip, and how to get the number
|
||||||
|
of workspaces actually in use.
|
||||||
|
|
||||||
|
|
||||||
|
Please send comments, flames, etc to buddog@aztec.asu.edu
|
||||||
|
|
||||||
|
- Ben Cohen
|
||||||
|
|
||||||
|
|
75
wmcp/backdrop-gv.xpm
Normal file
75
wmcp/backdrop-gv.xpm
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *backdrop_xpm[] = {
|
||||||
|
/* width height num_colors chars_per_pixel */
|
||||||
|
" 64 64 3 1",
|
||||||
|
/* colors */
|
||||||
|
"# c #9D906D",
|
||||||
|
"a c #000000",
|
||||||
|
"i c #c8c0b0",
|
||||||
|
/* pixels */
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########",
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"########iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
};
|
||||||
|
|
75
wmcp/backdrop-scalpel.xpm
Normal file
75
wmcp/backdrop-scalpel.xpm
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *backdrop_xpm[] = {
|
||||||
|
/* width height num_colors chars_per_pixel */
|
||||||
|
" 64 64 3 1",
|
||||||
|
/* colors */
|
||||||
|
"# c #9D906D",
|
||||||
|
"a c #000000",
|
||||||
|
"i c #313121",
|
||||||
|
/* pixels */
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########",
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"aaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"########iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii########",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
"################################################################",
|
||||||
|
};
|
||||||
|
|
1
wmcp/backdrop.xpm
Symbolic link
1
wmcp/backdrop.xpm
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
backdrop-scalpel.xpm
|
66
wmcp/buttons-gv.xpm
Normal file
66
wmcp/buttons-gv.xpm
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *buttons_xpm[] = {
|
||||||
|
/* width height num_colors chars_per_pixel */
|
||||||
|
" 48 53 6 1",
|
||||||
|
/* colors */
|
||||||
|
". c #000000",
|
||||||
|
"# c #787468",
|
||||||
|
"a c #b0b4b0",
|
||||||
|
" c #c8c0b0",
|
||||||
|
"c c #f8e8d8",
|
||||||
|
"R c #FF0000",
|
||||||
|
/* pixels */
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||||
|
"aa#############################################a",
|
||||||
|
"aa#cccccccccccccccccccccccccccccccccccccccccc#ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c##########################################ca",
|
||||||
|
"aa#cccccccccccccccccccccccccccccccccccccccccccca",
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||||
|
" .. .... .... . ...... ... .... ... ... ",
|
||||||
|
" . . .. .. . .. .. . ",
|
||||||
|
" . .. ... ......... .... . ... .... ",
|
||||||
|
" . . . . .. . .. . . ",
|
||||||
|
" ... ......... .... ... . ... ... ",
|
||||||
|
};
|
66
wmcp/buttons-scalpel.xpm
Normal file
66
wmcp/buttons-scalpel.xpm
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *buttons_xpm[] = {
|
||||||
|
/* width height num_colors chars_per_pixel */
|
||||||
|
" 48 53 6 1",
|
||||||
|
/* colors */
|
||||||
|
". c #313121",
|
||||||
|
"# c #000000",
|
||||||
|
"a c #313121",
|
||||||
|
" c #635842",
|
||||||
|
"c c #9D906D",
|
||||||
|
"R c #FF0000",
|
||||||
|
/* pixels */
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||||
|
"a##############################################a",
|
||||||
|
"a#cccccccccccccccccccccccccccccccccccccccccccc#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#cccccccccccccccccccccccccccccccccccccccccccc#a",
|
||||||
|
"a##############################################a",
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||||
|
" .. .... .... . ...... ... .... ... ... ",
|
||||||
|
" . . .. .. . .. .. . ",
|
||||||
|
" . .. ... ......... .... . ... .... ",
|
||||||
|
" . . . . .. . .. . . ",
|
||||||
|
" ... ......... .... ... . ... ... ",
|
||||||
|
};
|
1
wmcp/buttons.xpm
Symbolic link
1
wmcp/buttons.xpm
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
buttons-scalpel.xpm
|
68
wmcp/mask-scalpel.xbm
Normal file
68
wmcp/mask-scalpel.xbm
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
#define mask_width 64
|
||||||
|
#define mask_height 64
|
||||||
|
|
||||||
|
static char mask_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
1
wmcp/mask.xbm
Symbolic link
1
wmcp/mask.xbm
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
mask-scalpel.xbm
|
66
wmcp/pushed_buttons-gv.xpm
Normal file
66
wmcp/pushed_buttons-gv.xpm
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *pushed_buttons_xpm[] = {
|
||||||
|
/* width height num_colors chars_per_pixel */
|
||||||
|
" 48 53 6 1",
|
||||||
|
/* colors */
|
||||||
|
". c #000000",
|
||||||
|
"# c #787468",
|
||||||
|
"a c #b0b4b0",
|
||||||
|
" c #e8dcc8",
|
||||||
|
"c c #f8e8d8",
|
||||||
|
"R c #FF0000",
|
||||||
|
/* pixels */
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||||
|
"aa#############################################a",
|
||||||
|
"aa#cccccccccccccccccccccccccccccccccccccccccc#ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c #ca",
|
||||||
|
"aa#c##########################################ca",
|
||||||
|
"aa#cccccccccccccccccccccccccccccccccccccccccccca",
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||||
|
" .. .... .... . ...... ... .... ... ... ",
|
||||||
|
" . . .. .. . .. .. . ",
|
||||||
|
" . .. ... ......... .... . ... .... ",
|
||||||
|
" . . . . .. . .. . . ",
|
||||||
|
" ... ......... .... ... . ... ... ",
|
||||||
|
};
|
67
wmcp/pushed_buttons-scalpel.xpm
Normal file
67
wmcp/pushed_buttons-scalpel.xpm
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *pushed_buttons_xpm[] = {
|
||||||
|
/* width height num_colors chars_per_pixel */
|
||||||
|
" 48 53 6 1",
|
||||||
|
/* colors */
|
||||||
|
". c #F6DEB3",
|
||||||
|
"# c #000000",
|
||||||
|
"a c #313121",
|
||||||
|
" c #635842",
|
||||||
|
"c c #9D906D",
|
||||||
|
"R c #FF0000",
|
||||||
|
/* pixels */
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||||
|
"a##############################################a",
|
||||||
|
"a#cccccccccccccccccccccccccccccccccccccccccccc#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#c c#a",
|
||||||
|
"a#cccccccccccccccccccccccccccccccccccccccccccc#a",
|
||||||
|
"a##############################################a",
|
||||||
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||||
|
" .. .... .... . ...... ... .... ... ... ",
|
||||||
|
" . . .. .. . .. .. . ",
|
||||||
|
" . .. ... ......... .... . ... .... ",
|
||||||
|
" . . . . .. . .. . . ",
|
||||||
|
" ... ......... .... ... . ... ... ",
|
||||||
|
|
||||||
|
};
|
1
wmcp/pushed_buttons.xpm
Symbolic link
1
wmcp/pushed_buttons.xpm
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
pushed_buttons-scalpel.xpm
|
859
wmcp/wmcp.c
Normal file
859
wmcp/wmcp.c
Normal file
|
@ -0,0 +1,859 @@
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* Code is stol^H^H^H^Hbased on wmppp, wmload, and wmtme
|
||||||
|
*
|
||||||
|
* Author: Ben Cohen <buddog@aztec.asu.edu>
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Thomas Nemeth <tnemeth@multimania.com> -- Pushed button highlighting
|
||||||
|
* Craig Maloney <craig@ic.net> -- CTRL + ALT + key option
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* This program is distributed under the GPL license.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Best viewed with tab = 4 ( in vi set ts=4 )
|
||||||
|
*
|
||||||
|
***********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define VERSION "Ver 1.2.8 -- May 25, 1999"
|
||||||
|
|
||||||
|
#include <Xlib.h>
|
||||||
|
#include <Xutil.h>
|
||||||
|
#include <xpm.h>
|
||||||
|
#include <extensions/shape.h>
|
||||||
|
#include <keysym.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
#include "backdrop.xpm"
|
||||||
|
#include "buttons.xpm"
|
||||||
|
#include "pushed_buttons.xpm"
|
||||||
|
#include "mask.xbm"
|
||||||
|
|
||||||
|
#define NO (0)
|
||||||
|
#define YES (1)
|
||||||
|
|
||||||
|
#define MAX_X_BUT 4
|
||||||
|
#define MAX_Y_BUT 4
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* Globals.. OK.. there's too many globals.. so sue me.
|
||||||
|
***********************************************************************/
|
||||||
|
|
||||||
|
Display * display;
|
||||||
|
int screen;
|
||||||
|
Window rootwin, win, iconwin;
|
||||||
|
GC gc;
|
||||||
|
int depth;
|
||||||
|
Pixel bg_pixel, fg_pixel;
|
||||||
|
|
||||||
|
XSizeHints xsizehints;
|
||||||
|
XWMHints * xwmhints;
|
||||||
|
XClassHint xclasshint;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _XpmIcon {
|
||||||
|
Pixmap pixmap;
|
||||||
|
Pixmap mask;
|
||||||
|
XpmAttributes attributes;
|
||||||
|
} XpmIcon;
|
||||||
|
|
||||||
|
|
||||||
|
Pixmap pixmask;
|
||||||
|
|
||||||
|
typedef struct _button_region {
|
||||||
|
int x,y;
|
||||||
|
int i,j;
|
||||||
|
} ButtonArea;
|
||||||
|
|
||||||
|
ButtonArea button_region[16];
|
||||||
|
|
||||||
|
XpmIcon template, visible, buttons, pbuttons;
|
||||||
|
|
||||||
|
unsigned int control = 0;
|
||||||
|
|
||||||
|
int numb_of_workspaces = 16; /* Number of buttons to display.
|
||||||
|
Initially set high. Changed by
|
||||||
|
-n switch or button 2or3 */
|
||||||
|
|
||||||
|
int N = 1; /* Button number pressed to goto WS */
|
||||||
|
int B = 1; /* Button number pressed to number WS's */
|
||||||
|
int alt_key_type = 1;
|
||||||
|
int border = 5;
|
||||||
|
int Verbose = 0;
|
||||||
|
|
||||||
|
char * app_name = "wmcp";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* Function Prototypes
|
||||||
|
***********************************************************************/
|
||||||
|
|
||||||
|
void switchToWorkspaceN( int workspace );
|
||||||
|
void redraw( int xbut, int ybut );
|
||||||
|
void getPixmaps();
|
||||||
|
int whichButton( int x, int y, int xbut, int ybut );
|
||||||
|
int flush_expose(Window w);
|
||||||
|
void show_usage();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* main
|
||||||
|
***********************************************************************/
|
||||||
|
|
||||||
|
int main( int argc, char ** argv )
|
||||||
|
{
|
||||||
|
XEvent report;
|
||||||
|
XGCValues xgcValues;
|
||||||
|
|
||||||
|
XTextProperty app_name_atom;
|
||||||
|
|
||||||
|
int dummy = 0;
|
||||||
|
int i;
|
||||||
|
int xbut = 2;
|
||||||
|
int ybut = 2;
|
||||||
|
|
||||||
|
int is_shaped = YES;
|
||||||
|
int window_state = WithdrawnState;
|
||||||
|
|
||||||
|
char Geometry_str[64] = "64x64+5+5";
|
||||||
|
char Display_str[64] = "";
|
||||||
|
|
||||||
|
|
||||||
|
/* Parse Command Line Arguments */
|
||||||
|
|
||||||
|
for ( i=1; i<argc; i++ ) {
|
||||||
|
if ( *argv[i] == '-' ) {
|
||||||
|
switch ( *(argv[i]+1) ) {
|
||||||
|
case 'v':
|
||||||
|
Verbose = 1;
|
||||||
|
break;
|
||||||
|
case 'g':
|
||||||
|
if ( ++i >= argc ) show_usage();
|
||||||
|
sscanf(argv[i], "%s", Geometry_str);
|
||||||
|
if ( Verbose ) printf("Geometry is: %s\n", Geometry_str);
|
||||||
|
break;
|
||||||
|
case 'd':
|
||||||
|
if ( ++i >= argc ) show_usage();
|
||||||
|
sscanf(argv[i], "%s", Display_str);
|
||||||
|
if ( Verbose ) printf("Display is: %s\n", Display_str);
|
||||||
|
break;
|
||||||
|
case 'n':
|
||||||
|
if ( ++i >= argc ) show_usage();
|
||||||
|
sscanf(argv[i], "%d", &numb_of_workspaces);
|
||||||
|
if ( Verbose )
|
||||||
|
printf("Numb of Workspaces: %d\n", numb_of_workspaces);
|
||||||
|
break;
|
||||||
|
case 's':
|
||||||
|
if ( ++i >= argc ) show_usage();
|
||||||
|
if ( *argv[i] == 'n' ) {
|
||||||
|
is_shaped = NO;
|
||||||
|
} else {
|
||||||
|
is_shaped = YES;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'w':
|
||||||
|
if ( ++i >= argc ) show_usage();
|
||||||
|
switch ( *argv[i] ) {
|
||||||
|
case 'i':
|
||||||
|
window_state = IconicState;
|
||||||
|
break;
|
||||||
|
case 'w':
|
||||||
|
window_state = WithdrawnState;
|
||||||
|
break;
|
||||||
|
case 'n':
|
||||||
|
window_state = NormalState;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'x':
|
||||||
|
if ( ++i >= argc ) show_usage();
|
||||||
|
sscanf(argv[i], "%d", &xbut);
|
||||||
|
if ( xbut < 1 || xbut > MAX_X_BUT ) xbut = 3;
|
||||||
|
if ( Verbose ) printf("Num X buttons=%d\n", xbut);
|
||||||
|
break;
|
||||||
|
case 'y':
|
||||||
|
if ( ++i >= argc ) show_usage();
|
||||||
|
sscanf(argv[i], "%d", &ybut);
|
||||||
|
if ( ybut < 1 || ybut > MAX_Y_BUT ) ybut = 3;
|
||||||
|
if ( Verbose ) printf("Num Y buttons=%d\n", ybut);
|
||||||
|
break;
|
||||||
|
case 'a':
|
||||||
|
if ( ++i >= argc ) show_usage();
|
||||||
|
sscanf(argv[i], "%d", &alt_key_type);
|
||||||
|
if ( Verbose ) printf("Alt Key is: %d\n", alt_key_type);
|
||||||
|
break;
|
||||||
|
case 'c':
|
||||||
|
control=ControlMask;
|
||||||
|
if ( Verbose ) printf ("Control Key Modifier added\n");
|
||||||
|
break;
|
||||||
|
case 'h':
|
||||||
|
show_usage();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ( (display = XOpenDisplay(Display_str)) == NULL ) {
|
||||||
|
fprintf(stderr,"Fail: XOpenDisplay for %s\n", Display_str);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
screen = DefaultScreen(display);
|
||||||
|
rootwin = RootWindow(display,screen);
|
||||||
|
depth = DefaultDepth(display, screen);
|
||||||
|
|
||||||
|
bg_pixel = WhitePixel(display, screen );
|
||||||
|
fg_pixel = BlackPixel(display, screen );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
xsizehints.flags = USSize | USPosition;
|
||||||
|
xsizehints.width = 64;
|
||||||
|
xsizehints.height = 64;
|
||||||
|
|
||||||
|
|
||||||
|
/* Parse Geometry string and fill in sizehints fields */
|
||||||
|
|
||||||
|
XWMGeometry(display, screen,
|
||||||
|
Geometry_str,
|
||||||
|
NULL,
|
||||||
|
border,
|
||||||
|
&xsizehints,
|
||||||
|
&xsizehints.x,
|
||||||
|
&xsizehints.y,
|
||||||
|
&xsizehints.width,
|
||||||
|
&xsizehints.height,
|
||||||
|
&dummy);
|
||||||
|
|
||||||
|
|
||||||
|
if ( (win = XCreateSimpleWindow(
|
||||||
|
display,
|
||||||
|
rootwin,
|
||||||
|
xsizehints.x,
|
||||||
|
xsizehints.y,
|
||||||
|
xsizehints.width,
|
||||||
|
xsizehints.height,
|
||||||
|
border,
|
||||||
|
fg_pixel, bg_pixel) ) == 0 ) {
|
||||||
|
fprintf(stderr,"Fail: XCreateSimpleWindow\n");
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( (iconwin = XCreateSimpleWindow(
|
||||||
|
display,
|
||||||
|
win,
|
||||||
|
xsizehints.x,
|
||||||
|
xsizehints.y,
|
||||||
|
xsizehints.width,
|
||||||
|
xsizehints.height,
|
||||||
|
border,
|
||||||
|
fg_pixel, bg_pixel) ) == 0 ) {
|
||||||
|
fprintf(stderr,"Fail: XCreateSimpleWindow\n");
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Set up shaped windows */
|
||||||
|
/* Gives the appicon a border so you can grab and move it. */
|
||||||
|
|
||||||
|
if ( is_shaped == YES ) {
|
||||||
|
if ( ( pixmask = XCreateBitmapFromData(display, win,
|
||||||
|
mask_bits, mask_width, mask_height) ) == 0 ) {
|
||||||
|
fprintf(stderr,"Fail: XCreateBitmapFromData\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
XShapeCombineMask(display,win, ShapeBounding,0,0, pixmask,ShapeSet);
|
||||||
|
XShapeCombineMask(display,iconwin,ShapeBounding,0,0, pixmask,ShapeSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Convert in pixmaps from .xpm includes. */
|
||||||
|
getPixmaps();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Interclient Communication stuff */
|
||||||
|
/* Appicons don't work with out this stuff */
|
||||||
|
|
||||||
|
xwmhints = XAllocWMHints();
|
||||||
|
xwmhints->flags = WindowGroupHint | IconWindowHint | StateHint;
|
||||||
|
xwmhints->icon_window = iconwin;
|
||||||
|
xwmhints->window_group = win;
|
||||||
|
xwmhints->initial_state = window_state;
|
||||||
|
|
||||||
|
|
||||||
|
XSetWMHints( display, win, xwmhints );
|
||||||
|
|
||||||
|
xclasshint.res_name = "wmcp";
|
||||||
|
xclasshint.res_class = "WMcp";
|
||||||
|
XSetClassHint( display, win, &xclasshint );
|
||||||
|
|
||||||
|
XSetWMNormalHints( display, win, &xsizehints );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Tell window manager what the title bar name is. We never see */
|
||||||
|
/* this anyways in the WithdrawnState */
|
||||||
|
|
||||||
|
if ( XStringListToTextProperty(&app_name, 1, &app_name_atom) == 0 ) {
|
||||||
|
fprintf(stderr,"%s: Can't set up window name\n", app_name);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
XSetWMName( display, win, &app_name_atom );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Create Graphic Context */
|
||||||
|
|
||||||
|
if ( (gc = XCreateGC(
|
||||||
|
display,
|
||||||
|
win,
|
||||||
|
(GCForeground | GCBackground),
|
||||||
|
&xgcValues)) == NULL ) {
|
||||||
|
fprintf(stderr,"Fail: XCreateGC\n");
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* XEvent Masks. We want both window to process X events */
|
||||||
|
|
||||||
|
XSelectInput(
|
||||||
|
display,
|
||||||
|
win,
|
||||||
|
ExposureMask |
|
||||||
|
ButtonPressMask |
|
||||||
|
PointerMotionMask |
|
||||||
|
StructureNotifyMask );
|
||||||
|
|
||||||
|
XSelectInput(
|
||||||
|
display,
|
||||||
|
iconwin,
|
||||||
|
ExposureMask |
|
||||||
|
ButtonPressMask |
|
||||||
|
PointerMotionMask |
|
||||||
|
StructureNotifyMask );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Store the 'state' of the application for restarting */
|
||||||
|
|
||||||
|
XSetCommand( display, win, argv, argc );
|
||||||
|
|
||||||
|
|
||||||
|
/* Window won't ever show up until it is mapped.. then drawn after a */
|
||||||
|
/* ConfigureNotify */
|
||||||
|
|
||||||
|
XMapWindow( display, win );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* X Event Loop */
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
XNextEvent(display, &report );
|
||||||
|
switch (report.type) {
|
||||||
|
|
||||||
|
|
||||||
|
case Expose:
|
||||||
|
if (report.xexpose.count != 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ( Verbose ) fprintf(stdout,"Event: Expose\n");
|
||||||
|
redraw( xbut, ybut );
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
case ConfigureNotify:
|
||||||
|
if ( Verbose ) fprintf(stdout,"Event: ConfigureNotify\n");
|
||||||
|
redraw( xbut, ybut );
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
case ButtonPress:
|
||||||
|
if ( Verbose )
|
||||||
|
printf ("numb_of_workspaces=%d\n", numb_of_workspaces);
|
||||||
|
switch (report.xbutton.button) {
|
||||||
|
case Button1:
|
||||||
|
N = whichButton(report.xbutton.x, report.xbutton.y, xbut, ybut );
|
||||||
|
if ( N >= 0 && N <= numb_of_workspaces ) {
|
||||||
|
switchToWorkspaceN( N );
|
||||||
|
redraw(xbut, ybut);
|
||||||
|
}
|
||||||
|
if ( Verbose )
|
||||||
|
fprintf(stdout,"Button 1:x=%d y=%d N=%d\n",
|
||||||
|
report.xbutton.x, report.xbutton.y, N);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Button2:
|
||||||
|
case Button3:
|
||||||
|
B = whichButton(report.xbutton.x, report.xbutton.y, xbut, ybut );
|
||||||
|
if ( B >= 0 && B <= 9 ) {
|
||||||
|
numb_of_workspaces = B;
|
||||||
|
redraw(xbut, ybut);
|
||||||
|
}
|
||||||
|
if ( Verbose )
|
||||||
|
fprintf(stdout,"Button 2or3:x=%d y=%d B=%d\n",
|
||||||
|
report.xbutton.x, report.xbutton.y, B);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
case DestroyNotify:
|
||||||
|
if ( Verbose )
|
||||||
|
fprintf(stdout, "Bye\n");
|
||||||
|
XFreeGC(display, gc);
|
||||||
|
XDestroyWindow(display,win);
|
||||||
|
XDestroyWindow(display,iconwin);
|
||||||
|
XCloseDisplay(display);
|
||||||
|
if ( Verbose )
|
||||||
|
fprintf(stdout, "Bye\n");
|
||||||
|
exit(0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* redraw
|
||||||
|
*
|
||||||
|
* Map the button region coordinates.
|
||||||
|
*
|
||||||
|
* Draw the appropriate number of buttons on the 'visible' Pixmap
|
||||||
|
* using data from the 'buttons' pixmap.
|
||||||
|
*
|
||||||
|
* Then, copy the 'visible' pixmap to the two windows ( the withdrawn
|
||||||
|
* main window and the icon window which is the main window's icon image.)
|
||||||
|
*
|
||||||
|
***********************************************************************/
|
||||||
|
|
||||||
|
void redraw( int xbut, int ybut )
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
int i,j;
|
||||||
|
int dest_x, dest_y; /* size of a whole button */
|
||||||
|
int step_x, step_y; /* size of half a button for corner copying */
|
||||||
|
|
||||||
|
int offset = 8; /* skip pixels past the window's border image */
|
||||||
|
|
||||||
|
int xbut_size;
|
||||||
|
int ybut_size;
|
||||||
|
|
||||||
|
|
||||||
|
xbut_size = 48 / xbut;
|
||||||
|
ybut_size = 48 / ybut;
|
||||||
|
|
||||||
|
|
||||||
|
XCopyArea( display,
|
||||||
|
template.pixmap, visible.pixmap,
|
||||||
|
gc,
|
||||||
|
0, 0,
|
||||||
|
template.attributes.width,
|
||||||
|
template.attributes.height,
|
||||||
|
0, 0 );
|
||||||
|
|
||||||
|
|
||||||
|
for ( j=0; j < ybut; j++ ) {
|
||||||
|
for ( i=0; i < xbut; i++ ) {
|
||||||
|
n = i + j * xbut;
|
||||||
|
|
||||||
|
dest_x = ( i * xbut_size ) + offset;
|
||||||
|
dest_y = ( j * ybut_size ) + offset;
|
||||||
|
step_x = 24 / xbut;
|
||||||
|
step_y = 24 / ybut;
|
||||||
|
|
||||||
|
/* Define button mouse coords */
|
||||||
|
|
||||||
|
button_region[n].x = dest_x;
|
||||||
|
button_region[n].y = dest_y;
|
||||||
|
button_region[n].i = dest_x + xbut_size - 1;
|
||||||
|
button_region[n].j = dest_y + ybut_size - 1;
|
||||||
|
|
||||||
|
|
||||||
|
/* Copy button images for valid workspaces */
|
||||||
|
|
||||||
|
if ( (n + 1) <= numb_of_workspaces ) {
|
||||||
|
|
||||||
|
/* Draw normal button */
|
||||||
|
/* Edited by Gert Beumer */
|
||||||
|
if ( (n + 1) != N ) {
|
||||||
|
|
||||||
|
/* upper left */
|
||||||
|
XCopyArea( display,
|
||||||
|
buttons.pixmap,
|
||||||
|
visible.pixmap,
|
||||||
|
gc,
|
||||||
|
0,0,
|
||||||
|
step_x, step_y,
|
||||||
|
dest_x,
|
||||||
|
dest_y);
|
||||||
|
/* lowwer left */
|
||||||
|
XCopyArea( display,
|
||||||
|
buttons.pixmap,
|
||||||
|
visible.pixmap,
|
||||||
|
gc,
|
||||||
|
0,48 - step_y,
|
||||||
|
step_x, step_y,
|
||||||
|
dest_x,
|
||||||
|
dest_y + step_y);
|
||||||
|
/* lowwer right */
|
||||||
|
XCopyArea( display,
|
||||||
|
buttons.pixmap,
|
||||||
|
visible.pixmap,
|
||||||
|
gc,
|
||||||
|
48 - step_x,48 - step_y,
|
||||||
|
step_x, step_y,
|
||||||
|
dest_x + step_x,
|
||||||
|
dest_y + step_y);
|
||||||
|
/* upper right */
|
||||||
|
XCopyArea( display,
|
||||||
|
buttons.pixmap,
|
||||||
|
visible.pixmap,
|
||||||
|
gc,
|
||||||
|
48 - step_x,0,
|
||||||
|
step_x, step_y,
|
||||||
|
dest_x + step_x,
|
||||||
|
dest_y);
|
||||||
|
|
||||||
|
/* Draw the numbers */
|
||||||
|
XCopyArea( display,
|
||||||
|
buttons.pixmap,
|
||||||
|
visible.pixmap,
|
||||||
|
gc,
|
||||||
|
n * 5,
|
||||||
|
48,
|
||||||
|
5,5,
|
||||||
|
dest_x + (48 - xbut * 5) / (2 * xbut),
|
||||||
|
dest_y + (48 - ybut * 5) / (2 * ybut));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Draw pushed button */
|
||||||
|
/* Added by Thomas Nemeth, Edited by Gert Beumer */
|
||||||
|
if ( (n + 1) == N ) {
|
||||||
|
/* draw the four parts */
|
||||||
|
|
||||||
|
/* upper left */
|
||||||
|
XCopyArea( display,
|
||||||
|
pbuttons.pixmap,
|
||||||
|
visible.pixmap,
|
||||||
|
gc,
|
||||||
|
0,0,
|
||||||
|
step_x, step_y,
|
||||||
|
dest_x,
|
||||||
|
dest_y);
|
||||||
|
/* lowwer left */
|
||||||
|
XCopyArea( display,
|
||||||
|
pbuttons.pixmap,
|
||||||
|
visible.pixmap,
|
||||||
|
gc,
|
||||||
|
0,48 - step_y,
|
||||||
|
step_x, step_y,
|
||||||
|
dest_x,
|
||||||
|
dest_y + step_y);
|
||||||
|
/* lowwer right */
|
||||||
|
XCopyArea( display,
|
||||||
|
pbuttons.pixmap,
|
||||||
|
visible.pixmap,
|
||||||
|
gc,
|
||||||
|
48 - step_x,48 - step_y,
|
||||||
|
step_x, step_y,
|
||||||
|
dest_x + step_x,
|
||||||
|
dest_y + step_y);
|
||||||
|
/* upper right */
|
||||||
|
XCopyArea( display,
|
||||||
|
pbuttons.pixmap,
|
||||||
|
visible.pixmap,
|
||||||
|
gc,
|
||||||
|
48 - step_x,0,
|
||||||
|
step_x, step_y,
|
||||||
|
dest_x + step_x,
|
||||||
|
dest_y);
|
||||||
|
|
||||||
|
/* Draw the numbers */
|
||||||
|
XCopyArea( display,
|
||||||
|
pbuttons.pixmap,
|
||||||
|
visible.pixmap,
|
||||||
|
gc,
|
||||||
|
n * 5,
|
||||||
|
48,
|
||||||
|
5,5,
|
||||||
|
dest_x + (48 - xbut * 5) / (2 * xbut),
|
||||||
|
dest_y + (48 - ybut * 5) / (2 * ybut));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
flush_expose( win );
|
||||||
|
XCopyArea( display,
|
||||||
|
visible.pixmap, win, gc,
|
||||||
|
0, 0,
|
||||||
|
visible.attributes.width,
|
||||||
|
visible.attributes.height,
|
||||||
|
0, 0 );
|
||||||
|
|
||||||
|
flush_expose( iconwin );
|
||||||
|
XCopyArea( display,
|
||||||
|
visible.pixmap, iconwin, gc,
|
||||||
|
0, 0,
|
||||||
|
visible.attributes.width,
|
||||||
|
visible.attributes.height,
|
||||||
|
0, 0 );
|
||||||
|
|
||||||
|
|
||||||
|
if ( Verbose )
|
||||||
|
fprintf(stdout,"In Redraw()\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* whichButton
|
||||||
|
*
|
||||||
|
* Return the button that at the x,y coordinates. The button need not
|
||||||
|
* be visible ( drawn ). Return -1 if no button match.
|
||||||
|
*
|
||||||
|
***********************************************************************/
|
||||||
|
|
||||||
|
int whichButton( int x, int y, int xbut, int ybut )
|
||||||
|
{
|
||||||
|
int index;
|
||||||
|
|
||||||
|
for ( index=0; index< xbut*ybut; index++ ) {
|
||||||
|
if ( x >= button_region[index].x &&
|
||||||
|
x <= button_region[index].i &&
|
||||||
|
y >= button_region[index].y &&
|
||||||
|
y <= button_region[index].j ) {
|
||||||
|
return( index + 1 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* switchToWorkspaceN()
|
||||||
|
*
|
||||||
|
* Send the Synthetic Key Press event with the appropriate
|
||||||
|
* [ meta key + 1-4 key ] combo. Alt seems to usualy be Mod1Mask.
|
||||||
|
*
|
||||||
|
***********************************************************************/
|
||||||
|
|
||||||
|
void switchToWorkspaceN( int workspace ) {
|
||||||
|
|
||||||
|
XEvent sendEvent;
|
||||||
|
|
||||||
|
sendEvent.xkey.type = KeyPress;
|
||||||
|
sendEvent.xkey.window = rootwin;
|
||||||
|
sendEvent.xkey.root = rootwin;
|
||||||
|
sendEvent.xkey.subwindow = 0x0;
|
||||||
|
switch ( alt_key_type ) {
|
||||||
|
case 1:
|
||||||
|
sendEvent.xkey.state = Mod1Mask+control;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
sendEvent.xkey.state = Mod2Mask+control;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
sendEvent.xkey.state = Mod3Mask+control;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
sendEvent.xkey.state = Mod4Mask+control;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
sendEvent.xkey.keycode = XKeysymToKeycode(display, 0x30 + workspace );
|
||||||
|
sendEvent.xkey.same_screen = True;
|
||||||
|
sendEvent.xkey.display = display;
|
||||||
|
sendEvent.xkey.send_event = False;
|
||||||
|
|
||||||
|
XSendEvent( display, rootwin, True, KeyPressMask, &sendEvent );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* getPixmaps
|
||||||
|
*
|
||||||
|
* Load XPM data into X Pixmaps.
|
||||||
|
*
|
||||||
|
* Pixmap template contains the untouched window backdrop image.
|
||||||
|
* Pixmap visible is the template pixmap with buttons drawn on it.
|
||||||
|
* -- what is seen by the user.
|
||||||
|
* Pixmap buttons holds the images for individual buttons that are
|
||||||
|
* later copied onto Pixmap visible.
|
||||||
|
***********************************************************************/
|
||||||
|
void getPixmaps()
|
||||||
|
{
|
||||||
|
|
||||||
|
template.attributes.valuemask |=
|
||||||
|
(XpmReturnPixels | XpmReturnExtensions);
|
||||||
|
visible.attributes.valuemask |=
|
||||||
|
(XpmReturnPixels | XpmReturnExtensions);
|
||||||
|
buttons.attributes.valuemask |=
|
||||||
|
(XpmReturnPixels | XpmReturnExtensions);
|
||||||
|
|
||||||
|
/* Template Pixmap. Never Drawn To. */
|
||||||
|
if ( XpmCreatePixmapFromData( display,
|
||||||
|
rootwin,
|
||||||
|
backdrop_xpm,
|
||||||
|
&template.pixmap,
|
||||||
|
&template.mask,
|
||||||
|
&template.attributes) != XpmSuccess ) {
|
||||||
|
fprintf(stderr, "Can't Create 'template' Pixmap");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Visible Pixmap. Copied from template Pixmap and then drawn to. */
|
||||||
|
if ( XpmCreatePixmapFromData( display,
|
||||||
|
rootwin,
|
||||||
|
backdrop_xpm,
|
||||||
|
&visible.pixmap,
|
||||||
|
&visible.mask,
|
||||||
|
&visible.attributes) != XpmSuccess ) {
|
||||||
|
fprintf(stderr, "Can't Create 'visible' Pixmap");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Buttons Pixmap. */
|
||||||
|
if ( XpmCreatePixmapFromData( display,
|
||||||
|
rootwin,
|
||||||
|
buttons_xpm,
|
||||||
|
&buttons.pixmap,
|
||||||
|
&buttons.mask,
|
||||||
|
&buttons.attributes) != XpmSuccess ) {
|
||||||
|
fprintf(stderr, "Can't Create 'buttons' Pixmap");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pushed Buttons Pixmap. */
|
||||||
|
if ( XpmCreatePixmapFromData( display,
|
||||||
|
rootwin,
|
||||||
|
pushed_buttons_xpm,
|
||||||
|
&pbuttons.pixmap,
|
||||||
|
&pbuttons.mask,
|
||||||
|
&pbuttons.attributes) != XpmSuccess ) {
|
||||||
|
fprintf(stderr, "Can't Create 'pbuttons' Pixmap");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* flush_expose
|
||||||
|
*
|
||||||
|
* Everyone else has one of these... Can't hurt to throw it in.
|
||||||
|
*
|
||||||
|
***********************************************************************/
|
||||||
|
int flush_expose(Window w) {
|
||||||
|
|
||||||
|
XEvent dummy;
|
||||||
|
int i=0;
|
||||||
|
|
||||||
|
while (XCheckTypedWindowEvent(display, w, Expose, &dummy))
|
||||||
|
i++;
|
||||||
|
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* show_usage
|
||||||
|
*
|
||||||
|
***********************************************************************/
|
||||||
|
|
||||||
|
void show_usage()
|
||||||
|
{
|
||||||
|
|
||||||
|
fprintf(stderr,"
|
||||||
|
|
||||||
|
%s
|
||||||
|
This software is GPL -- do as you wish with it.
|
||||||
|
|
||||||
|
Origional Author:
|
||||||
|
Ben Cohen <buddog@aztec.asu.edu>
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Thomas Nemeth <tnemeth@multimania.com>
|
||||||
|
Craig Maloney <craig@ic.net>
|
||||||
|
Gert Beumer <Gert@scintilla.utwente.nl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
usage: wmcp [-g geometry] [-d dpy] [-n workspaces] [-a alt key] [-v]
|
||||||
|
[-c] [-w i/n/w] [-s y/n] [-x #] [-y #] [-h]
|
||||||
|
|
||||||
|
|
||||||
|
-g geometry: ie: 64x64+10+10
|
||||||
|
-d dpy: Display. ie: 127.0.0.1:0.0
|
||||||
|
-n workspaces: How many buttons to start with.
|
||||||
|
-a alt key: integer 1-4 defining ModXMask (default 1 Mod1Mask).
|
||||||
|
-w i/n/w: Window State: Iconic, Normal, Withdrawn (default Withdrawn)
|
||||||
|
-s y/n: Shaped window: yes or no (default y)
|
||||||
|
-c Sends CTRL + ALT + Key (default only sends ALT + key)
|
||||||
|
-v Verbose. 0=off, 1=on (default 0)
|
||||||
|
-x Number of buttons on the x-direction (1,2,3, or 4)
|
||||||
|
-y Number of buttons in the y-direction (1,2,3, or 4)
|
||||||
|
-h Help. This screen.
|
||||||
|
|
||||||
|
|
||||||
|
",VERSION);
|
||||||
|
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
KeyPress event, serial 13, synthetic NO, window 0x25,
|
||||||
|
root 0x25, subw 0x0, time 3340683384, (37,254), root:(37,254),
|
||||||
|
state 0x8, keycode 10 (keysym 0x31, 1), same_screen YES,
|
||||||
|
XLookupString gives 1 characters: "1"
|
||||||
|
|
||||||
|
KeyPress event, serial 13, synthetic YES, window 0xbffff9ac,
|
||||||
|
root 0x40009b48, subw 0x4000a670, time 2, (26460,-1352), root:(-1146,7),
|
||||||
|
state 0x7de0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
|
||||||
|
XLookupString gives 0 characters: ""
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue