wmbutton dockapp added
The original wmbutton 0.6.1 is added to the repository. wmbutton is a dockapp with nine buttons (3x3), capable of launch 27 different applications using the left, middle and right buttons.
This commit is contained in:
parent
8e7ead2816
commit
6dcdbf0e6e
47
wmbutton/.wmbutton
Normal file
47
wmbutton/.wmbutton
Normal file
|
@ -0,0 +1,47 @@
|
|||
# .wmbutton - Configuration file for wmbutton
|
||||
# Last Modified 03/21/04
|
||||
|
||||
# Buttons are numbered as follows
|
||||
# Left 1 2 3 Middle 11 12 13 Right 21 22 23
|
||||
# button 4 5 6 button 14 15 16 button 24 25 26
|
||||
# 7 8 9 17 18 19 27 28 29
|
||||
#
|
||||
|
||||
1 mozilla &
|
||||
11 mozilla -mail &
|
||||
21 firefox &
|
||||
|
||||
2 xterm -geometry 80x35 -sb -fg white -bg grey20 -T 'Xterm: User' &
|
||||
12 xterm -geometry 80x35 -sb -fg snow -bg midnightblue -T 'Xterm: Root' &
|
||||
22 gnome-terminal &
|
||||
|
||||
3 gftp &
|
||||
13 nxterm -fg black -bg grey70 -T 'FTP' -e ftp &
|
||||
23 jpilot &
|
||||
|
||||
4 ooffice &
|
||||
14 wordperfect &
|
||||
24 presentations &
|
||||
|
||||
5 gnucash &
|
||||
15 xterm -geometry 120x20 -fg white -bg grey20 -T 'Gnuplot' -e gnuplot &
|
||||
25 quattropro &
|
||||
|
||||
6 xemacs &
|
||||
16 xterm -geometry 80x35 -fg black -bg grey50 -T 'Pico Editor' -e pico -w &
|
||||
26 xterm -geometry 120x35 -fg black -bg grey70 -T 'WMButton Config Editor' -e pico -w ~/.wmbutton &
|
||||
|
||||
7 gimp &
|
||||
17 xfig &
|
||||
27 kpaint &
|
||||
|
||||
8 kghostview &
|
||||
18 ggv &
|
||||
28 xpdf &
|
||||
|
||||
9 xmms &
|
||||
19 xanim &
|
||||
29 gnome-sound-recorder &
|
||||
|
||||
# The above don't need to be in any particular order.
|
||||
# Repeated entries will be ignored
|
339
wmbutton/COPYING
Normal file
339
wmbutton/COPYING
Normal file
|
@ -0,0 +1,339 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
29
wmbutton/Makefile
Normal file
29
wmbutton/Makefile
Normal file
|
@ -0,0 +1,29 @@
|
|||
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 = -lX11 -lXpm -lXext
|
||||
|
||||
TARGET = wmbutton
|
||||
OBJECTS = wmbutton.o wmb_libs.o
|
||||
|
||||
CFLAGS += -c -Wall -O2
|
||||
|
||||
all: ${TARGET} tags
|
||||
|
||||
.c.o:
|
||||
gcc ${CFLAGS} ${INCLUDES} $< -o $*.o
|
||||
|
||||
${TARGET}: ${OBJECTS}
|
||||
gcc -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
|
||||
if [ -e tags ]; then rm tags; fi
|
||||
if [ -e core ]; then rm core; fi
|
||||
|
||||
wmbutton.o: wmbutton.c wmbutton.h Makefile
|
||||
|
||||
wmb_libs.o: wmb_libs.c wmbutton.h Makefile
|
||||
|
||||
tags:
|
||||
ctags *.[ch]
|
208
wmbutton/README
Normal file
208
wmbutton/README
Normal file
|
@ -0,0 +1,208 @@
|
|||
wmbutton Ver. 0 Rel 6.1
|
||||
-------------------------------------------------------------
|
||||
Code is based on wmppp, wmload, wmtime, wmcp, and asbutton
|
||||
Author: Edward H. Flora <ehf_dockapps@cox.net>
|
||||
This version is released by:
|
||||
Christian 'Greek0' Aichinger <Greek0@gmx.net>
|
||||
Ver 0 Rel 6.1 Jan 23, 2005
|
||||
|
||||
DESCRIPTION:
|
||||
------------
|
||||
wmbutton is a simple application launching program that sits in the
|
||||
dock in WindowMaker, can be swallowed by Wharf in Afterstep, and
|
||||
should be fairly configurable.
|
||||
|
||||
LICENSING:
|
||||
----------
|
||||
This program is released under the GPL license. A copy (in case you
|
||||
don't already have hundreds of them floating around) can be found in
|
||||
this distribution in the file COPYING
|
||||
|
||||
CONTRIBUTORS:
|
||||
-------------
|
||||
Christian 'Greek0' Aichinger <Greek0@gmx.net>
|
||||
Did some code cleanup and fixed several memory leaks.
|
||||
Ralf Horstmann <ralf.horstmann@gmx.de>
|
||||
Added ability to load pixmaps at startup,
|
||||
without having to re-compile
|
||||
Michael Cohrs <camico@users.sourceforge.net>
|
||||
Added Tool Tips, and updated graphics
|
||||
Bruno Essmann <essmann@users.sourceforge.net>)
|
||||
Creator of wmpager
|
||||
Ben Cohen <buddog@aztec.asu.edu>
|
||||
original author of wmcp (et al.)
|
||||
Thomas Nemeth <tnemeth@multimania.com>
|
||||
contributor to wmcp
|
||||
Casey Harkins <charkins@cs.wisc.edu>
|
||||
Bug fix reading config file path - 3/6/99
|
||||
Added button-presses, and other - denoted by *charkins*
|
||||
Michael Henderson <mghenderson@lanl.gov>
|
||||
Application ideas, suggestions
|
||||
Ryan ?? <pancake@mindspring.com>
|
||||
Modified wmbutton to asbutton.
|
||||
Note: asbutton is a seperate program, not associated
|
||||
with wmbutton (just as wmbutton is not associated
|
||||
with wmcp)
|
||||
Jon Bruno
|
||||
Web Page Development
|
||||
The contributors listed above are not necessarily involved with the
|
||||
development of wmbutton. I'm listing them here partially as thanks for
|
||||
helping out, catching bugs in the code, etc.
|
||||
|
||||
INSTALLATION:
|
||||
-------------
|
||||
Untar the file:
|
||||
tar xvzf wmbutton-0.5.tar.gz
|
||||
|
||||
CD to source directory:
|
||||
cd wmbutton-0.5
|
||||
|
||||
Edit background xpm, and buttons.xpm to your preferences
|
||||
There are icon files in ./icons to work from
|
||||
|
||||
Compile it:
|
||||
make clean; make
|
||||
|
||||
Copy the config file:
|
||||
cp .wmbutton ~
|
||||
|
||||
Put the executable somewhere in your path:
|
||||
mv wmbutton /usr/local/bin (or anyhere in your path)
|
||||
|
||||
Run it:
|
||||
wmbutton &
|
||||
|
||||
Grab the appicon and move it to the dock.
|
||||
Change the settings to start with Windowmaker
|
||||
|
||||
Afterstep Wharf 1.6.??:
|
||||
*Wharf wmbutton -Swallow "wmbutton" wmbutton &
|
||||
|
||||
***Note***:
|
||||
The appicon has only a two pixel border where you can grab
|
||||
and move it.
|
||||
|
||||
If make doesn't work, you may need to fiddle with the settings in
|
||||
the Makefile.
|
||||
|
||||
Tested on: (Well, it runs, I don't know if 'Tested' is quite right...)
|
||||
WindowMaker-0.80.1
|
||||
Afterstep 1.6.?
|
||||
Fluxbox 0.9.9
|
||||
Clients: Red Hat 8.x, Kernel 2.4.18
|
||||
|
||||
|
||||
USAGE:
|
||||
------
|
||||
wmbutton [-g geom] [-d dpy] [-f cfgfile] [-b btnfile] [-F <font>]
|
||||
[-v] [-s] [-n]
|
||||
|
||||
wmbutton Ver 0 Rel 6.1
|
||||
|
||||
-g <geometry> Window Geometry - ie: 64x64+10+10
|
||||
-d <display> Display - ie: 127.0.0.1:0.0
|
||||
-f <filename> Full path to configuration file.
|
||||
-b <filename> Full path to button xpm.
|
||||
-F <font> Custom tooltip font (e.g. -b\&h-lucidatypewriter-medium-*-*-*-12-*)
|
||||
-v Verbose Mode.
|
||||
-h Help. This message.
|
||||
-m Disable Middle Mouse functionality.
|
||||
-s Swap tooltip colors.
|
||||
-n Turn off tooltips.
|
||||
|
||||
Left mouse button:
|
||||
Selects the application to launch, numbered 1 through 9
|
||||
|
||||
Middle mouse button: (unless disabled (-m))
|
||||
Selects the application to launch, numbered 11 through 19
|
||||
|
||||
Right mouse button:
|
||||
Selects the application to launch, numbered 21 through 29
|
||||
|
||||
NOTES:
|
||||
------
|
||||
This is a simple application launching tool for use in WindowMaker, and
|
||||
possibly Afterstep. (Who knows, it should run for other window managers too,
|
||||
by why bother?? It is taken from wmcp, by Ben Cohen, and modified just
|
||||
enough to run applications rather than send ALT-[1..9] key sequences to
|
||||
WindowMaker. It has also taken some ideas from asbuttons, and
|
||||
included them back into the original. There may still be some code
|
||||
left over from wmcp that is no longer needed, but...
|
||||
|
||||
The mini-icons must be combined into a single graphic, buttons.xpm. The
|
||||
background border is defined in backdrop.xpm. Both must be edited in your
|
||||
favorite graphics editor (GIMP??), and then recompiled. wmbuttons uses a
|
||||
configuration file (usually ~/.wmbutton) for which applications to launch.
|
||||
There is no need to restart wmbuttons when simply changing the configuration,
|
||||
as wmbutton searches the file whenever a button is pressed.
|
||||
|
||||
As of release 0.5, you can also pass in your own pixmap file for the
|
||||
buttons, to override the buttons that are compiled it. This file should
|
||||
still have the same height and width so that it will make sense,
|
||||
though really you give it any XPM you want, but it will only display
|
||||
the upper left 54x54 pixel corner.
|
||||
|
||||
|
||||
An example file is included, related to the the buttons.xpm graphic file.
|
||||
|
||||
|
||||
CHANGE LOG:
|
||||
-----------
|
||||
0.6.1 Minor changes to the Makefile.
|
||||
0.6 Code cleanup and fixes for memory leaks by Christian 'Greek0' Aichinger.
|
||||
0.5 Added Modifications submitted by Ralf Horstmann.
|
||||
Load different pixmaps at start-up time, rather than having
|
||||
to compile them in. This also makes it much easier to run
|
||||
multiple copies.
|
||||
Added Modifications submitted by Michael Cohrs.
|
||||
Added Tool-Tips
|
||||
Updated default buttons.xpm graphics
|
||||
General Code clean-up, including export must functions to
|
||||
seperate C file, to reduce clutter.
|
||||
|
||||
0.4 Added Modifications submitted by Casey Harkins.
|
||||
Start application on mouse button release,
|
||||
Only start app if cursor is still on application button
|
||||
Added 3-D button press look
|
||||
Added new .wmbutton configuration file
|
||||
|
||||
0.3 Graphics changed to incorporate most changes made by asbutton
|
||||
Removed Middle/Right mouse click on button to turn off buttons
|
||||
after it.
|
||||
Added Middle and Right mouse buttons to run more Applications
|
||||
(Yes, you can now really run 27 different Apps from a single
|
||||
instance of wmbuttons, if you would want too...)
|
||||
Fixed bug for finding config file .wmbutton.
|
||||
It used to not look in the home directory, but in the
|
||||
startup directory. Thanks to Casey harkins for the fix.
|
||||
Included the icons directory from the asbutton distribution,
|
||||
plus a few more.
|
||||
|
||||
0.2 Added single configuration file, user selectable.
|
||||
|
||||
0.1 Origional version.
|
||||
Shamelessly taken from wmcp 1.2.5,
|
||||
by Ben Cohen <buddog@aztec.asu.edu>
|
||||
|
||||
TODO:
|
||||
-----
|
||||
Add ability (via config file) to use discrete 16x16 pixel icons for
|
||||
the buttons, rather than having to paste them all into the existing file.
|
||||
Make changing icons and/or background graphics easier.
|
||||
Allow for less than 9 icons, 4 would be nicer on the mini-icon size.
|
||||
|
||||
BUGS:
|
||||
-----
|
||||
Remember, they're just undocumented FEATURES!!!
|
||||
|
||||
Probably Lots. Send comments (preferably with fixes) to
|
||||
<ehf_dockapps@cox.net>
|
||||
|
||||
|
||||
Good Luck.
|
||||
|
||||
|
||||
"C code. C code run. Run, code, run.
|
||||
PLEASE!?!?!?!?!?!?"
|
||||
|
||||
|
126
wmbutton/backdrop.xpm
Normal file
126
wmbutton/backdrop.xpm
Normal file
|
@ -0,0 +1,126 @@
|
|||
/* XPM */
|
||||
static char * backdrop_xpm[] = {
|
||||
"64 64 59 1",
|
||||
" c None",
|
||||
". c #F3F3F3",
|
||||
"+ c #000000",
|
||||
"@ c #E0E0E0",
|
||||
"# c #516161",
|
||||
"$ c #A2A2B2",
|
||||
"% c #A2A2A2",
|
||||
"& c #A292B2",
|
||||
"* c #92A2A2",
|
||||
"= c #A292A2",
|
||||
"- c #9292A2",
|
||||
"; c #929292",
|
||||
"> c #9282A2",
|
||||
", c #829292",
|
||||
"' c #928292",
|
||||
") c #828292",
|
||||
"! c #828282",
|
||||
"~ c #827192",
|
||||
"{ c #615161",
|
||||
"] c #92A2B2",
|
||||
"^ c #9292B2",
|
||||
"/ c #8292A2",
|
||||
"( c #8282A2",
|
||||
"_ c #718292",
|
||||
": c #718282",
|
||||
"< c #282828",
|
||||
"[ c #515161",
|
||||
"} c #858595",
|
||||
"| c #C7C3C7",
|
||||
"1 c #515151",
|
||||
"2 c #827182",
|
||||
"3 c #415151",
|
||||
"4 c #514151",
|
||||
"5 c #717192",
|
||||
"6 c #717182",
|
||||
"7 c #717171",
|
||||
"8 c #414151",
|
||||
"9 c #617182",
|
||||
"0 c #415141",
|
||||
"a c #716182",
|
||||
"b c #414141",
|
||||
"c c #617171",
|
||||
"d c #413041",
|
||||
"e c #304141",
|
||||
"f c #716171",
|
||||
"g c #616171",
|
||||
"h c #616182",
|
||||
"i c #303030",
|
||||
"j c #616161",
|
||||
"k c #303041",
|
||||
"l c #516171",
|
||||
"m c #304130",
|
||||
"n c #615171",
|
||||
"o c #203030",
|
||||
"p c #302030",
|
||||
"q c #515171",
|
||||
"r c #202030",
|
||||
"s c #202020",
|
||||
"t c #413051",
|
||||
"...............................................................+",
|
||||
".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+",
|
||||
".@$%$%&%&%&%&*=-&*=-=-=---=--;>;>;>;>,>,>,')',')')'))!)))!~!~!{+",
|
||||
".@$$*$]$*$*$*&*&*^*-*-*-*-*-/---,-,-,>,>,(,>,(,),),)))))_)_):)#+",
|
||||
".@$%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~![+",
|
||||
".@]$<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:~1+",
|
||||
".@&%<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|~:[+",
|
||||
".@*$<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:~1+",
|
||||
".@&%<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|2:[+",
|
||||
".@*&<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:~3+",
|
||||
".@=%<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|~:4+",
|
||||
".@*$<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:53+",
|
||||
".@&*<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|264+",
|
||||
".@*&<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:63+",
|
||||
".@=-<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|264+",
|
||||
".@*=<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:63+",
|
||||
".@=*<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|264+",
|
||||
".@*^<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:63+",
|
||||
".@=-<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|664+",
|
||||
".@*-<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|663+",
|
||||
".@=-<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|674+",
|
||||
".@--<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|668+",
|
||||
".@=-<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|674+",
|
||||
".@*-<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|960+",
|
||||
".@-;<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|a78+",
|
||||
".@--<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|96b+",
|
||||
".@>;<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|acd+",
|
||||
".@--<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|cab+",
|
||||
".@-;<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|a7b+",
|
||||
".@,-<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|cae+",
|
||||
".@>;<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|acd+",
|
||||
".@,-<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|cae+",
|
||||
".@>,<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fcd+",
|
||||
".@,><}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|cae+",
|
||||
".@',<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|agd+",
|
||||
".@,><}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|che+",
|
||||
".@>,<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+",
|
||||
".@,><}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|cge+",
|
||||
".@')<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|ggd+",
|
||||
".@,'<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|cge+",
|
||||
".@',<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+",
|
||||
".@,(<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|ggi+",
|
||||
".@')<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|gjk+",
|
||||
".@,)<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|lgm+",
|
||||
".@'!<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|njk+",
|
||||
".@))<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|ggo+",
|
||||
".@))<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|njp+",
|
||||
".@))<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|#go+",
|
||||
".@)!<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|nji+",
|
||||
".@))<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|lgo+",
|
||||
".@~!<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|n#p+",
|
||||
".@_)<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|#no+",
|
||||
".@)!<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|njp+",
|
||||
".@:~<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|#no+",
|
||||
".@~!<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|n#p+",
|
||||
".@:)<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|#qo+",
|
||||
".@~:<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|{[p+",
|
||||
".@:~<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|#no+",
|
||||
".@~:<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|{[p+",
|
||||
".@:~||||||||||||||||||||||||||||||||||||||||||||||||||||||||#qo+",
|
||||
".@~:262626262667a767a7aca7acfcfcfgfgfggjgggjnjnjnjn#n#n#{[{[{[r+",
|
||||
".@:5:~:5:666666666c696cacacacachcgggcggggglglg#nln#n#n#q#q[q#[s+",
|
||||
".@{1[1[1[141434340484b4b8btb8bdbdededmdikikikipipipipoprpspsrsr+",
|
||||
".+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"};
|
1400
wmbutton/buttons.xpm
Normal file
1400
wmbutton/buttons.xpm
Normal file
File diff suppressed because it is too large
Load diff
32
wmbutton/icons/audio.xpm
Normal file
32
wmbutton/icons/audio.xpm
Normal file
|
@ -0,0 +1,32 @@
|
|||
/* XPM */
|
||||
static char * audio_xpm[] = {
|
||||
"18 18 11 1",
|
||||
" c None",
|
||||
". c #FFFFFF",
|
||||
"+ c #000000",
|
||||
"@ c #D5D6D5",
|
||||
"# c #090909",
|
||||
"$ c #E609EA",
|
||||
"% c #850589",
|
||||
"& c #2F2F2F",
|
||||
"* c #BDBEBD",
|
||||
"= c #8E8E8E",
|
||||
"- c #A6A7A6",
|
||||
".................+",
|
||||
".@@@@@@@@#@@@@@@@+",
|
||||
".$$$$$$$#%#$$$$$$+",
|
||||
".@@@@@@@#@#@@@@@@+",
|
||||
".@@@@@@@#@#@@@@@@+",
|
||||
".$$$$$$$#%#$$$$$$+",
|
||||
".@@@@@@@#&*@@@@@@+",
|
||||
".@@@@@@=#*@@@@@@@+",
|
||||
".$$$$$%##%$$$$$$$+",
|
||||
".@@@@@#-###=@@@@@+",
|
||||
".@@@@@#@#@@#@@@@@+",
|
||||
".$$$$$#%#%$#$$$$$+",
|
||||
".@@@@@#=#==#@@@@@+",
|
||||
".@@@@@@####@@@@@@+",
|
||||
".$$$$$$$%#%$$$$$$+",
|
||||
".@@@@@@###@@@@@@@+",
|
||||
".@@@@@@##=@@@@@@@+",
|
||||
"++++++++++++++++++"};
|
25
wmbutton/icons/blankbutton.xpm
Normal file
25
wmbutton/icons/blankbutton.xpm
Normal file
|
@ -0,0 +1,25 @@
|
|||
/* XPM */
|
||||
static char * blankbutton_xpm[] = {
|
||||
"18 18 4 1",
|
||||
" c None",
|
||||
". c #FFFFFF",
|
||||
"+ c #000000",
|
||||
"@ c #D5D6D5",
|
||||
".................+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
"++++++++++++++++++"};
|
854
wmbutton/icons/buttons2.xpm
Normal file
854
wmbutton/icons/buttons2.xpm
Normal file
|
@ -0,0 +1,854 @@
|
|||
/* XPM */
|
||||
static char * buttons_xpm[] = {
|
||||
"54 54 797 2",
|
||||
" c None",
|
||||
". c #FFFFFF",
|
||||
"+ c #AEAAAE",
|
||||
"@ c #000000",
|
||||
"# c #EDEDED",
|
||||
"$ c #E7E7E8",
|
||||
"% c #DCDCDE",
|
||||
"& c #D0D1D5",
|
||||
"* c #878D9B",
|
||||
"= c #858E9F",
|
||||
"- c #808793",
|
||||
"; c #7A869E",
|
||||
"> c #8C94A1",
|
||||
", c #A2A5AD",
|
||||
"' c #C6C6C9",
|
||||
") c #C2C2C5",
|
||||
"! c #FCFCFC",
|
||||
"~ c #F9F9F9",
|
||||
"{ c #F4F4F4",
|
||||
"] c #EFEFEF",
|
||||
"^ c #EAEAEA",
|
||||
"/ c #E6E6E6",
|
||||
"( c #E1E1E1",
|
||||
"_ c #DCDCDC",
|
||||
": c #D7D7D7",
|
||||
"< c #D3D3D3",
|
||||
"[ c #CFCFCF",
|
||||
"} c #CACACA",
|
||||
"| c #C5C5C5",
|
||||
"1 c #C0C0C0",
|
||||
"2 c #BCBCBC",
|
||||
"3 c #B7B7B7",
|
||||
"4 c #6F706F",
|
||||
"5 c #686868",
|
||||
"6 c #C5C7CF",
|
||||
"7 c #717E92",
|
||||
"8 c #889CA3",
|
||||
"9 c #CFE3D8",
|
||||
"0 c #D1E6D5",
|
||||
"a c #D1E7D4",
|
||||
"b c #D6EFD3",
|
||||
"c c #D8F0D3",
|
||||
"d c #B6C9C3",
|
||||
"e c #B8C1BE",
|
||||
"f c #ABAEB8",
|
||||
"g c #BCBCC0",
|
||||
"h c #EFEEEE",
|
||||
"i c #F6F6F4",
|
||||
"j c #F6F7F3",
|
||||
"k c #F3F4EE",
|
||||
"l c #E2E3DF",
|
||||
"m c #C5C5BE",
|
||||
"n c #B3B2A9",
|
||||
"o c #9F9F94",
|
||||
"p c #868685",
|
||||
"q c #6E706A",
|
||||
"r c #949685",
|
||||
"s c #B2B2B2",
|
||||
"t c #514E5A",
|
||||
"u c #1A1729",
|
||||
"v c #201A30",
|
||||
"w c #23203B",
|
||||
"x c #232039",
|
||||
"y c #211E37",
|
||||
"z c #616161",
|
||||
"A c #6E6E6E",
|
||||
"B c #C4C7D0",
|
||||
"C c #76899C",
|
||||
"D c #ADD1B9",
|
||||
"E c #CCFBB9",
|
||||
"F c #C5F1B5",
|
||||
"G c #B3D5AF",
|
||||
"H c #BAE1AB",
|
||||
"I c #C5F6A7",
|
||||
"J c #C3F4A2",
|
||||
"K c #BFF09E",
|
||||
"L c #AAD39E",
|
||||
"M c #86A197",
|
||||
"N c #B6B6BA",
|
||||
"O c #B4B3B6",
|
||||
"P c #898297",
|
||||
"Q c #554A75",
|
||||
"R c #40365E",
|
||||
"S c #241A4B",
|
||||
"T c #170B46",
|
||||
"U c #12093E",
|
||||
"V c #0E0737",
|
||||
"W c #0A0530",
|
||||
"X c #060429",
|
||||
"Y c #030325",
|
||||
"Z c #00031F",
|
||||
"` c #A1A2A0",
|
||||
" . c #575747",
|
||||
".. c #ADADAD",
|
||||
"+. c #5B566C",
|
||||
"@. c #353056",
|
||||
"#. c #423968",
|
||||
"$. c #48416C",
|
||||
"%. c #484066",
|
||||
"&. c #413969",
|
||||
"*. c #546586",
|
||||
"=. c #90C39C",
|
||||
"-. c #E2FF9C",
|
||||
";. c #93B38F",
|
||||
">. c #79899E",
|
||||
",. c #7585AA",
|
||||
"'. c #96BA9B",
|
||||
"). c #B2EC86",
|
||||
"!. c #B0EB7F",
|
||||
"~. c #ACE777",
|
||||
"{. c #A9E571",
|
||||
"]. c #A5DF6F",
|
||||
"^. c #1C3078",
|
||||
"/. c #B2B2B6",
|
||||
"(. c #ACACB1",
|
||||
"_. c #B2B2B3",
|
||||
":. c #4D436A",
|
||||
"<. c #160350",
|
||||
"[. c #13034B",
|
||||
"}. c #110346",
|
||||
"|. c #0F0340",
|
||||
"1. c #0C033A",
|
||||
"2. c #0A0335",
|
||||
"3. c #07032F",
|
||||
"4. c #05032A",
|
||||
"5. c #A3A4A3",
|
||||
"6. c #5C5C4D",
|
||||
"7. c #A8A8A8",
|
||||
"8. c #615C75",
|
||||
"9. c #423A61",
|
||||
"0. c #4F4D70",
|
||||
"a. c #594E85",
|
||||
"b. c #493F66",
|
||||
"c. c #BEC3CF",
|
||||
"d. c #3E6C75",
|
||||
"e. c #98D080",
|
||||
"f. c #5D6C8D",
|
||||
"g. c #6174A4",
|
||||
"h. c #5F73AC",
|
||||
"i. c #6985A2",
|
||||
"j. c #9ADA69",
|
||||
"k. c #9CE05B",
|
||||
"l. c #9ADC58",
|
||||
"m. c #98DA58",
|
||||
"n. c #96D758",
|
||||
"o. c #95D358",
|
||||
"p. c #296B42",
|
||||
"q. c #6E7A9B",
|
||||
"r. c #B1B0B1",
|
||||
"s. c #4E436A",
|
||||
"t. c #070330",
|
||||
"u. c #A4A5A3",
|
||||
"v. c #61614F",
|
||||
"w. c #3B3B2E",
|
||||
"x. c #635C75",
|
||||
"y. c #3D3660",
|
||||
"z. c #494169",
|
||||
"A. c #4B4669",
|
||||
"B. c #4F4A6A",
|
||||
"C. c #8D8F8D",
|
||||
"D. c #878787",
|
||||
"E. c #A4A4A4",
|
||||
"F. c #63778E",
|
||||
"G. c #5EA750",
|
||||
"H. c #638F72",
|
||||
"I. c #4D659F",
|
||||
"J. c #4B61A2",
|
||||
"K. c #5B7E8A",
|
||||
"L. c #87CD4C",
|
||||
"M. c #8BD442",
|
||||
"N. c #89D142",
|
||||
"O. c #88CD42",
|
||||
"P. c #87CA42",
|
||||
"Q. c #84C742",
|
||||
"R. c #83C342",
|
||||
"S. c #74DD00",
|
||||
"T. c #0B2668",
|
||||
"U. c #A6A6AC",
|
||||
"V. c #AEAEAF",
|
||||
"W. c #4D4269",
|
||||
"X. c #261459",
|
||||
"Y. c #281C4E",
|
||||
"Z. c #2A1E4E",
|
||||
"`. c #150945",
|
||||
" + c #0C033B",
|
||||
".+ c #0A0336",
|
||||
"++ c #A7A7A5",
|
||||
"@+ c #6A6B59",
|
||||
"#+ c #454632",
|
||||
"$+ c #5D5871",
|
||||
"%+ c #333158",
|
||||
"&+ c #3D3460",
|
||||
"*+ c #423E65",
|
||||
"=+ c #515171",
|
||||
"-+ c #9D9E9D",
|
||||
";+ c #626262",
|
||||
">+ c #8A8A8A",
|
||||
",+ c #2B4B70",
|
||||
"'+ c #56A62B",
|
||||
")+ c #396362",
|
||||
"!+ c #3C598C",
|
||||
"~+ c #354C99",
|
||||
"{+ c #507D6E",
|
||||
"]+ c #76BF33",
|
||||
"^+ c #78C32D",
|
||||
"/+ c #77C02D",
|
||||
"(+ c #74BC2D",
|
||||
"_+ c #73B82D",
|
||||
":+ c #71B42D",
|
||||
"<+ c #6BAE28",
|
||||
"[+ c #5EB800",
|
||||
"}+ c #002F32",
|
||||
"|+ c #ACADB5",
|
||||
"1+ c #ADACAE",
|
||||
"2+ c #52476D",
|
||||
"3+ c #38314A",
|
||||
"4+ c #0A0809",
|
||||
"5+ c #181618",
|
||||
"6+ c #362F50",
|
||||
"7+ c #0F053D",
|
||||
"8+ c #000320",
|
||||
"9+ c #ABACAB",
|
||||
"0+ c #757764",
|
||||
"a+ c #565842",
|
||||
"b+ c #28233D",
|
||||
"c+ c #2E2749",
|
||||
"d+ c #373051",
|
||||
"e+ c #393561",
|
||||
"f+ c #393259",
|
||||
"g+ c #352C52",
|
||||
"h+ c #1F4B59",
|
||||
"i+ c #60C004",
|
||||
"j+ c #5EB70D",
|
||||
"k+ c #4C8A39",
|
||||
"l+ c #2A4C7E",
|
||||
"m+ c #264386",
|
||||
"n+ c #417257",
|
||||
"o+ c #4F8A3D",
|
||||
"p+ c #62AC17",
|
||||
"q+ c #5FA717",
|
||||
"r+ c #5DA317",
|
||||
"s+ c #599C18",
|
||||
"t+ c #4A881A",
|
||||
"u+ c #488C00",
|
||||
"v+ c #0F4D20",
|
||||
"w+ c #848FAC",
|
||||
"x+ c #5A5072",
|
||||
"y+ c #5F5A67",
|
||||
"z+ c #676149",
|
||||
"A+ c #777570",
|
||||
"B+ c #25232F",
|
||||
"C+ c #170E43",
|
||||
"D+ c #05032B",
|
||||
"E+ c #030326",
|
||||
"F+ c #B0B0AF",
|
||||
"G+ c #7E826D",
|
||||
"H+ c #666751",
|
||||
"I+ c #959497",
|
||||
"J+ c #ACABAE",
|
||||
"K+ c #737473",
|
||||
"L+ c #302A4F",
|
||||
"M+ c #3F3C64",
|
||||
"N+ c #4B4274",
|
||||
"O+ c #4F4876",
|
||||
"P+ c #3F3C69",
|
||||
"Q+ c #0A3455",
|
||||
"R+ c #5CB800",
|
||||
"S+ c #58B100",
|
||||
"T+ c #6BD600",
|
||||
"U+ c #2D5E1B",
|
||||
"V+ c #1A3884",
|
||||
"W+ c #1D3A85",
|
||||
"X+ c #234573",
|
||||
"Y+ c #4D9502",
|
||||
"Z+ c #4B9203",
|
||||
"`+ c #478D01",
|
||||
" @ c #38770F",
|
||||
".@ c #1D454C",
|
||||
"+@ c #1F4B5B",
|
||||
"@@ c #000E78",
|
||||
"#@ c #8692B2",
|
||||
"$@ c #AAABAB",
|
||||
"%@ c #645C7A",
|
||||
"&@ c #776349",
|
||||
"*@ c #E5C319",
|
||||
"=@ c #A78F32",
|
||||
"-@ c #27232C",
|
||||
";@ c #1E1448",
|
||||
">@ c #080330",
|
||||
",@ c #010320",
|
||||
"'@ c #B2B3B2",
|
||||
")@ c #888A75",
|
||||
"!@ c #6D6F59",
|
||||
"~@ c #393052",
|
||||
"{@ c #494261",
|
||||
"]@ c #52497A",
|
||||
"^@ c #4F487A",
|
||||
"/@ c #4D4669",
|
||||
"(@ c #463E69",
|
||||
"_@ c #30517B",
|
||||
":@ c #54A800",
|
||||
"<@ c #52A700",
|
||||
"[@ c #1F3A7F",
|
||||
"}@ c #25408A",
|
||||
"|@ c #27428B",
|
||||
"1@ c #294782",
|
||||
"2@ c #468E00",
|
||||
"3@ c #428203",
|
||||
"4@ c #428600",
|
||||
"5@ c #23466B",
|
||||
"6@ c #224542",
|
||||
"7@ c #437E00",
|
||||
"8@ c #08083D",
|
||||
"9@ c #84848C",
|
||||
"0@ c #A7A7AA",
|
||||
"a@ c #6D677D",
|
||||
"b@ c #9A9798",
|
||||
"c@ c #DBD0B1",
|
||||
"d@ c #ECE9E0",
|
||||
"e@ c #353334",
|
||||
"f@ c #362F4E",
|
||||
"g@ c #0F073A",
|
||||
"h@ c #080331",
|
||||
"i@ c #BBBCBB",
|
||||
"j@ c #8B8E79",
|
||||
"k@ c #72735E",
|
||||
"l@ c #14D121",
|
||||
"m@ c #332C54",
|
||||
"n@ c #3D3A69",
|
||||
"o@ c #494266",
|
||||
"p@ c #494666",
|
||||
"q@ c #494363",
|
||||
"r@ c #3F3B66",
|
||||
"s@ c #979897",
|
||||
"t@ c #7185A6",
|
||||
"u@ c #3D7E21",
|
||||
"v@ c #3E7B1A",
|
||||
"w@ c #253E82",
|
||||
"x@ c #2C478F",
|
||||
"y@ c #304B90",
|
||||
"z@ c #334D92",
|
||||
"A@ c #344D92",
|
||||
"B@ c #335C3A",
|
||||
"C@ c #3B7800",
|
||||
"D@ c #315660",
|
||||
"E@ c #233D6F",
|
||||
"F@ c #264A37",
|
||||
"G@ c #316902",
|
||||
"H@ c #294489",
|
||||
"I@ c #A8A7A8",
|
||||
"J@ c #636264",
|
||||
"K@ c #D9D8D7",
|
||||
"L@ c #FAFAF8",
|
||||
"M@ c #8D8D8D",
|
||||
"N@ c #18171B",
|
||||
"O@ c #514D66",
|
||||
"P@ c #434058",
|
||||
"Q@ c #403E53",
|
||||
"R@ c #3D3C4F",
|
||||
"S@ c #3A3B4A",
|
||||
"T@ c #CACBC8",
|
||||
"U@ c #8A8D78",
|
||||
"V@ c #64665B",
|
||||
"W@ c #58576C",
|
||||
"X@ c #5C5874",
|
||||
"Y@ c #5E5576",
|
||||
"Z@ c #5C597A",
|
||||
"`@ c #5E5778",
|
||||
" # c #5C5570",
|
||||
".# c #646464",
|
||||
"+# c #B7BAC1",
|
||||
"@# c #325B60",
|
||||
"## c #34623B",
|
||||
"$# c #324B91",
|
||||
"%# c #385194",
|
||||
"&# c #3C5497",
|
||||
"*# c #3F5698",
|
||||
"=# c #405799",
|
||||
"-# c #3F5699",
|
||||
";# c #3B5496",
|
||||
"># c #375095",
|
||||
",# c #2D486C",
|
||||
"'# c #2A4877",
|
||||
")# c #224372",
|
||||
"!# c #9F9EA1",
|
||||
"~# c #7F7E7E",
|
||||
"{# c #F9FAF8",
|
||||
"]# c #FBFBF9",
|
||||
"^# c #DEDFDD",
|
||||
"/# c #131313",
|
||||
"(# c #959695",
|
||||
"_# c #F0EFEA",
|
||||
":# c #ECECE7",
|
||||
"<# c #E9E9E4",
|
||||
"[# c #E7E7DE",
|
||||
"}# c #DEDED3",
|
||||
"|# c #858773",
|
||||
"1# c #555551",
|
||||
"2# c #6B6C6D",
|
||||
"3# c #828282",
|
||||
"4# c #C1C2C7",
|
||||
"5# c #7789A4",
|
||||
"6# c #375966",
|
||||
"7# c #435A9A",
|
||||
"8# c #485E9D",
|
||||
"9# c #4B609F",
|
||||
"0# c #4B619F",
|
||||
"a# c #475E9C",
|
||||
"b# c #42599A",
|
||||
"c# c #3B5396",
|
||||
"d# c #354E90",
|
||||
"e# c #364F91",
|
||||
"f# c #7A7A82",
|
||||
"g# c #A7A293",
|
||||
"h# c #F9F9F8",
|
||||
"i# c #F8F8F6",
|
||||
"j# c #F0EEDF",
|
||||
"k# c #1D1D19",
|
||||
"l# c #5D5C58",
|
||||
"m# c #C9C9BE",
|
||||
"n# c #C7C7BD",
|
||||
"o# c #939388",
|
||||
"p# c #929484",
|
||||
"q# c #9A9A8B",
|
||||
"r# c #595953",
|
||||
"s# c #515161",
|
||||
"t# c #B1B0B4",
|
||||
"u# c #B1AFB4",
|
||||
"v# c #858587",
|
||||
"w# c #6B6A6B",
|
||||
"x# c #757475",
|
||||
"y# c #787678",
|
||||
"z# c #7C7A7C",
|
||||
"A# c #C0C0C4",
|
||||
"B# c #8694BA",
|
||||
"C# c #0D2A87",
|
||||
"D# c #4F6795",
|
||||
"E# c #456952",
|
||||
"F# c #586BA6",
|
||||
"G# c #5E6DBC",
|
||||
"H# c #5F6DC0",
|
||||
"I# c #5966CC",
|
||||
"J# c #5B6EA8",
|
||||
"K# c #3A5195",
|
||||
"L# c #3A5293",
|
||||
"M# c #C7C1B4",
|
||||
"N# c #ECC635",
|
||||
"O# c #C4A420",
|
||||
"P# c #AFADA8",
|
||||
"Q# c #F9F9F6",
|
||||
"R# c #F9F9F7",
|
||||
"S# c #E6CD79",
|
||||
"T# c #7C5B09",
|
||||
"U# c #AB922F",
|
||||
"V# c #343326",
|
||||
"W# c #1E1E14",
|
||||
"X# c #313125",
|
||||
"Y# c #504F4F",
|
||||
"Z# c #CDBC6E",
|
||||
"`# c #AE6E22",
|
||||
" $ c #6B6A6C",
|
||||
".$ c #595959",
|
||||
"+$ c #BFC7E0",
|
||||
"@$ c #5369A2",
|
||||
"#$ c #234C37",
|
||||
"$$ c #30600E",
|
||||
"%$ c #336407",
|
||||
"&$ c #235A00",
|
||||
"*$ c #406736",
|
||||
"=$ c #1F397E",
|
||||
"-$ c #6C7EAF",
|
||||
";$ c #6D6D76",
|
||||
">$ c #DBC475",
|
||||
",$ c #F5CC10",
|
||||
"'$ c #F4CA10",
|
||||
")$ c #C1AC62",
|
||||
"!$ c #EEEEEC",
|
||||
"~$ c #C2C2C0",
|
||||
"{$ c #A07F2F",
|
||||
"]$ c #F5C80E",
|
||||
"^$ c #F3CB17",
|
||||
"/$ c #B0A263",
|
||||
"($ c #626254",
|
||||
"_$ c #595949",
|
||||
":$ c #747474",
|
||||
"<$ c #9B9B9D",
|
||||
"[$ c #6E6C6F",
|
||||
"}$ c #B7BFD7",
|
||||
"|$ c #8695BE",
|
||||
"1$ c #7484B4",
|
||||
"2$ c #929EC4",
|
||||
"3$ c #8997BF",
|
||||
"4$ c #A4A5AF",
|
||||
"5$ c #9A9693",
|
||||
"6$ c #B9A478",
|
||||
"7$ c #CBA133",
|
||||
"8$ c #967432",
|
||||
"9$ c #6F6D6D",
|
||||
"0$ c #6F6B6D",
|
||||
"a$ c #957642",
|
||||
"b$ c #C59D35",
|
||||
"c$ c #8D8D86",
|
||||
"d$ c #8C8C8C",
|
||||
"e$ c #7D7D7D",
|
||||
"f$ c #797979",
|
||||
"g$ c #6F6F6F",
|
||||
"h$ c #9F9F9F",
|
||||
"i$ c #696869",
|
||||
"j$ c #F8F8F8",
|
||||
"k$ c #F3F3F3",
|
||||
"l$ c #EEEEEE",
|
||||
"m$ c #E9E9E9",
|
||||
"n$ c #090909",
|
||||
"o$ c #D5D6D5",
|
||||
"p$ c #CCCCCC",
|
||||
"q$ c #C6C6C6",
|
||||
"r$ c #C1C1C1",
|
||||
"s$ c #DD0D8A",
|
||||
"t$ c #0909EF",
|
||||
"u$ c #E4E4E4",
|
||||
"v$ c #DFDFDF",
|
||||
"w$ c #DADADA",
|
||||
"x$ c #D1D1D1",
|
||||
"y$ c #A56721",
|
||||
"z$ c #A3A3A3",
|
||||
"A$ c #AFB505",
|
||||
"B$ c #F79B31",
|
||||
"C$ c #9E9E9E",
|
||||
"D$ c #EFF707",
|
||||
"E$ c #0D8214",
|
||||
"F$ c #989898",
|
||||
"G$ c #9A9A9A",
|
||||
"H$ c #939393",
|
||||
"I$ c #959595",
|
||||
"J$ c #8E8E8E",
|
||||
"K$ c #919191",
|
||||
"L$ c #050591",
|
||||
"M$ c #898989",
|
||||
"N$ c #848484",
|
||||
"O$ c #7F7F7F",
|
||||
"P$ c #7A7A7A",
|
||||
"Q$ c #757575",
|
||||
"R$ c #F4C844",
|
||||
"S$ c #707070",
|
||||
"T$ c #6B6B6B",
|
||||
"U$ c #676767",
|
||||
"V$ c #E8E5E0",
|
||||
"W$ c #E7E2C7",
|
||||
"X$ c #D9D499",
|
||||
"Y$ c #E4D08D",
|
||||
"Z$ c #EABE8D",
|
||||
"`$ c #E3B26B",
|
||||
" % c #E3B982",
|
||||
".% c #BDA385",
|
||||
"+% c #EDE1C3",
|
||||
"@% c #ECC48A",
|
||||
"#% c #F69854",
|
||||
"$% c #F78E42",
|
||||
"%% c #EB9D54",
|
||||
"&% c #FFC280",
|
||||
"*% c #DA776F",
|
||||
"=% c #EA3166",
|
||||
"-% c #DE2F66",
|
||||
";% c #D57F6A",
|
||||
">% c #BBA97D",
|
||||
",% c #95939B",
|
||||
"'% c #E609EA",
|
||||
")% c #850589",
|
||||
"!% c #EED392",
|
||||
"~% c #FFCF86",
|
||||
"{% c #FBBB57",
|
||||
"]% c #E92F00",
|
||||
"^% c #EB2F00",
|
||||
"/% c #D85025",
|
||||
"(% c #F3B366",
|
||||
"_% c #E6466F",
|
||||
":% c #FF0061",
|
||||
"<% c #DD7075",
|
||||
"[% c #D6B275",
|
||||
"}% c #B89A77",
|
||||
"|% c #88888E",
|
||||
"1% c #ECECEC",
|
||||
"2% c #FEFEFE",
|
||||
"3% c #F1DCB7",
|
||||
"4% c #FDCF86",
|
||||
"5% c #FFCF72",
|
||||
"6% c #F8BB57",
|
||||
"7% c #D02F00",
|
||||
"8% c #DF2F00",
|
||||
"9% c #EF4310",
|
||||
"0% c #F6B661",
|
||||
"a% c #E44D6C",
|
||||
"b% c #F00877",
|
||||
"c% c #F80677",
|
||||
"d% c #DD7179",
|
||||
"e% c #CEA764",
|
||||
"f% c #CE9B60",
|
||||
"g% c #FDFDFD",
|
||||
"h% c #9B9B9B",
|
||||
"i% c #F3D269",
|
||||
"j% c #F8D334",
|
||||
"k% c #FFDC45",
|
||||
"l% c #FAC75D",
|
||||
"m% c #DF7D3B",
|
||||
"n% c #E97A2A",
|
||||
"o% c #E7843C",
|
||||
"p% c #EDBD61",
|
||||
"q% c #E3947A",
|
||||
"r% c #DE6C79",
|
||||
"s% c #DB3686",
|
||||
"t% c #CE7E9D",
|
||||
"u% c #CE8BA6",
|
||||
"v% c #CE8188",
|
||||
"w% c #996D74",
|
||||
"x% c #7F7D85",
|
||||
"y% c #4F4F4F",
|
||||
"z% c #C4C4C4",
|
||||
"A% c #727272",
|
||||
"B% c #F6F6F6",
|
||||
"C% c #FFEB19",
|
||||
"D% c #FFFF00",
|
||||
"E% c #FFF709",
|
||||
"F% c #F2D135",
|
||||
"G% c #E5C26F",
|
||||
"H% c #D3CE77",
|
||||
"I% c #D1B165",
|
||||
"J% c #CFB875",
|
||||
"K% c #AF7C77",
|
||||
"L% c #B1306F",
|
||||
"M% c #961766",
|
||||
"N% c #9D36B5",
|
||||
"O% c #9F09D6",
|
||||
"P% c #A406CC",
|
||||
"Q% c #A55DB4",
|
||||
"R% c #898A8F",
|
||||
"S% c #ACACAC",
|
||||
"T% c #B0B0B1",
|
||||
"U% c #434343",
|
||||
"V% c #2F2F2F",
|
||||
"W% c #BDBEBD",
|
||||
"X% c #FBEF0C",
|
||||
"Y% c #FFF70C",
|
||||
"Z% c #DFD148",
|
||||
"`% c #DDC063",
|
||||
" & c #D0C261",
|
||||
".& c #D5B46A",
|
||||
"+& c #907059",
|
||||
"@& c #421B10",
|
||||
"#& c #7B0947",
|
||||
"$& c #7C0642",
|
||||
"%& c #B43ED9",
|
||||
"&& c #A90BFD",
|
||||
"*& c #B853C8",
|
||||
"=& c #9F7258",
|
||||
"-& c #999999",
|
||||
";& c #F0F0F0",
|
||||
">& c #6C6C6D",
|
||||
",& c #FAD739",
|
||||
"'& c #F3ED24",
|
||||
")& c #F8E533",
|
||||
"!& c #D8C763",
|
||||
"~& c #EBA76F",
|
||||
"{& c #D1C260",
|
||||
"]& c #C7A65C",
|
||||
"^& c #311F0F",
|
||||
"/& c #0C0000",
|
||||
"(& c #390012",
|
||||
"_& c #5F1B24",
|
||||
":& c #AA36BA",
|
||||
"<& c #9B0BD5",
|
||||
"[& c #9D0BD9",
|
||||
"}& c #A4569D",
|
||||
"|& c #7E7E7E",
|
||||
"1& c #D9D9D9",
|
||||
"2& c #EAC46F",
|
||||
"3& c #F0CB6C",
|
||||
"4& c #D8B36A",
|
||||
"5& c #D1BD6E",
|
||||
"6& c #D3B375",
|
||||
"7& c #CBB260",
|
||||
"8& c #B28866",
|
||||
"9& c #0C0706",
|
||||
"0& c #020206",
|
||||
"a& c #2B1010",
|
||||
"b& c #5E3D1F",
|
||||
"c& c #CB8B8D",
|
||||
"d& c #B78394",
|
||||
"e& c #C27794",
|
||||
"f& c #B0747D",
|
||||
"g& c #A8A9AF",
|
||||
"h& c #A6A7A6",
|
||||
"i& c #E5C895",
|
||||
"j& c #DCAF6C",
|
||||
"k& c #D8C065",
|
||||
"l& c #CEBF61",
|
||||
"m& c #C5B677",
|
||||
"n& c #ACA385",
|
||||
"o& c #9E9899",
|
||||
"p& c #434340",
|
||||
"q& c #3F3D1C",
|
||||
"r& c #744232",
|
||||
"s& c #BA7D50",
|
||||
"t& c #9B7687",
|
||||
"u& c #313FDB",
|
||||
"v& c #1E3DF1",
|
||||
"w& c #494FBA",
|
||||
"x& c #9E9BA5",
|
||||
"y& c #D4D4D4",
|
||||
"z& c #D3BB6C",
|
||||
"A& c #CFB869",
|
||||
"B& c #D0BB6C",
|
||||
"C& c #B1A5A1",
|
||||
"D& c #8A94A5",
|
||||
"E& c #2D3945",
|
||||
"F& c #444823",
|
||||
"G& c #A17741",
|
||||
"H& c #CF9A61",
|
||||
"I& c #887F9F",
|
||||
"J& c #0B2FFD",
|
||||
"K& c #002FFD",
|
||||
"L& c #324AD8",
|
||||
"M& c #9C725C",
|
||||
"N& c #3F4046",
|
||||
"O& c #C6A47F",
|
||||
"P& c #A69F87",
|
||||
"Q& c #3A364D",
|
||||
"R& c #525141",
|
||||
"S& c #A67E41",
|
||||
"T& c #C88B53",
|
||||
"U& c #CF9061",
|
||||
"V& c #C88761",
|
||||
"W& c #897F90",
|
||||
"X& c #0F2FF3",
|
||||
"Y& c #082FF7",
|
||||
"Z& c #4047D8",
|
||||
"`& c #81645A",
|
||||
" * c #CECECE",
|
||||
".* c #B27F5B",
|
||||
"+* c #D4A77A",
|
||||
"@* c #8C6636",
|
||||
"#* c #72491F",
|
||||
"$* c #9D7A45",
|
||||
"%* c #CC9A61",
|
||||
"&* c #CF9361",
|
||||
"** c #C99061",
|
||||
"=* c #A97E5C",
|
||||
"-* c #906D5F",
|
||||
";* c #808185",
|
||||
">* c #8F7885",
|
||||
",* c #A16773",
|
||||
"'* c #6D4C42",
|
||||
")* c #DDDDDD",
|
||||
"!* c #F2F2F2",
|
||||
"~* c #99714C",
|
||||
"{* c #DBA97B",
|
||||
"]* c #7B5029",
|
||||
"^* c #767361",
|
||||
"/* c #BBA07C",
|
||||
"(* c #CA9E68",
|
||||
"_* c #CA9561",
|
||||
":* c #CF8761",
|
||||
"<* c #B3805C",
|
||||
"[* c #322841",
|
||||
"}* c #413759",
|
||||
"|* c #8D7963",
|
||||
"1* c #A7735A",
|
||||
"2* c #A26453",
|
||||
"3* c #E0E0E0",
|
||||
"4* c #D2D2D2",
|
||||
"5* c #937257",
|
||||
"6* c #DBAA7B",
|
||||
"7* c #714D25",
|
||||
"8* c #C69D70",
|
||||
"9* c #BE8D61",
|
||||
"0* c #A77F54",
|
||||
"a* c #443251",
|
||||
"b* c #606492",
|
||||
"c* c #A39EA3",
|
||||
"d* c #A46959",
|
||||
"e* c #96734D",
|
||||
"f* c #636364",
|
||||
"g* c #737373",
|
||||
"h* c #BEBEBE",
|
||||
"i* c #979797",
|
||||
"j* c #AFAFAF",
|
||||
"k* c #D5A96D",
|
||||
"l* c #775529",
|
||||
"m* c #A17E63",
|
||||
"n* c #AC825F",
|
||||
"o* c #936958",
|
||||
"p* c #AC97A9",
|
||||
"q* c #C9B4B3",
|
||||
"r* c #737375",
|
||||
"s* c #B5B5B7",
|
||||
"t* c #B7B7B9",
|
||||
"u* c #616163",
|
||||
"v* c #0B0B0B",
|
||||
". . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . @ ",
|
||||
"# $ $ % & % * = - ; > , ' ' ) ) ) @ . ! ~ { ] ^ / ( _ : < [ } | 1 2 3 @ . 4 4 4 4 4 4 4 4 5 < [ } | 1 2 3 @ ",
|
||||
"# $ % 6 7 8 9 0 a b c d e f g g g @ . ~ { h i j k l : m n o p q r 3 s @ . 4 t u v w x y 4 z A } | 1 2 3 s @ ",
|
||||
"# % B C D E F G H I J K L M N N N @ . { O P Q R S T U V W X Y Z ` ...@ . 4 +.@.#.$.%.&.4 z A | 1 2 3 s ..@ ",
|
||||
"# % *.=.-.;.>.,.'.).!.~.{.].^./.(.@ . ] _.:.<.[.}.|.1.2.3.4.Y Z 5.6.7.@ . 4 8.9.0.a.0.b.4 z A 1 2 3 s ..7.@ ",
|
||||
"# c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.(.@ . ^ r.s.<.[.}.|.1.2.t.4.Y Z u.v.w.@ . 4 x.y.z.A.B.a.4 C.D.2 3 s ..7.E.@ ",
|
||||
"# F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.@ . / V.W.X.Y.Z.`. +.+t.4.Y Z ++@+#+@ . 4 $+%+&+*+=+-+-+-+-+-+-+-+-+;+>+@ ",
|
||||
"# ,+'+)+!+~+{+]+^+/+(+_+:+<+[+}+|+@ . ( 1+2+3+4+5+6+7+.+t.4.Y 8+9+0+a+@ . 4 4 4 4 4 4 -+b+c+d+e+f+g+-+z A @ ",
|
||||
"# h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+@ . _ 1+x+y+z+A+B+C+.+t.D+E+8+F+G+H+@ . _ : I+J+4 K+-+L+M+N+O+z.P+-+z A @ ",
|
||||
"# Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@@ . : $@%@&@*@=@-@;@.+>@D+E+,@'@)@!@@ . -+-+-+-+-+-+-+~@{@]@^@/@(@-+z A @ ",
|
||||
"# _@:@:@<@[@}@|@1@2@3@4@5@6@7@8@9@@ . < 0@a@b@c@d@e@f@g@h@D+E+,@i@j@k@@ . -+l@-+-+-+-+-+m@n@o@p@q@r@-+z s@@ ",
|
||||
"# t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@9@@ . [ I@J@K@L@i M@N@O@P@Q@R@S@T@U@V@@ . -+-+-+-+-+-+-+W@X@Y@Z@`@ #-+.#D.@ ",
|
||||
"# +#@###$#%#&#*#=#-#;#>#,#'#)#9@9@@ . } !#~#{#]#]#^#/#(#_#:#<#[#}#|#1#@ . } | 1 2#3 s -+-+-+-+-+-+-+-+-+3#@ ",
|
||||
"# 4#5#6##8#9#0#9#a#b#c#d#e#f#f#@ . | 1 g#h#i#L@j#k#l#m#n#o#p#q#r#s#@ . | 1 2 2#s ..7.E.t#u#v#w#x#y#z#5 @ ",
|
||||
"# ) A#B#C#D#E#F#G#H#I#J#K#L#f#f#f#@ . M#N#O#P#Q#R#S#T#U#V#W#X#Y#s#s#s#@ . 1 2 Z#`#Z#7.-+-+-+-+-+-+-+-+ $.$@ ",
|
||||
"# ) g N +$@$#$$$%$&$*$=$-$f#f#f#;$@ . >$,$'$)$!$~${$]$^$/$($_$s#s#s#:$@ . 2#2#`#`#`#2#-+l@-+-+-+-+-+<$[$.$@ ",
|
||||
"# ) g N (.(.}$|$1$2$3$4$9@f#f#;$;$@ . 5$6$7$8$9$0$a$b$c$d$D.3#e$f$:$g$@ . 3 s Z#`#Z#h$-+-+-+-+-+-+-+-+i$g$@ ",
|
||||
"@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
|
||||
". . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . @ ",
|
||||
". ! ~ { ] ^ / ( _ : < [ } | 1 2 3 @ . ! j$k$l$m$n$o$o$o$n$p$q$r$2 3 s @ . ! ~ { ] ^ / ( _ : < [ } | s$s$3 @ ",
|
||||
". t$t$t$^ t$t$t$t$< t$t$t$1 2 3 s @ . j$k$l$m$u$n$n$n$n$n$n$r$2 3 s ..@ . ~ { ] ^ / ( _ : < [ } | s$s$s$s$@ ",
|
||||
". { t$t$/ ( t$t$< [ t$t$1 2 3 s ..@ . k$n$m$u$v$w$o$x$p$q$r$2 3 s ..7.@ . { ] ^ / ( _ : < [ } | @ @ s$s$s$@ ",
|
||||
". ] t$t$( _ t$t$[ } t$1 2 3 s ..7.@ . l$n$u$v$w$o$x$p$q$r$2 3 y$y$7.z$@ . ] ^ / ( _ : < [ } | @ @ A$@ s$7.@ ",
|
||||
". ^ t$t$_ t$t$t$} t$t$2 3 s ..7.E.@ . m$n$v$w$o$x$p$q$r$2 3 B$B$y$z$C$@ . ^ / ( _ : < [ } | A$D$@ @ @ 7.E.@ ",
|
||||
". / t$t$: t$[ t$| t$2 3 s ..7.E.h$@ . n$n$w$o$E$E$q$r$2 3 s B$B$y$C$F$@ . / ( _ : < [ } | A$D$D$D$@ 7.E.h$@ ",
|
||||
". ( _ t$t$t$} t$1 t$t$t$t$t$t$h$G$@ . n$n$o$l@l@E$r$2 3 s ..B$B$y$F$H$@ . ( _ : < [ } | A$D$D$D$A$7.E.h$G$@ ",
|
||||
". _ : t$t$} | t$t$3 s t$t$E.t$t$I$@ . n$n$x$l@l@E$2 3 s ..7.B$B$y$H$J$@ . _ : < [ } | A$D$D$D$A$7.E.h$G$I$@ ",
|
||||
". : < t$t$| 1 t$t$s ..t$t$h$t$t$K$@ . n$n$p$l@l@E$3 s L$L$z$B$B$y$J$M$@ . : < [ } | A$D$D$D$A$7.E.h$G$I$K$@ ",
|
||||
". < [ t$| 1 2 t$s ..t$t$h$G$t$t$d$@ . n$n$q$l@l@E$s t$t$L$C$B$B$y$M$N$@ . < [ } | A$D$D$D$A$7.E.h$G$I$K$d$@ ",
|
||||
". [ } | 1 2 3 s ..7.t$t$G$t$t$d$D.@ . p$n$r$l@l@E$..t$t$L$F$B$B$y$N$O$@ . [ } | A$D$D$D$A$7.E.h$G$I$K$d$D.@ ",
|
||||
". } | 1 2 3 s ..7.E.t$t$t$t$d$D.3#@ . q$n$2 l@l@E$7.t$t$L$H$B$B$y$O$P$@ . } | A$D$D$D$A$7.E.h$G$I$K$d$D.3#@ ",
|
||||
". | 1 2 3 s ..7.E.t$t$I$K$d$D.3#e$@ . r$n$3 l@l@E$z$t$t$L$J$B$B$y$P$Q$@ . | 1 R$D$D$A$7.E.h$G$I$K$d$D.3#e$@ ",
|
||||
". 1 2 3 s ..7.E.h$t$t$K$d$D.3#e$f$@ . 2 n$n$n$n$n$n$n$n$n$n$n$n$n$n$S$@ . 1 R$R$R$A$7.E.h$G$I$K$d$D.3#e$f$@ ",
|
||||
". 2 3 s ..7.E.h$t$t$t$t$D.3#e$f$:$@ . 3 s ..7.z$n$n$n$n$n$N$O$P$Q$S$T$@ . 2 R$R$..7.E.h$G$I$K$d$D.3#e$f$:$@ ",
|
||||
". 3 s ..7.E.h$G$I$K$d$D.3#e$f$:$g$@ . s ..7.z$C$F$H$J$M$N$O$P$Q$S$T$U$@ . @ s ..7.E.h$G$I$K$d$D.3#e$f$:$g$@ ",
|
||||
"@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
|
||||
". . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . @ ",
|
||||
". ! ~ { ] V$W$X$Y$Z$`$ %.%| 1 2 3 @ . ! ~ { ] ^ / ( _ : < [ } | 1 2 3 @ . ! ~ { ] ^ / ( _ n$< [ } | 1 2 3 @ ",
|
||||
". ~ { +%@%#%$%%%&%*%=%-%;%>%2 3 s @ . ~ { ] ^ / ,%n$n$n$n$n$| 1 2 3 s @ . '%'%'%'%'%'%'%n$)%n$'%'%'%'%'%'%@ ",
|
||||
". { !%~%{%]%^%/%(%_%:%:%<%[%}%s ..@ . { ] ^ / |%n$1%2%. j$x$n$2 3 s ..@ . { ] ^ / ( _ : n$[ n$| 1 2 3 s ..@ ",
|
||||
". 3%4%5%6%7%8%9%0%a%b%c%d%e%f%}%7.@ . ] ^ / ( n$j$g%. . . . h%n$s ..7.@ . ] ^ / ( _ : < n$} n$1 2 3 s ..7.@ ",
|
||||
". i%j%k%l%m%n%o%p%q%r%s%t%u%v%w%E.@ . ^ / ( x%n$: y%z%] A%M$B%n$..7.E.@ . '%'%'%'%'%'%'%n$)%n$'%'%'%'%'%'%@ ",
|
||||
". C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%}%@ . / R%n$n$S%T%n$I$v$n$U%. n$n$n$h$@ . / ( _ : < [ } n$V%W%3 s ..7.E.h$@ ",
|
||||
". X%D%Y%Z%`% &.&+&@&#&$&%&&&&&*&=&@ . ( n$] B%{ g%g%. . . . . -&;&>&n$@ . ( _ : < [ } J$n$W%3 s ..7.E.h$G$@ ",
|
||||
". ,&'&)&!&~&{&]&^&/&(&_&:&<&[&}&=&@ . _ n$|&k$. g%g%. . . . . ! 1&d$n$@ . '%'%'%'%'%)%n$n$)%'%'%'%'%'%'%'%@ ",
|
||||
". 2&3&4&5&6&7&8&9&0&a&b&c&d&e&f&=&@ . : g&n$M$k$g%g%. . . . . 2 n$n$K$@ . : < [ } | n$h&n$n$n$J$E.h$G$I$K$@ ",
|
||||
". i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&=&@ . < [ x&n$y&g%g%. . . . . n$I$K$d$@ . < [ } | 1 n$3 n$..7.n$h$G$I$K$d$@ ",
|
||||
". [ z&A&B&C&D&E&F&G&H&H&I&J&K&L&M&@ . [ } | n$y&g%g%. . . . . n$N&d$D.@ . '%'%'%'%'%n$)%n$)%'%n$'%'%'%'%'%@ ",
|
||||
". } | 1 O&P&Q&R&S&T&U&V&W&X&Y&Z&`&@ . } | 1 n$y&g%g%. . . . . *n$D.3#@ . } | 1 2 3 n$J$n$J$J$n$I$K$d$D.3#@ ",
|
||||
". | 1 .*+*@*#*$*%*&***=*-*;*>*,*'*@ . | 1 2 n$)*g%!*# . . . } j$x$n$e$@ . | 1 2 3 s ..n$n$n$n$I$K$d$D.3#e$@ ",
|
||||
". 1 ~*{*]*^*/*(*_*:*<*[*}*|*1*2*}%@ . 1 2 n$K$! g%3 -&!*. 3*n$4*g%z%n$@ . '%'%'%'%'%'%'%)%n$)%'%'%'%'%'%'%@ ",
|
||||
". 5*6*7*..7.E.h$8*9*0*a*b*c*d*e*:$@ . 2 n$f*w$g%;&n$g*h*r$i*n$j*r$j*n$@ . 2 3 s ..7.E.n$n$n$K$d$D.3#e$f$:$@ ",
|
||||
". k*l*..7.E.h$G$I$m*n*o*p*q*}%:$g$@ . 3 n$r*s*t*n$n$n$n$n$n$3#n$n$u*g$@ . 3 s ..7.E.h$n$n$J$d$D.3#e$f$:$g$@ ",
|
||||
"@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ v*n$n$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ "};
|
29
wmbutton/icons/edit.xpm
Normal file
29
wmbutton/icons/edit.xpm
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* XPM */
|
||||
static char * edit_xpm[] = {
|
||||
"18 18 8 1",
|
||||
" c None",
|
||||
". c #FFFFFF",
|
||||
"+ c #000000",
|
||||
"@ c #D5D6D5",
|
||||
"# c #DD0D8A",
|
||||
"$ c #AFB505",
|
||||
"% c #EFF707",
|
||||
"& c #F4C844",
|
||||
".................+",
|
||||
".@@@@@@@@@@@@@##@+",
|
||||
".@@@@@@@@@@@@####+",
|
||||
".@@@@@@@@@@@++###+",
|
||||
".@@@@@@@@@@++$+#@+",
|
||||
".@@@@@@@@@$%+++@@+",
|
||||
".@@@@@@@@$%%%+@@@+",
|
||||
".@@@@@@@$%%%$@@@@+",
|
||||
".@@@@@@$%%%$@@@@@+",
|
||||
".@@@@@$%%%$@@@@@@+",
|
||||
".@@@@$%%%$@@@@@@@+",
|
||||
".@@@$%%%$@@@@@@@@+",
|
||||
".@@$%%%$@@@@@@@@@+",
|
||||
".@@&%%$@@@@@@@@@@+",
|
||||
".@&&&$@@@@@@@@@@@+",
|
||||
".@&&@@@@@@@@@@@@@+",
|
||||
".+@@@@@@@@@@@@@@@+",
|
||||
"++++++++++++++++++"};
|
111
wmbutton/icons/ftp.xpm
Normal file
111
wmbutton/icons/ftp.xpm
Normal file
|
@ -0,0 +1,111 @@
|
|||
/* XPM */
|
||||
static char * ftp_xpm[] = {
|
||||
"18 18 90 1",
|
||||
" c None",
|
||||
". c #FFFFFF",
|
||||
"+ c #000000",
|
||||
"@ c #6F706F",
|
||||
"# c #686868",
|
||||
"$ c #D5D6D5",
|
||||
"% c #514E5A",
|
||||
"& c #1A1729",
|
||||
"* c #201A30",
|
||||
"= c #23203B",
|
||||
"- c #232039",
|
||||
"; c #211E37",
|
||||
"> c #616161",
|
||||
", c #6E6E6E",
|
||||
"' c #5B566C",
|
||||
") c #353056",
|
||||
"! c #423968",
|
||||
"~ c #48416C",
|
||||
"{ c #484066",
|
||||
"] c #413969",
|
||||
"^ c #615C75",
|
||||
"/ c #423A61",
|
||||
"( c #4F4D70",
|
||||
"_ c #594E85",
|
||||
": c #493F66",
|
||||
"< c #635C75",
|
||||
"[ c #3D3660",
|
||||
"} c #494169",
|
||||
"| c #4B4669",
|
||||
"1 c #4F4A6A",
|
||||
"2 c #8D8F8D",
|
||||
"3 c #878787",
|
||||
"4 c #5D5871",
|
||||
"5 c #333158",
|
||||
"6 c #3D3460",
|
||||
"7 c #423E65",
|
||||
"8 c #515171",
|
||||
"9 c #9D9E9D",
|
||||
"0 c #626262",
|
||||
"a c #8A8A8A",
|
||||
"b c #28233D",
|
||||
"c c #2E2749",
|
||||
"d c #373051",
|
||||
"e c #393561",
|
||||
"f c #393259",
|
||||
"g c #352C52",
|
||||
"h c #959497",
|
||||
"i c #ACABAE",
|
||||
"j c #737473",
|
||||
"k c #302A4F",
|
||||
"l c #3F3C64",
|
||||
"m c #4B4274",
|
||||
"n c #4F4876",
|
||||
"o c #3F3C69",
|
||||
"p c #393052",
|
||||
"q c #494261",
|
||||
"r c #52497A",
|
||||
"s c #4F487A",
|
||||
"t c #4D4669",
|
||||
"u c #463E69",
|
||||
"v c #14D121",
|
||||
"w c #332C54",
|
||||
"x c #3D3A69",
|
||||
"y c #494266",
|
||||
"z c #494666",
|
||||
"A c #494363",
|
||||
"B c #3F3B66",
|
||||
"C c #979897",
|
||||
"D c #58576C",
|
||||
"E c #5C5874",
|
||||
"F c #5E5576",
|
||||
"G c #5C597A",
|
||||
"H c #5E5778",
|
||||
"I c #5C5570",
|
||||
"J c #646464",
|
||||
"K c #6B6C6D",
|
||||
"L c #B1B0B4",
|
||||
"M c #B1AFB4",
|
||||
"N c #858587",
|
||||
"O c #6B6A6B",
|
||||
"P c #757475",
|
||||
"Q c #787678",
|
||||
"R c #7C7A7C",
|
||||
"S c #CDBC6E",
|
||||
"T c #AE6E22",
|
||||
"U c #6B6A6C",
|
||||
"V c #595959",
|
||||
"W c #9B9B9D",
|
||||
"X c #6E6C6F",
|
||||
"Y c #696869",
|
||||
".................+",
|
||||
".@@@@@@@@#$$$$$$$+",
|
||||
".@%&*=-;@>,$$$$$$+",
|
||||
".@')!~{]@>,$$$$$$+",
|
||||
".@^/(_(:@>,$$$$$$+",
|
||||
".@<[}|1_@23$$$$$$+",
|
||||
".@45678999999990a+",
|
||||
".@@@@@@9bcdefg9>,+",
|
||||
".$$hi@j9klmn}o9>,+",
|
||||
".9999999pqrstu9>,+",
|
||||
".9v99999wxyzAB9>C+",
|
||||
".9999999DEFGHI9J$+",
|
||||
".$$$K$$999999999$+",
|
||||
".$$$K$$$$LMNOPQR#+",
|
||||
".$$STS$99999999UV+",
|
||||
".KKTTTK9v99999WXV+",
|
||||
".$$STS$99999999Y$+",
|
||||
"++++++++++++++++++"};
|
32
wmbutton/icons/graph.xpm
Normal file
32
wmbutton/icons/graph.xpm
Normal file
|
@ -0,0 +1,32 @@
|
|||
/* XPM */
|
||||
static char * graph_xpm[] = {
|
||||
"18 18 11 1",
|
||||
" c None",
|
||||
". c #FFFFFF",
|
||||
"+ c #000000",
|
||||
"@ c #D5D6D5",
|
||||
"# c #090909",
|
||||
"$ c #A56721",
|
||||
"% c #F79B31",
|
||||
"& c #0D8214",
|
||||
"* c #14D121",
|
||||
"= c #050591",
|
||||
"- c #0909EF",
|
||||
".................+",
|
||||
".@@@@@#@@@#@@@@@@+",
|
||||
".@@@@@######@@@@@+",
|
||||
".@#@@@@@@@@@@@@@@+",
|
||||
".@#@@@@@@@@@@$$@@+",
|
||||
".@#@@@@@@@@@%%$@@+",
|
||||
".##@@&&@@@@@%%$@@+",
|
||||
".##@**&@@@@@%%$@@+",
|
||||
".##@**&@@@@@%%$@@+",
|
||||
".##@**&@@==@%%$@@+",
|
||||
".##@**&@--=@%%$@@+",
|
||||
".@#@**&@--=@%%$@@+",
|
||||
".@#@**&@--=@%%$@@+",
|
||||
".@#@**&@--=@%%$@@+",
|
||||
".@##############@+",
|
||||
".@@@@@#####@@@@@@+",
|
||||
".@@@@@@@@@@@@@@@@+",
|
||||
"++++++++++++++++++"};
|
84
wmbutton/icons/gv.xpm
Normal file
84
wmbutton/icons/gv.xpm
Normal file
|
@ -0,0 +1,84 @@
|
|||
/* XPM */
|
||||
static char * gv_xpm[] = {
|
||||
"18 18 63 1",
|
||||
" c None",
|
||||
". c #FFFFFF",
|
||||
"+ c #AEAAAE",
|
||||
"@ c #D5D6D5",
|
||||
"# c #000000",
|
||||
"$ c #95939B",
|
||||
"% c #090909",
|
||||
"& c #88888E",
|
||||
"* c #ECECEC",
|
||||
"= c #FEFEFE",
|
||||
"- c #F8F8F8",
|
||||
"; c #D1D1D1",
|
||||
"> c #FDFDFD",
|
||||
", c #9B9B9B",
|
||||
"' c #7F7D85",
|
||||
") c #D7D7D7",
|
||||
"! c #4F4F4F",
|
||||
"~ c #C4C4C4",
|
||||
"{ c #EFEFEF",
|
||||
"] c #727272",
|
||||
"^ c #898989",
|
||||
"/ c #F6F6F6",
|
||||
"( c #898A8F",
|
||||
"_ c #ACACAC",
|
||||
": c #B0B0B1",
|
||||
"< c #959595",
|
||||
"[ c #DFDFDF",
|
||||
"} c #434343",
|
||||
"| c #F4F4F4",
|
||||
"1 c #999999",
|
||||
"2 c #F0F0F0",
|
||||
"3 c #6C6C6D",
|
||||
"4 c #7E7E7E",
|
||||
"5 c #F3F3F3",
|
||||
"6 c #FCFCFC",
|
||||
"7 c #D9D9D9",
|
||||
"8 c #8C8C8C",
|
||||
"9 c #A8A9AF",
|
||||
"0 c #BCBCBC",
|
||||
"a c #9E9BA5",
|
||||
"b c #D4D4D4",
|
||||
"c c #3F4046",
|
||||
"d c #CECECE",
|
||||
"e c #DDDDDD",
|
||||
"f c #F2F2F2",
|
||||
"g c #EDEDED",
|
||||
"h c #CACACA",
|
||||
"i c #919191",
|
||||
"j c #B7B7B7",
|
||||
"k c #E0E0E0",
|
||||
"l c #D2D2D2",
|
||||
"m c #636364",
|
||||
"n c #DADADA",
|
||||
"o c #737373",
|
||||
"p c #BEBEBE",
|
||||
"q c #C1C1C1",
|
||||
"r c #979797",
|
||||
"s c #AFAFAF",
|
||||
"t c #737375",
|
||||
"u c #B5B5B7",
|
||||
"v c #B7B7B9",
|
||||
"w c #616163",
|
||||
"x c #0B0B0B",
|
||||
".................+",
|
||||
".@@@@@@@@@@@@@@@@#",
|
||||
".@@@@@$%%%%%@@@@@#",
|
||||
".@@@@&%*=.-;%@@@@#",
|
||||
".@@@@%->....,%@@@#",
|
||||
".@@@'%)!~{]^/%@@@#",
|
||||
".@(%%_:%<[%}.%%%@#",
|
||||
".@%{/|>>.....123%#",
|
||||
".@%45.>>.....678%#",
|
||||
".@9%^5>>.....0%%@#",
|
||||
".@@a%b>>.....%@@@#",
|
||||
".@@@%b>>.....%c@@#",
|
||||
".@@@%b>>.....d%@@#",
|
||||
".@@@%e>fg...h-;%@#",
|
||||
".@@%i6>j1f.k%l>~%#",
|
||||
".@%mn>2%opqr%sqs%#",
|
||||
".@%tuv%%%%%%@%%w@#",
|
||||
"###x%%############"};
|
135
wmbutton/icons/netscape.xpm
Normal file
135
wmbutton/icons/netscape.xpm
Normal file
|
@ -0,0 +1,135 @@
|
|||
/* XPM */
|
||||
static char * netscape_xpm[] = {
|
||||
"18 18 114 2",
|
||||
" c None",
|
||||
". c #FFFFFF",
|
||||
"+ c #000000",
|
||||
"@ c #000A0D",
|
||||
"# c #000F11",
|
||||
"$ c #001111",
|
||||
"% c #001113",
|
||||
"& c #001114",
|
||||
"* c #001112",
|
||||
"= c #000E10",
|
||||
"- c #00080A",
|
||||
"; c #001718",
|
||||
"> c #00171B",
|
||||
", c #00191D",
|
||||
"' c #001A1F",
|
||||
") c #001C1F",
|
||||
"! c #001C21",
|
||||
"~ c #001C20",
|
||||
"{ c #00191C",
|
||||
"] c #001D20",
|
||||
"^ c #001F23",
|
||||
"/ c #173337",
|
||||
"( c #F0F2F3",
|
||||
"_ c #001F26",
|
||||
": c #002129",
|
||||
"< c #24434A",
|
||||
"[ c #001F24",
|
||||
"} c #001F22",
|
||||
"| c #00181D",
|
||||
"1 c #002128",
|
||||
"2 c #00242B",
|
||||
"3 c #00252C",
|
||||
"4 c #1D4349",
|
||||
"5 c #849A9F",
|
||||
"6 c #002A32",
|
||||
"7 c #002C34",
|
||||
"8 c #002830",
|
||||
"9 c #385A61",
|
||||
"0 c #00272E",
|
||||
"a c #00242A",
|
||||
"b c #001E25",
|
||||
"c c #002B33",
|
||||
"d c #002D35",
|
||||
"e c #003038",
|
||||
"f c #003139",
|
||||
"g c #678186",
|
||||
"h c #00343C",
|
||||
"i c #002F37",
|
||||
"j c #00272F",
|
||||
"k c #00363E",
|
||||
"l c #00373F",
|
||||
"m c #003941",
|
||||
"n c #36666F",
|
||||
"o c #577D83",
|
||||
"p c #003C44",
|
||||
"q c #003841",
|
||||
"r c #003E47",
|
||||
"s c #004049",
|
||||
"t c #00414C",
|
||||
"u c #00444D",
|
||||
"v c #4D7B83",
|
||||
"w c #4D7A82",
|
||||
"x c #00444F",
|
||||
"y c #00424B",
|
||||
"z c #00414B",
|
||||
"A c #003F49",
|
||||
"B c #003840",
|
||||
"C c #004951",
|
||||
"D c #004A54",
|
||||
"E c #004C57",
|
||||
"F c #00505A",
|
||||
"G c #00515C",
|
||||
"H c #578C95",
|
||||
"I c #3E7982",
|
||||
"J c #004E57",
|
||||
"K c #004C56",
|
||||
"L c #004953",
|
||||
"M c #004851",
|
||||
"N c #00414E",
|
||||
"O c #00505B",
|
||||
"P c #005360",
|
||||
"Q c #005563",
|
||||
"R c #005964",
|
||||
"S c #005A69",
|
||||
"T c #005C69",
|
||||
"U c #72A5AF",
|
||||
"V c #2B7480",
|
||||
"W c #005864",
|
||||
"X c #005462",
|
||||
"Y c #00525F",
|
||||
"Z c #004F59",
|
||||
"` c #005C6A",
|
||||
" . c #025D6A",
|
||||
".. c #025F6F",
|
||||
"+. c #066676",
|
||||
"@. c #1F6875",
|
||||
"#. c #09515B",
|
||||
"$. c #034C56",
|
||||
"%. c #054F59",
|
||||
"&. c #90A4A7",
|
||||
"*. c #026372",
|
||||
"=. c #006170",
|
||||
"-. c #025C6A",
|
||||
";. c #005967",
|
||||
">. c #0E535E",
|
||||
",. c #0F4048",
|
||||
"'. c #182E33",
|
||||
"). c #0E1315",
|
||||
"!. c #0F1112",
|
||||
"~. c #1A1D1D",
|
||||
"{. c #152C30",
|
||||
"]. c #16454B",
|
||||
"^. c #185C68",
|
||||
"/. c #0F1315",
|
||||
". . . . . . . . . . . . . . . . . + ",
|
||||
". @ # # $ $ % & & & & * $ $ # = - + ",
|
||||
". ; > , ' ) ) ! ! ! ~ ) ) ' { > % + ",
|
||||
". ] ^ / ( ( _ : : : < ( ( ( [ } | + ",
|
||||
". 1 2 3 4 ( 5 6 7 7 8 9 ( 0 3 a b + ",
|
||||
". c d e f ( ( g h h h f ( f i 7 j + ",
|
||||
". h k l m ( n ( o p p q ( m l l e + ",
|
||||
". p r s t ( u v ( w x y ( z A r B + ",
|
||||
". x C D E ( F G H ( I J ( K L M N + ",
|
||||
". O P Q R ( S T T U ( V ( W X Y Z + ",
|
||||
". ` ...+.( @.#.$.%.&.( ( *.=.-.;.+ ",
|
||||
". >.,.'.).( !.+ + + + + + ~.{.].^.+ ",
|
||||
". + + + ( ( ( /.+ + + + + + + + + + ",
|
||||
". + + + + + + + + + + + + + + + + + ",
|
||||
". + + + + + + + + + + + + + + + + + ",
|
||||
". + + + + + + + + + + + + + + + + + ",
|
||||
". + + + + + + + + + + + + + + + + + ",
|
||||
"+ + + + + + + + + + + + + + + + + + "};
|
232
wmbutton/icons/paint.xpm
Normal file
232
wmbutton/icons/paint.xpm
Normal file
|
@ -0,0 +1,232 @@
|
|||
/* XPM */
|
||||
static char * paint_xpm[] = {
|
||||
"18 18 211 2",
|
||||
" c None",
|
||||
". c #FFFFFF",
|
||||
"+ c #000000",
|
||||
"@ c #D5D6D5",
|
||||
"# c #E2D7C3",
|
||||
"$ c #E8E2C0",
|
||||
"% c #DAD499",
|
||||
"& c #E4D08D",
|
||||
"* c #EABE8D",
|
||||
"= c #E3B26B",
|
||||
"- c #E3B982",
|
||||
"; c #BDA385",
|
||||
"> c #EDE1C3",
|
||||
", c #EDC48A",
|
||||
"' c #F79854",
|
||||
") c #F88E42",
|
||||
"! c #EC9D54",
|
||||
"~ c #FFC280",
|
||||
"{ c #DA776F",
|
||||
"] c #EA3166",
|
||||
"^ c #DE2F66",
|
||||
"/ c #D67F6A",
|
||||
"( c #BBA97D",
|
||||
"_ c #EED392",
|
||||
": c #FFCF86",
|
||||
"< c #FCBB57",
|
||||
"[ c #EA2F00",
|
||||
"} c #EC2F00",
|
||||
"| c #D95025",
|
||||
"1 c #F3B366",
|
||||
"2 c #E6466F",
|
||||
"3 c #FF0061",
|
||||
"4 c #DE7075",
|
||||
"5 c #D7B275",
|
||||
"6 c #B89A77",
|
||||
"7 c #F2DDB7",
|
||||
"8 c #FDCF86",
|
||||
"9 c #FFCF72",
|
||||
"0 c #F9BB57",
|
||||
"a c #D02F00",
|
||||
"b c #E02F00",
|
||||
"c c #F04310",
|
||||
"d c #F6B661",
|
||||
"e c #E44D6C",
|
||||
"f c #F00877",
|
||||
"g c #F80677",
|
||||
"h c #DE7179",
|
||||
"i c #CEA764",
|
||||
"j c #CE9B60",
|
||||
"k c #F3D269",
|
||||
"l c #F8D334",
|
||||
"m c #FFDC45",
|
||||
"n c #FBC75D",
|
||||
"o c #E07D3B",
|
||||
"p c #EA7A2A",
|
||||
"q c #E8843C",
|
||||
"r c #EDBD61",
|
||||
"s c #E3947A",
|
||||
"t c #DE6C79",
|
||||
"u c #DB3686",
|
||||
"v c #CE7E9D",
|
||||
"w c #CE8BA6",
|
||||
"x c #CE8188",
|
||||
"y c #996D74",
|
||||
"z c #FFEB19",
|
||||
"A c #FFFF00",
|
||||
"B c #FFF709",
|
||||
"C c #F3D135",
|
||||
"D c #E6C26F",
|
||||
"E c #D3CE77",
|
||||
"F c #D1B165",
|
||||
"G c #CFB875",
|
||||
"H c #AF7C77",
|
||||
"I c #B1306F",
|
||||
"J c #961766",
|
||||
"K c #9D36B5",
|
||||
"L c #9F09D7",
|
||||
"M c #A406CC",
|
||||
"N c #A55DB4",
|
||||
"O c #FCF00C",
|
||||
"P c #FFF70C",
|
||||
"Q c #E0D148",
|
||||
"R c #DEC063",
|
||||
"S c #D0C261",
|
||||
"T c #D5B46A",
|
||||
"U c #907059",
|
||||
"V c #421B10",
|
||||
"W c #7B0947",
|
||||
"X c #7C0642",
|
||||
"Y c #B43EDA",
|
||||
"Z c #A90BFE",
|
||||
"` c #B853C8",
|
||||
" . c #9F7258",
|
||||
".. c #FAD739",
|
||||
"+. c #F3ED24",
|
||||
"@. c #F8E533",
|
||||
"#. c #D9C763",
|
||||
"$. c #ECA76F",
|
||||
"%. c #D1C260",
|
||||
"&. c #C7A65C",
|
||||
"*. c #311F0F",
|
||||
"=. c #0C0000",
|
||||
"-. c #390012",
|
||||
";. c #5F1B24",
|
||||
">. c #AA36BA",
|
||||
",. c #9B0BD6",
|
||||
"'. c #9D0BDA",
|
||||
"). c #A4569D",
|
||||
"!. c #EAC46F",
|
||||
"~. c #F0CB6C",
|
||||
"{. c #D8B36A",
|
||||
"]. c #D1BD6E",
|
||||
"^. c #D3B375",
|
||||
"/. c #CBB260",
|
||||
"(. c #B28866",
|
||||
"_. c #0C0706",
|
||||
":. c #020206",
|
||||
"<. c #2B1010",
|
||||
"[. c #5E3D1F",
|
||||
"}. c #CB8B8D",
|
||||
"|. c #B78394",
|
||||
"1. c #C27794",
|
||||
"2. c #B0747D",
|
||||
"3. c #E6C895",
|
||||
"4. c #DCAF6C",
|
||||
"5. c #D8C065",
|
||||
"6. c #CEBF61",
|
||||
"7. c #C5B677",
|
||||
"8. c #ACA385",
|
||||
"9. c #9E9899",
|
||||
"0. c #434340",
|
||||
"a. c #3F3D1C",
|
||||
"b. c #744232",
|
||||
"c. c #BA7D50",
|
||||
"d. c #9B7687",
|
||||
"e. c #313FDC",
|
||||
"f. c #1E3DF2",
|
||||
"g. c #494FBA",
|
||||
"h. c #D3BB6C",
|
||||
"i. c #CFB869",
|
||||
"j. c #D0BB6C",
|
||||
"k. c #B1A5A1",
|
||||
"l. c #8A94A5",
|
||||
"m. c #2D3945",
|
||||
"n. c #444823",
|
||||
"o. c #A17741",
|
||||
"p. c #CF9A61",
|
||||
"q. c #887F9F",
|
||||
"r. c #0B2FFE",
|
||||
"s. c #002FFE",
|
||||
"t. c #324AD9",
|
||||
"u. c #9C725C",
|
||||
"v. c #C6A47F",
|
||||
"w. c #A69F87",
|
||||
"x. c #3A364D",
|
||||
"y. c #525141",
|
||||
"z. c #A67E41",
|
||||
"A. c #C88B53",
|
||||
"B. c #CF9061",
|
||||
"C. c #C88761",
|
||||
"D. c #897F90",
|
||||
"E. c #0F2FF4",
|
||||
"F. c #082FF8",
|
||||
"G. c #4047D9",
|
||||
"H. c #81645A",
|
||||
"I. c #B27F5B",
|
||||
"J. c #D4A77A",
|
||||
"K. c #8C6636",
|
||||
"L. c #72491F",
|
||||
"M. c #9D7A45",
|
||||
"N. c #CC9A61",
|
||||
"O. c #CF9361",
|
||||
"P. c #C99061",
|
||||
"Q. c #A97E5C",
|
||||
"R. c #906D5F",
|
||||
"S. c #808185",
|
||||
"T. c #8F7885",
|
||||
"U. c #A16773",
|
||||
"V. c #6D4C42",
|
||||
"W. c #966B43",
|
||||
"X. c #DBA97B",
|
||||
"Y. c #7B5029",
|
||||
"Z. c #767361",
|
||||
"`. c #BBA07C",
|
||||
" + c #CA9E68",
|
||||
".+ c #CA9561",
|
||||
"++ c #CF8761",
|
||||
"@+ c #B3805C",
|
||||
"#+ c #322841",
|
||||
"$+ c #413759",
|
||||
"%+ c #8D7963",
|
||||
"&+ c #A7735A",
|
||||
"*+ c #A26453",
|
||||
"=+ c #845B3A",
|
||||
"-+ c #DBAA7B",
|
||||
";+ c #714D25",
|
||||
">+ c #C69D70",
|
||||
",+ c #BE8D61",
|
||||
"'+ c #A77F54",
|
||||
")+ c #443251",
|
||||
"!+ c #606492",
|
||||
"~+ c #A39EA3",
|
||||
"{+ c #A46959",
|
||||
"]+ c #96734D",
|
||||
"^+ c #D6A96D",
|
||||
"/+ c #775529",
|
||||
"(+ c #A17E63",
|
||||
"_+ c #AC825F",
|
||||
":+ c #936958",
|
||||
"<+ c #AC97A9",
|
||||
"[+ c #C9B4B3",
|
||||
". . . . . . . . . . . . . . . . . + ",
|
||||
". @ @ @ @ # $ % & * = - ; @ @ @ @ + ",
|
||||
". @ @ > , ' ) ! ~ { ] ^ / ( @ @ @ + ",
|
||||
". @ _ : < [ } | 1 2 3 3 4 5 6 @ @ + ",
|
||||
". 7 8 9 0 a b c d e f g h i j 6 @ + ",
|
||||
". k l m n o p q r s t u v w x y @ + ",
|
||||
". z A B C D E F G H I J K L M N 6 + ",
|
||||
". O A P Q R S T U V W X Y Z Z ` .+ ",
|
||||
". ..+.@.#.$.%.&.*.=.-.;.>.,.'.). .+ ",
|
||||
". !.~.{.].^./.(._.:.<.[.}.|.1.2. .+ ",
|
||||
". 3.4.5.6.7.8.9.0.a.b.c.d.e.f.g. .+ ",
|
||||
". @ h.i.j.k.l.m.n.o.p.p.q.r.s.t.u.+ ",
|
||||
". @ @ @ v.w.x.y.z.A.B.C.D.E.F.G.H.+ ",
|
||||
". @ @ I.J.K.L.M.N.O.P.Q.R.S.T.U.V.+ ",
|
||||
". @ W.X.Y.Z.`. +.+++@+#+$+%+&+*+6 + ",
|
||||
". =+-+;+@ @ @ @ >+,+'+)+!+~+{+]+@ + ",
|
||||
". ^+/+@ @ @ @ @ @ (+_+:+<+[+6 @ @ + ",
|
||||
"+ + + + + + + + + + + + + + + + + + "};
|
27
wmbutton/icons/wp.xpm
Normal file
27
wmbutton/icons/wp.xpm
Normal file
|
@ -0,0 +1,27 @@
|
|||
/* XPM */
|
||||
static char * wp_xpm[] = {
|
||||
"18 18 6 1",
|
||||
" c None",
|
||||
". c #FFFFFF",
|
||||
"+ c #AEAAAE",
|
||||
"@ c #D5D6D5",
|
||||
"# c #000000",
|
||||
"$ c #0909EF",
|
||||
".................+",
|
||||
".@@@@@@@@@@@@@@@@#",
|
||||
".$$$@$$$$@$$$@@@@#",
|
||||
".@$$@@$$@@$$@@@@@#",
|
||||
".@$$@@$$@@$@@@@@@#",
|
||||
".@$$@$$$@$$@@@@@@#",
|
||||
".@$$@$@$@$@@@@@@@#",
|
||||
".@@$$$@$@$$$$$$@@#",
|
||||
".@@$$@@$$@@$$@$$@#",
|
||||
".@@$$@@$$@@$$@$$@#",
|
||||
".@@$@@@$@@$$@@$$@#",
|
||||
".@@@@@@@@@$$@$$@@#",
|
||||
".@@@@@@@@@$$$$@@@#",
|
||||
".@@@@@@@@$$@@@@@@#",
|
||||
".@@@@@@@@$$@@@@@@#",
|
||||
".@@@@@@@$$$$@@@@@#",
|
||||
".@@@@@@@@@@@@@@@@#",
|
||||
"##################"};
|
202
wmbutton/icons/xterm.xpm
Normal file
202
wmbutton/icons/xterm.xpm
Normal file
|
@ -0,0 +1,202 @@
|
|||
/* XPM */
|
||||
static char * xterm_xpm[] = {
|
||||
"18 18 181 2",
|
||||
" c None",
|
||||
". c #FFFFFF",
|
||||
"+ c #AEAAAE",
|
||||
"@ c #D5D6D5",
|
||||
"# c #000000",
|
||||
"$ c #EFEEEE",
|
||||
"% c #F6F6F4",
|
||||
"& c #F6F7F3",
|
||||
"* c #F3F4EE",
|
||||
"= c #E8E9E1",
|
||||
"- c #D6D7CF",
|
||||
"; c #C5C5BE",
|
||||
"> c #B3B2A9",
|
||||
", c #9F9F94",
|
||||
"' c #868685",
|
||||
") c #6E706A",
|
||||
"! c #949685",
|
||||
"~ c #B4B3B6",
|
||||
"{ c #898297",
|
||||
"] c #554A75",
|
||||
"^ c #40365E",
|
||||
"/ c #241A4B",
|
||||
"( c #170B46",
|
||||
"_ c #12093E",
|
||||
": c #0E0737",
|
||||
"< c #0A0530",
|
||||
"[ c #060429",
|
||||
"} c #030325",
|
||||
"| c #00031F",
|
||||
"1 c #A1A2A0",
|
||||
"2 c #575747",
|
||||
"3 c #B2B2B3",
|
||||
"4 c #4D436A",
|
||||
"5 c #160350",
|
||||
"6 c #13034B",
|
||||
"7 c #110346",
|
||||
"8 c #0F0340",
|
||||
"9 c #0C033A",
|
||||
"0 c #0A0335",
|
||||
"a c #07032F",
|
||||
"b c #05032A",
|
||||
"c c #A3A4A3",
|
||||
"d c #5C5C4D",
|
||||
"e c #B1B0B1",
|
||||
"f c #4E436A",
|
||||
"g c #070330",
|
||||
"h c #A4A5A3",
|
||||
"i c #61614F",
|
||||
"j c #3B3B2E",
|
||||
"k c #AEAEAF",
|
||||
"l c #4D4269",
|
||||
"m c #261459",
|
||||
"n c #281C4E",
|
||||
"o c #2A1E4E",
|
||||
"p c #150945",
|
||||
"q c #0C033B",
|
||||
"r c #0A0336",
|
||||
"s c #A7A7A5",
|
||||
"t c #6A6B59",
|
||||
"u c #454632",
|
||||
"v c #ADACAE",
|
||||
"w c #52476D",
|
||||
"x c #38314A",
|
||||
"y c #0A0809",
|
||||
"z c #181618",
|
||||
"A c #362F50",
|
||||
"B c #0F053D",
|
||||
"C c #000320",
|
||||
"D c #ABACAB",
|
||||
"E c #757764",
|
||||
"F c #565842",
|
||||
"G c #5A5072",
|
||||
"H c #5F5A67",
|
||||
"I c #676149",
|
||||
"J c #777570",
|
||||
"K c #25232F",
|
||||
"L c #170E43",
|
||||
"M c #05032B",
|
||||
"N c #030326",
|
||||
"O c #B0B0AF",
|
||||
"P c #7E826D",
|
||||
"Q c #666751",
|
||||
"R c #AAABAB",
|
||||
"S c #645C7A",
|
||||
"T c #776349",
|
||||
"U c #E5C319",
|
||||
"V c #A78F32",
|
||||
"W c #27232C",
|
||||
"X c #1E1448",
|
||||
"Y c #080330",
|
||||
"Z c #010320",
|
||||
"` c #B2B3B2",
|
||||
" . c #888A75",
|
||||
".. c #6D6F59",
|
||||
"+. c #A7A7AA",
|
||||
"@. c #6D677D",
|
||||
"#. c #9A9798",
|
||||
"$. c #DBD0B1",
|
||||
"%. c #ECE9E0",
|
||||
"&. c #353334",
|
||||
"*. c #362F4E",
|
||||
"=. c #0F073A",
|
||||
"-. c #080331",
|
||||
";. c #BBBCBB",
|
||||
">. c #8B8E79",
|
||||
",. c #72735E",
|
||||
"'. c #A8A7A8",
|
||||
"). c #636264",
|
||||
"!. c #D9D8D7",
|
||||
"~. c #FAFAF8",
|
||||
"{. c #8D8D8D",
|
||||
"]. c #18171B",
|
||||
"^. c #514D66",
|
||||
"/. c #434058",
|
||||
"(. c #403E53",
|
||||
"_. c #3D3C4F",
|
||||
":. c #3A3B4A",
|
||||
"<. c #CACBC8",
|
||||
"[. c #8A8D78",
|
||||
"}. c #64665B",
|
||||
"|. c #9F9EA1",
|
||||
"1. c #7F7E7E",
|
||||
"2. c #F9FAF8",
|
||||
"3. c #FBFBF9",
|
||||
"4. c #DEDFDD",
|
||||
"5. c #131313",
|
||||
"6. c #959695",
|
||||
"7. c #F0EFEA",
|
||||
"8. c #ECECE7",
|
||||
"9. c #E9E9E4",
|
||||
"0. c #E7E7DE",
|
||||
"a. c #DEDED3",
|
||||
"b. c #858773",
|
||||
"c. c #555551",
|
||||
"d. c #A7A293",
|
||||
"e. c #F9F9F8",
|
||||
"f. c #F8F8F6",
|
||||
"g. c #F0EEDF",
|
||||
"h. c #1D1D19",
|
||||
"i. c #5D5C58",
|
||||
"j. c #C9C9BE",
|
||||
"k. c #C7C7BD",
|
||||
"l. c #939388",
|
||||
"m. c #929484",
|
||||
"n. c #9A9A8B",
|
||||
"o. c #595953",
|
||||
"p. c #515161",
|
||||
"q. c #C7C1B4",
|
||||
"r. c #ECC635",
|
||||
"s. c #C4A420",
|
||||
"t. c #AFADA8",
|
||||
"u. c #F9F9F6",
|
||||
"v. c #F9F9F7",
|
||||
"w. c #E6CD79",
|
||||
"x. c #7C5B09",
|
||||
"y. c #AB922F",
|
||||
"z. c #343326",
|
||||
"A. c #1E1E14",
|
||||
"B. c #313125",
|
||||
"C. c #504F4F",
|
||||
"D. c #DBC475",
|
||||
"E. c #F5CC10",
|
||||
"F. c #F4CA10",
|
||||
"G. c #C1AC62",
|
||||
"H. c #EEEEEC",
|
||||
"I. c #C2C2C0",
|
||||
"J. c #A07F2F",
|
||||
"K. c #F5C80E",
|
||||
"L. c #F3CB17",
|
||||
"M. c #B0A263",
|
||||
"N. c #626254",
|
||||
"O. c #595949",
|
||||
"P. c #9A9693",
|
||||
"Q. c #B9A478",
|
||||
"R. c #CBA133",
|
||||
"S. c #967432",
|
||||
"T. c #6F6D6D",
|
||||
"U. c #6F6B6D",
|
||||
"V. c #957642",
|
||||
"W. c #C59D35",
|
||||
"X. c #8D8D86",
|
||||
". . . . . . . . . . . . . . . . . + ",
|
||||
". @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # ",
|
||||
". @ @ $ % & * = - ; > , ' ) ! @ @ # ",
|
||||
". @ ~ { ] ^ / ( _ : < [ } | 1 2 @ # ",
|
||||
". @ 3 4 5 6 7 8 9 0 a b } | c d @ # ",
|
||||
". @ e f 5 6 7 8 9 0 g b } | h i j # ",
|
||||
". @ k l m n o p q r g b } | s t u # ",
|
||||
". @ v w x y z A B r g b } C D E F # ",
|
||||
". @ v G H I J K L r g M N C O P Q # ",
|
||||
". @ R S T U V W X r Y M N Z ` ...# ",
|
||||
". @ +.@.#.$.%.&.*.=.-.M N Z ;.>.,.# ",
|
||||
". @ '.).!.~.% {.].^./.(._.:.<.[.}.# ",
|
||||
". @ |.1.2.3.3.4.5.6.7.8.9.0.a.b.c.# ",
|
||||
". @ @ d.e.f.~.g.h.i.j.k.l.m.n.o.p.# ",
|
||||
". q.r.s.t.u.v.w.x.y.z.A.B.C.p.p.p.# ",
|
||||
". D.E.F.G.H.I.J.K.L.M.N.O.p.p.p.@ # ",
|
||||
". P.Q.R.S.T.U.V.W.X.@ @ @ @ @ @ @ # ",
|
||||
"# # # # # # # # # # # # # # # # # # "};
|
68
wmbutton/mask.xbm
Normal file
68
wmbutton/mask.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,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
692
wmbutton/wmb_libs.c
Normal file
692
wmbutton/wmb_libs.c
Normal file
|
@ -0,0 +1,692 @@
|
|||
/* wmb_libs.c - Edward H. Flora - ehf_dockapps@cox.net */
|
||||
/* Last Modified: 4/3/04 */
|
||||
/*
|
||||
* These functions are designed to work with wmbutton.
|
||||
*/
|
||||
|
||||
/* PORTABILITY:
|
||||
******************
|
||||
* Coded in ANSI C, using ANSI prototypes.
|
||||
*/
|
||||
|
||||
/****** Include Files *************************************************/
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "wmbutton.h"
|
||||
|
||||
|
||||
/****** ToolTip Globals ***********************************************/
|
||||
|
||||
static struct timeval _tStart;
|
||||
|
||||
extern struct Config_t Config;
|
||||
int _bTooltip = 0;
|
||||
XFontStruct* _fTooltip;
|
||||
int _nFontHeight, _nFontY;
|
||||
int _nScreenWidth, _nScreenHeight;
|
||||
GC _gcMono= 0;
|
||||
Window _wTooltip;
|
||||
|
||||
/****** Parse Command Line ********************************************/
|
||||
void parseargs(int argc, char **argv) {
|
||||
int current;
|
||||
char *Home = getenv("HOME");
|
||||
|
||||
while (-1 != (current = getopt(argc, argv, "vhnmsF:b:g:d:f:"))) {
|
||||
switch (current) {
|
||||
case 'v':
|
||||
Config.Verbose = 1;
|
||||
break;
|
||||
case '?':
|
||||
case 'h':
|
||||
show_usage();
|
||||
break;
|
||||
case 'm':
|
||||
Config.mmouse = 1;
|
||||
break;
|
||||
case 'n':
|
||||
Config.bTooltipDisable = 1;
|
||||
break;
|
||||
case 's':
|
||||
Config.bTooltipSwapColors = 1;
|
||||
break;
|
||||
case 'g':
|
||||
Config.Geometry_str = strdup(optarg);
|
||||
break;
|
||||
case 'd':
|
||||
Config.Display_str = strdup(optarg);
|
||||
break;
|
||||
case 'f':
|
||||
Config.configfile = strdup(optarg);
|
||||
break;
|
||||
case 'F':
|
||||
Config.szTooltipFont = strdup(optarg);
|
||||
break;
|
||||
case 'b':
|
||||
Config.buttonfile = strdup(optarg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!Config.configfile) {
|
||||
if (Home != NULL) {
|
||||
Config.configfile = malloc(
|
||||
strlen(Home) + strlen(CONFFILENAME) + 1);
|
||||
sprintf(Config.configfile, "%s%s", Home, CONFFILENAME);
|
||||
}
|
||||
}
|
||||
|
||||
if (!Config.buttonfile) {
|
||||
if (Home != NULL) {
|
||||
Config.buttonfile = malloc(
|
||||
strlen(Home) + strlen(BUTTONFILENAME) + 1);
|
||||
sprintf(Config.buttonfile, "%s%s", Home, BUTTONFILENAME);
|
||||
}
|
||||
}
|
||||
|
||||
if (!Config.Geometry_str)
|
||||
Config.Geometry_str = "64x64+0+0";
|
||||
|
||||
if (!Config.Display_str)
|
||||
Config.Display_str = "";
|
||||
|
||||
if (!Config.szTooltipFont)
|
||||
Config.szTooltipFont = TOOLTIP_FONT;
|
||||
|
||||
if (!Config.bTooltipDisable)
|
||||
Config.bTooltipDisable = !TOOLTIP_SUPPORT;
|
||||
|
||||
}
|
||||
|
||||
/****** Show Usage Information ****************************************/
|
||||
void show_usage() {
|
||||
extern char *app_name;
|
||||
|
||||
fprintf(stderr,"\n");
|
||||
fprintf(stderr,"usage: %s [-g geom] [-d dpy] [-f cfgfile] [-b btnfile] "\
|
||||
"[-F <font>] [-v] [-s] [-n]\n",app_name);
|
||||
fprintf(stderr,"\n");
|
||||
fprintf(stderr," wmbutton Ver %d Rel %d\n",VER,REL);
|
||||
fprintf(stderr,"\n");
|
||||
fprintf(stderr,"-g <geometry> Window Geometry - ie: 64x64+10+10\n");
|
||||
fprintf(stderr,"-d <display> Display - ie: 127.0.0.1:0.0\n");
|
||||
fprintf(stderr,"-f <filename> Full path to configuration file.\n");
|
||||
fprintf(stderr,"-b <filename> Full path to button xpm.\n");
|
||||
fprintf(stderr,"-F <font> Custom tooltip font (e.g. -b\\&h-lucidatypewriter-medium-*-*-*-12-*)\n");
|
||||
fprintf(stderr,"-v Verbose Mode.\n");
|
||||
fprintf(stderr,"-h Help. This message.\n");
|
||||
#if MIDMOUSE
|
||||
fprintf(stderr,"-m Disable Middle Mouse functionality.\n");
|
||||
#else
|
||||
fprintf(stderr,"-m Enable Middle Mouse functionality.\n");
|
||||
#endif
|
||||
fprintf(stderr,"-s Swap tooltip colors.\n");
|
||||
fprintf(stderr,"-n Turn off tooltips.\n");
|
||||
fprintf(stderr,"\n");
|
||||
exit(0);
|
||||
}/***********************************************************************/
|
||||
|
||||
|
||||
/****** Error Handler Routine *****************************************/
|
||||
void err_mess(int err, char *str) {
|
||||
|
||||
switch (err) {
|
||||
case FAILDISP:
|
||||
fprintf(stderr,"Fail: XOpenDisplay for %s\n", str);
|
||||
exit(err);
|
||||
case FAILSWIN:
|
||||
fprintf(stderr,"Fail: XCreateSimpleWindow\n");
|
||||
exit(err);
|
||||
case FAILICON:
|
||||
fprintf(stderr,"Fail: XCreateSimpleWindow\n");
|
||||
exit(err);
|
||||
case FAILXPM:
|
||||
fprintf(stderr,"Fail: XCreateBitmapFromData\n");
|
||||
break;
|
||||
case FAILWNAM:
|
||||
fprintf(stderr,"%s: Can't set up window name\n", str);
|
||||
exit(err);
|
||||
case FAILGC:
|
||||
fprintf(stderr,"Fail: XCreateGC\n");
|
||||
exit(err);
|
||||
case FAILCONF:
|
||||
fprintf(stderr, "Fail: Can't Find configuration file %s\n",str);
|
||||
exit(err);
|
||||
case FAILTMPL:
|
||||
fprintf(stderr, "Fail: Can't Create 'template' Pixmap\n");
|
||||
exit(err);
|
||||
case FAILVIS:
|
||||
fprintf(stderr, "Fail: Can't Create 'visible' Pixmap\n");
|
||||
exit(err);
|
||||
case FAILBUT:
|
||||
fprintf(stderr, "Fail: Can't Create 'buttons' Pixmap\n");
|
||||
exit(err);
|
||||
default:
|
||||
fprintf(stderr, "Fail: UnSpecified Error: %d\n",err);
|
||||
fprintf(stderr, "Fail: %s\n",str);
|
||||
exit(err);
|
||||
}
|
||||
|
||||
}/***********************************************************************/
|
||||
|
||||
/***********************************************************************
|
||||
* RunAppN(int app)
|
||||
*
|
||||
* Run the command given in the configuration file 'configfile'
|
||||
***********************************************************************/
|
||||
void RunAppN( int app ) {
|
||||
char *cmndstr;
|
||||
extern struct Config_t Config;
|
||||
|
||||
cmndstr = Parse(app); // Get command to pass to system
|
||||
|
||||
if (Config.Verbose) fprintf(stderr, "Command String: %s", cmndstr);
|
||||
|
||||
if (cmndstr != NULL) {
|
||||
system(cmndstr); // if there's a command, run it
|
||||
free(cmndstr);
|
||||
}
|
||||
}/***********************************************************************/
|
||||
|
||||
/***********************************************************************
|
||||
* Parse(int app)
|
||||
*
|
||||
* Parses the file 'configfile' for command to execute.
|
||||
***********************************************************************/
|
||||
char *Parse(int app) {
|
||||
FILE *fp;
|
||||
char Buf[BUFFER_SIZE];
|
||||
char *Ptr;
|
||||
|
||||
if ((fp = fopen(Config.configfile, "r")) == NULL)
|
||||
err_mess(FAILCONF,Config.configfile);
|
||||
|
||||
while ((Ptr = fgets(Buf, BUFFER_SIZE, fp))) {
|
||||
if (atoi(Buf) == app)
|
||||
break;
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
|
||||
if (!Ptr)
|
||||
return Ptr;
|
||||
|
||||
Ptr = strchr(Buf, '\t'); // find first tab
|
||||
if (Ptr == NULL) Ptr = strchr(Buf, ' '); // or space charater
|
||||
if (Ptr == NULL) return(NULL);
|
||||
Ptr++;
|
||||
|
||||
Ptr = strdup(Ptr);
|
||||
|
||||
return(Ptr);
|
||||
}/**********************************************************************/
|
||||
|
||||
/***********************************************************************
|
||||
* initTime
|
||||
*
|
||||
* Copyright (c) 2001 Bruno Essmann <essmann@users.sourceforge.net>
|
||||
***********************************************************************/
|
||||
|
||||
void initTime () {
|
||||
extern struct Config_t Config;
|
||||
|
||||
if (Config.Verbose) {
|
||||
fprintf(stdout, "[ ] initializing time\n");
|
||||
}
|
||||
|
||||
gettimeofday(&_tStart, NULL);
|
||||
}/**********************************************************************/
|
||||
|
||||
long currentTimeMillis () {
|
||||
struct timeval tNow;
|
||||
struct timeval tElapsed;
|
||||
|
||||
gettimeofday(&tNow, NULL);
|
||||
|
||||
if (_tStart.tv_usec > tNow.tv_usec) {
|
||||
tNow.tv_usec+= 1000000;
|
||||
tNow.tv_sec--;
|
||||
}
|
||||
tElapsed.tv_sec= tNow.tv_sec - _tStart.tv_sec;
|
||||
tElapsed.tv_usec= tNow.tv_usec - _tStart.tv_usec;
|
||||
return (tElapsed.tv_sec * 1000) + (tElapsed.tv_usec / 1000);
|
||||
}/**********************************************************************/
|
||||
|
||||
|
||||
void getWindowOrigin (Window w, int* nX, int* nY) {
|
||||
extern Display *display;
|
||||
Window wWindow, wParent, wRoot;
|
||||
Window* wChildren;
|
||||
unsigned int nChildren;
|
||||
unsigned int ww, wh, wb, wd;
|
||||
int wx, wy;
|
||||
|
||||
wParent= w;
|
||||
do {
|
||||
wWindow= wParent;
|
||||
if (!XQueryTree(display, wParent, &wRoot, &wParent, &wChildren, &nChildren))
|
||||
return;
|
||||
|
||||
if (wChildren)
|
||||
XFree(wChildren);
|
||||
|
||||
} while (wParent != wRoot);
|
||||
|
||||
if (XGetGeometry(display, wWindow, &wRoot, &wx, &wy, &ww, &wh, &wb, &wd)) {
|
||||
if (nX) {
|
||||
*nX= wx;
|
||||
}
|
||||
if (nY) {
|
||||
*nY= wy;
|
||||
}
|
||||
}
|
||||
}/**********************************************************************/
|
||||
|
||||
/***********************************************************************
|
||||
* getButtonLocation
|
||||
*
|
||||
* compute location for each button's tooltip (not perfect)
|
||||
***********************************************************************/
|
||||
void getButtonLocation (int nButton, int* nLocationX, int* nLocationY) {
|
||||
*nLocationX = 0;
|
||||
*nLocationY = 8;
|
||||
while (nButton > BUTTON_COLS) {
|
||||
*nLocationY += BUTTON_SIZE;
|
||||
nButton -= BUTTON_COLS;
|
||||
}
|
||||
while (nButton > 0) {
|
||||
*nLocationX += BUTTON_SIZE - 1;
|
||||
nButton--;
|
||||
}
|
||||
}/**********************************************************************/
|
||||
|
||||
/* SkipWord & SkipSpaces: utility functions for getNicenedString */
|
||||
char *SkipWord(char *Text) {
|
||||
char *Result = Text;
|
||||
|
||||
while ((*Result != ' ')&&(*Result != '\t')&&
|
||||
(*Result != '\n')&&(*Result != 0x00))
|
||||
Result++;
|
||||
return Result;
|
||||
}
|
||||
|
||||
char *SkipSpaces(char *Text) {
|
||||
char *Result = Text;
|
||||
|
||||
while ((*Result == ' ')||(*Result == '\t')||(*Result == '\n'))
|
||||
Result++;
|
||||
return Result;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* getNicenedString
|
||||
*
|
||||
* nicen the parsed command from the .wmbutton config file
|
||||
* - cut if too long
|
||||
* - remove parameters, whitespace and the '&'...
|
||||
***********************************************************************/
|
||||
char* getNicenedString (char *old, int andAddSeparator) {
|
||||
char *WorkStr;
|
||||
char *WorkStrEnd;
|
||||
char *StartPtr;
|
||||
char *EndPtr;
|
||||
|
||||
char *RetStr;
|
||||
|
||||
if (!old) {
|
||||
if (andAddSeparator)
|
||||
return strdup("-- | ");
|
||||
else
|
||||
return strdup("--");
|
||||
}
|
||||
|
||||
RetStr = malloc(strlen(old) + 3 + 1); // 3 for Seperator
|
||||
*RetStr = 0x00;
|
||||
|
||||
WorkStr = strdup(old);
|
||||
WorkStrEnd = strchr(WorkStr, 0x00);
|
||||
StartPtr = WorkStr;
|
||||
|
||||
while(StartPtr < WorkStrEnd) {
|
||||
StartPtr = SkipSpaces(StartPtr);
|
||||
EndPtr = SkipWord(StartPtr);
|
||||
*EndPtr = 0x00;
|
||||
|
||||
if ((*StartPtr == '&')||(*StartPtr == '-'))
|
||||
break;
|
||||
|
||||
strcat(RetStr, StartPtr);
|
||||
strcat(RetStr, " ");
|
||||
StartPtr = EndPtr+1;
|
||||
}
|
||||
|
||||
free(WorkStr);
|
||||
|
||||
if (andAddSeparator) {
|
||||
strcat(RetStr, "| ");
|
||||
}
|
||||
|
||||
return RetStr;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* getButtonAppNames
|
||||
*
|
||||
* returns the 1..3 application names / commands to be shown in tooltip
|
||||
***********************************************************************/
|
||||
char* getButtonAppNames (int nButton) {
|
||||
char *str = NULL;
|
||||
char *tmp1,*tmp2;
|
||||
|
||||
if (!( nButton < 0 || nButton > 9 )) {
|
||||
|
||||
// FIXME: _Might_ overflow, but it's unlikely.
|
||||
// Perhaps one should fix this sometime ;)
|
||||
str = (char*) calloc (sizeof(char), BUFFER_SIZE);
|
||||
|
||||
tmp1 = Parse(nButton + LMASK);
|
||||
tmp2 = getNicenedString(tmp1, 1);
|
||||
strcat(str, tmp2);
|
||||
free(tmp1);
|
||||
free(tmp2);
|
||||
|
||||
tmp1 = Parse(nButton + MMASK);
|
||||
tmp2 = getNicenedString(tmp1, 1);
|
||||
strcat(str, tmp2);
|
||||
free(tmp1);
|
||||
free(tmp2);
|
||||
|
||||
tmp1 = Parse(nButton + RMASK);
|
||||
tmp2 = getNicenedString(tmp1, 0);
|
||||
strcat(str, tmp2);
|
||||
free(tmp1);
|
||||
free(tmp2);
|
||||
}
|
||||
|
||||
return(str);
|
||||
}/**********************************************************************/
|
||||
|
||||
|
||||
int hasTooltipSupport () {
|
||||
return !Config.bTooltipDisable;
|
||||
}/**********************************************************************/
|
||||
|
||||
void showTooltip (int nButton, int nMouseX, int nMouseY) {
|
||||
Pixmap pixmap, mask;
|
||||
int nMainWinX, nMainWinY;
|
||||
int nButtonX = 0, nButtonY = 0, nButtonWidth = 0, nButtonHeight = 0;
|
||||
int nTextY, nX, nY, nWidth, nHeight, nSide;
|
||||
char* szText;
|
||||
extern struct Config_t Config;
|
||||
extern Window iconwin;
|
||||
extern Pixel bg_pixel, fg_pixel;
|
||||
extern Display *display;
|
||||
extern GC gc;
|
||||
|
||||
if (Config.bTooltipDisable || nButton == -1) {
|
||||
return;
|
||||
}
|
||||
if (_bTooltip) {
|
||||
hideTooltip();
|
||||
}
|
||||
|
||||
|
||||
if (Config.Verbose) {
|
||||
fprintf(stdout, "[%8ld] showing tooltip for button %d at %d, %d\n",
|
||||
currentTimeMillis(),
|
||||
nButton, nMouseX, nMouseY);
|
||||
}
|
||||
|
||||
szText = getButtonAppNames(nButton);
|
||||
if(!szText)
|
||||
return;
|
||||
|
||||
_bTooltip= 1;
|
||||
|
||||
nWidth= XTextWidth(_fTooltip, szText, strlen(szText)) + 16;
|
||||
nHeight= _nFontHeight + 4;
|
||||
if (nHeight < 16) {
|
||||
nHeight= 16;
|
||||
}
|
||||
if (nWidth < nHeight) {
|
||||
nWidth= nHeight;
|
||||
}
|
||||
if (Config.Verbose) {
|
||||
fprintf(stdout, "[%8ld] tooltip size: %d, %d\n",
|
||||
currentTimeMillis(), nWidth, nHeight);
|
||||
}
|
||||
|
||||
getWindowOrigin(iconwin, &nMainWinX, &nMainWinY);
|
||||
getButtonLocation(nButton, &nButtonX, &nButtonY);
|
||||
nButtonX+= nMainWinX;
|
||||
nButtonY+= nMainWinY;
|
||||
nButtonWidth = BUTTON_SIZE;
|
||||
nButtonHeight = BUTTON_SIZE;
|
||||
|
||||
if (nButtonX + nWidth > _nScreenWidth) {
|
||||
nSide= TOOLTIP_RIGHT;
|
||||
nX= nButtonX - nWidth + nButtonWidth / 2;
|
||||
if (nX < 0) {
|
||||
nX= 0;
|
||||
}
|
||||
} else {
|
||||
nSide= TOOLTIP_LEFT;
|
||||
nX= nButtonX + nButtonWidth / 2;
|
||||
}
|
||||
if (nX + nWidth > _nScreenWidth) {
|
||||
nX= _nScreenWidth - nWidth;
|
||||
}
|
||||
|
||||
if (nButtonY - (nHeight + TOOLTIP_SPACE) < 0) {
|
||||
nSide|= TOOLTIP_TOP;
|
||||
nY= nButtonY + nButtonHeight - 1;
|
||||
nTextY= TOOLTIP_SPACE;
|
||||
} else {
|
||||
nSide|= TOOLTIP_BOTTOM;
|
||||
nY= nButtonY - (nHeight + TOOLTIP_SPACE);
|
||||
nTextY= 0;
|
||||
}
|
||||
|
||||
pixmap= createTooltipPixmap(nWidth, nHeight, nSide, &mask);
|
||||
|
||||
XSetForeground(display, gc, Config.bTooltipSwapColors ? fg_pixel : bg_pixel);
|
||||
XSetFont(display, gc, _fTooltip->fid);
|
||||
XDrawString(display, pixmap, gc,
|
||||
8, nTextY + (nHeight - _nFontHeight) / 2 + _nFontY,
|
||||
szText, strlen(szText));
|
||||
|
||||
XSetWindowBackgroundPixmap(display, _wTooltip, pixmap);
|
||||
|
||||
XResizeWindow(display, _wTooltip, nWidth, nHeight + TOOLTIP_SPACE);
|
||||
XShapeCombineMask(display, _wTooltip, ShapeBounding, 0, 0, mask, ShapeSet);
|
||||
XFreePixmap(display, mask);
|
||||
XMoveWindow(display, _wTooltip, nX, nY);
|
||||
XMapRaised(display, _wTooltip);
|
||||
XFreePixmap(display, pixmap);
|
||||
|
||||
free(szText);
|
||||
}/**********************************************************************/
|
||||
|
||||
void hideTooltip () {
|
||||
extern struct Config_t Config;
|
||||
extern Display *display;
|
||||
|
||||
if (Config.bTooltipDisable) {
|
||||
return;
|
||||
}
|
||||
if (_bTooltip) {
|
||||
if (Config.Verbose) {
|
||||
fprintf(stdout, "[%8ld] hiding tooltip\n", currentTimeMillis());
|
||||
}
|
||||
XUnmapWindow(display, _wTooltip);
|
||||
_bTooltip= 0;
|
||||
}
|
||||
}/**********************************************************************/
|
||||
|
||||
int hasTooltip () {
|
||||
if (Config.bTooltipDisable) {
|
||||
return 0;
|
||||
}
|
||||
return _bTooltip;
|
||||
}/**********************************************************************/
|
||||
|
||||
void initTooltip () {
|
||||
XSetWindowAttributes attribs;
|
||||
unsigned long vmask;
|
||||
extern Display *display;
|
||||
extern char *app_name;
|
||||
extern int screen;
|
||||
extern Window rootwin, win;
|
||||
|
||||
if (Config.bTooltipDisable) {
|
||||
if (Config.Verbose) {
|
||||
fprintf(stdout, "[%8ld] initializing tooltips (disabled)\n",
|
||||
currentTimeMillis());
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
if (Config.Verbose) {
|
||||
fprintf(stdout, "[%8ld] initializing tooltips\n", currentTimeMillis());
|
||||
}
|
||||
_fTooltip= XLoadQueryFont(display, Config.szTooltipFont);
|
||||
if (!_fTooltip) {
|
||||
fprintf(stderr, "%s: couldn't allocate font '%s'.\n", app_name, Config.szTooltipFont);
|
||||
if (!strcmp(Config.szTooltipFont, TOOLTIP_FONT))
|
||||
fprintf(stderr, "%s: Use option -F <font>\n", app_name);
|
||||
exit(-1);
|
||||
}
|
||||
_nFontHeight= _fTooltip->ascent + _fTooltip->descent;
|
||||
_nFontY= _fTooltip->ascent;
|
||||
_nScreenWidth= WidthOfScreen(ScreenOfDisplay(display, screen));
|
||||
_nScreenHeight= HeightOfScreen(ScreenOfDisplay(display, screen));
|
||||
if (Config.Verbose) {
|
||||
fprintf(stdout, "[%8ld] configuring tooltip font:\n" \
|
||||
"[%8ld] - '%s'\n" \
|
||||
"[%8ld] - font-height= %d, font-ascent= %d\n" \
|
||||
"[%8ld] configuring screen size: %dx%d\n",
|
||||
currentTimeMillis(),
|
||||
currentTimeMillis(), Config.szTooltipFont,
|
||||
currentTimeMillis(), _nFontHeight, _nFontY,
|
||||
currentTimeMillis(), _nScreenWidth, _nScreenHeight );
|
||||
}
|
||||
|
||||
vmask= CWSaveUnder | CWOverrideRedirect | CWBorderPixel;
|
||||
attribs.save_under= True;
|
||||
attribs.override_redirect= True;
|
||||
attribs.border_pixel= 0;
|
||||
_wTooltip= XCreateWindow(display, rootwin, 1, 1, 10, 10, 1,
|
||||
CopyFromParent, CopyFromParent,
|
||||
CopyFromParent, vmask, &attribs);
|
||||
if (win == 0) {
|
||||
fprintf(stderr, "Cannot create tooltip window.\n");
|
||||
exit(-1);
|
||||
}
|
||||
}/**********************************************************************/
|
||||
|
||||
void destroyTooltip () {
|
||||
extern Display *display;
|
||||
|
||||
if (Config.bTooltipDisable) {
|
||||
return;
|
||||
}
|
||||
if (_gcMono) {
|
||||
XFreeGC(display, _gcMono);
|
||||
_gcMono= 0;
|
||||
}
|
||||
XDestroyWindow(display, _wTooltip);
|
||||
}/**********************************************************************/
|
||||
|
||||
void drawTooltipBalloon (Pixmap pix, GC gc, int x, int y, int w, int h, int side) {
|
||||
extern Display *display;
|
||||
int rad = h*3/10;
|
||||
XPoint pt[3];
|
||||
|
||||
XFillArc(display, pix, gc, x, y, rad, rad, 90*64, 90*64);
|
||||
XFillArc(display, pix, gc, x, y+h-1-rad, rad, rad, 180*64, 90*64);
|
||||
|
||||
XFillArc(display, pix, gc, x+w-1-rad, y, rad, rad, 0*64, 90*64);
|
||||
XFillArc(display, pix, gc, x+w-1-rad, y+h-1-rad, rad, rad, 270*64, 90*64);
|
||||
|
||||
XFillRectangle(display, pix, gc, x, y+rad/2, w, h-rad);
|
||||
XFillRectangle(display, pix, gc, x+rad/2, y, w-rad, h);
|
||||
|
||||
if (side & TOOLTIP_BOTTOM) {
|
||||
pt[0].y = y+h-1;
|
||||
pt[1].y = y+h-1+TOOLTIP_SPACE;
|
||||
pt[2].y = y+h-1;
|
||||
} else {
|
||||
pt[0].y = y;
|
||||
pt[1].y = y-TOOLTIP_SPACE;
|
||||
pt[2].y = y;
|
||||
}
|
||||
if (side & TOOLTIP_RIGHT) {
|
||||
pt[0].x = x+w-h+2*h/16;
|
||||
pt[1].x = x+w-h+11*h/16;
|
||||
pt[2].x = x+w-h+7*h/16;
|
||||
} else {
|
||||
pt[0].x = x+h-2*h/16;
|
||||
pt[1].x = x+h-11*h/16;
|
||||
pt[2].x = x+h-7*h/16;
|
||||
}
|
||||
XFillPolygon(display, pix, gc, pt, 3, Convex, CoordModeOrigin);
|
||||
}/**********************************************************************/
|
||||
|
||||
Pixmap createTooltipPixmap (int width, int height, int side, Pixmap *mask) {
|
||||
extern Display *display;
|
||||
extern GC gc;
|
||||
extern Pixel bg_pixel, fg_pixel;
|
||||
extern int depth;
|
||||
extern Window rootwin;
|
||||
Pixmap bitmap;
|
||||
Pixmap pixmap;
|
||||
int x, y;
|
||||
|
||||
bitmap = XCreatePixmap(display, rootwin,
|
||||
width+TOOLTIP_SPACE, height+TOOLTIP_SPACE, 1);
|
||||
|
||||
if (!_gcMono) {
|
||||
_gcMono= XCreateGC(display, bitmap, 0, NULL);
|
||||
}
|
||||
XSetForeground(display, _gcMono, 0);
|
||||
XFillRectangle(display, bitmap, _gcMono, 0, 0,
|
||||
width+TOOLTIP_SPACE, height+TOOLTIP_SPACE);
|
||||
|
||||
pixmap = XCreatePixmap(display, rootwin,
|
||||
width+TOOLTIP_SPACE, height+TOOLTIP_SPACE, depth);
|
||||
XSetForeground(display, gc, Config.bTooltipSwapColors ? fg_pixel : bg_pixel);
|
||||
XFillRectangle(display, pixmap, gc, 0, 0,
|
||||
width+TOOLTIP_SPACE, height+TOOLTIP_SPACE);
|
||||
|
||||
if (side & TOOLTIP_BOTTOM) {
|
||||
y = 0;
|
||||
} else {
|
||||
y = TOOLTIP_SPACE;
|
||||
}
|
||||
x = 0;
|
||||
|
||||
XSetForeground(display, _gcMono, 1);
|
||||
drawTooltipBalloon(bitmap, _gcMono, x, y, width, height, side);
|
||||
XSetForeground(display, gc, Config.bTooltipSwapColors ? bg_pixel : fg_pixel);
|
||||
drawTooltipBalloon(pixmap, gc, x+1, y+1, width-2, height-2, side);
|
||||
|
||||
*mask = bitmap;
|
||||
|
||||
return pixmap;
|
||||
}/***********************************************************************/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* flush_expose
|
||||
*
|
||||
* Everyone else has one of these... Can't hurt to throw it in.
|
||||
***********************************************************************/
|
||||
int flush_expose(Window w) {
|
||||
extern Display *display;
|
||||
XEvent dummy;
|
||||
int i=0;
|
||||
|
||||
while (XCheckTypedWindowEvent(display, w, Expose, &dummy)) i++;
|
||||
return(i);
|
||||
}/***********************************************************************/
|
557
wmbutton/wmbutton.c
Normal file
557
wmbutton/wmbutton.c
Normal file
|
@ -0,0 +1,557 @@
|
|||
/***********************************************************************
|
||||
* Code is based on wmppp, wmload, wmtime, wmcp, and asbutton
|
||||
* Author: Edward H. Flora <ehflora@ksu.edu>
|
||||
* Ver 0 Rel 6.1 Jan 23, 2005
|
||||
*
|
||||
* Contributors:
|
||||
* Christian 'Greek0' Aichinger <Greek0@gmx.net>
|
||||
* Did some code cleanup and fixed several memory leaks.
|
||||
* Ralf Horstmann <ralf.horstmann@gmx.de>
|
||||
* Added ability to load pixmaps at startup,
|
||||
* without having to re-compile
|
||||
* Michael Cohrs <camico@users.sourceforge.net>
|
||||
* Added Tool Tips, and updated graphics
|
||||
* Bruno Essmann <essmann@users.sourceforge.net>)
|
||||
* Creator of wmpager
|
||||
* Casey Harkins <charkins@cs.wisc.edu>
|
||||
* Bug fix reading config file path - 3/6/99
|
||||
* Added button-presses, and other - denoted by *charkins*
|
||||
* Ben Cohen <buddog@aztec.asu.edu>
|
||||
* original author of wmcp (et al.)
|
||||
* Thomas Nemeth <tnemeth@multimania.com>
|
||||
* contributor to wmcp
|
||||
* Michael Henderson <mghenderson@lanl.gov>
|
||||
* Application ideas, suggestions
|
||||
* Ryan ?? <pancake@mindspring.com>
|
||||
* Modified wmbutton to asbutton.
|
||||
* Note: asbutton is a seperate program, not associated
|
||||
* with wmbutton (just as wmbutton is not associated
|
||||
* with wmcp)
|
||||
* Jon Bruno
|
||||
* Web Page Development
|
||||
* The contributors listed above are not necessarily involved with the
|
||||
* development of wmbutton. I'm listing them here partially as thanks for
|
||||
* helping out, catching bugs in the code, etc.
|
||||
***********************************************************************/
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "wmbutton.h"
|
||||
|
||||
#include "backdrop.xpm" /* background graphic */
|
||||
#include "buttons.xpm" /* graphic of 9 buttons */
|
||||
#include "mask.xbm" /* Border Graphic */
|
||||
|
||||
/*************** Function Prototypes ***********************************/
|
||||
void redraw(void);
|
||||
void getPixmaps(void);
|
||||
int whichButton(int x, int y); // determine which button has been pressed
|
||||
void SetWmHints();
|
||||
void SetClassHints();
|
||||
|
||||
/***********************************************************************
|
||||
* Globals.. OK.. there's too many globals.
|
||||
* Feel free and fix it, if you'd like.
|
||||
***********************************************************************/
|
||||
Display *display;
|
||||
int screen;
|
||||
Window rootwin, win, iconwin;
|
||||
GC gc;
|
||||
int depth;
|
||||
Pixel bg_pixel, fg_pixel;
|
||||
|
||||
struct Config_t Config;
|
||||
|
||||
typedef struct _XpmIcon {
|
||||
Pixmap pixmap;
|
||||
Pixmap mask;
|
||||
XpmAttributes attributes;
|
||||
} XpmIcon;
|
||||
|
||||
typedef struct _button_region {
|
||||
int x,y;
|
||||
int i,j;
|
||||
} ButtonArea;
|
||||
|
||||
ButtonArea button_region[9];
|
||||
|
||||
XpmIcon template, visible, buttons;
|
||||
|
||||
int border = 0;
|
||||
int button_pressed = -1; /* button to be drawn pressed *charkins*/
|
||||
|
||||
char *app_name = "wmbutton";
|
||||
|
||||
/***********************************************************************
|
||||
* Main
|
||||
***********************************************************************/
|
||||
int main( int argc, char ** argv ) {
|
||||
|
||||
XEvent report;
|
||||
XGCValues xgcValues;
|
||||
XTextProperty app_name_atom;
|
||||
XSizeHints xsizehints;
|
||||
|
||||
Pixmap pixmask;
|
||||
|
||||
int dummy = 0;
|
||||
int N = 1; /* Button number pressed to goto app # */
|
||||
|
||||
/* Added for Tool Tip Support */
|
||||
long nTooltipShowDelay = TOOLTIP_SHOW_DELAY;
|
||||
long nTooltipReshowDelay = TOOLTIP_RESHOW_DELAY;
|
||||
long nTooltipTimer = -1;
|
||||
long nTooltipHideTimer = -1;
|
||||
long nNow;
|
||||
int nTooltipButton = 0, nTooltipX = 0, nTooltipY = 0;
|
||||
|
||||
/* Parse Command Line Arguments */
|
||||
parseargs(argc, argv);
|
||||
|
||||
/* Open Display */
|
||||
if ( (display = XOpenDisplay(Config.Display_str)) == NULL )
|
||||
err_mess(FAILDISP, Config.Display_str);
|
||||
|
||||
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,
|
||||
Config.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 )
|
||||
err_mess(FAILSWIN, NULL);
|
||||
|
||||
|
||||
if ( (iconwin = XCreateSimpleWindow(display,
|
||||
win,
|
||||
xsizehints.x,
|
||||
xsizehints.y,
|
||||
xsizehints.width,
|
||||
xsizehints.height,
|
||||
border,
|
||||
fg_pixel, bg_pixel) ) == 0 )
|
||||
err_mess(FAILICON, NULL);
|
||||
|
||||
/* Set up shaped windows */
|
||||
/*Gives the appicon a border so you can grab and move it. */
|
||||
|
||||
if ( ( pixmask = XCreateBitmapFromData(display,
|
||||
win,
|
||||
mask_bits,
|
||||
mask_width,
|
||||
mask_height) ) == 0 )
|
||||
err_mess(FAILXPM,NULL);
|
||||
|
||||
|
||||
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 */
|
||||
SetWmHints();
|
||||
SetClassHints();
|
||||
|
||||
|
||||
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 )
|
||||
err_mess(FAILWNAM,app_name);
|
||||
XSetWMName( display, win, &app_name_atom );
|
||||
|
||||
/* Create Graphic Context */
|
||||
if (( gc = XCreateGC(display, win,(GCForeground | GCBackground), &xgcValues))
|
||||
== NULL )
|
||||
err_mess(FAILGC,NULL);
|
||||
|
||||
/* XEvent Masks. We want both window to process X events */
|
||||
XSelectInput(display, win,
|
||||
ExposureMask |
|
||||
ButtonPressMask |
|
||||
ButtonReleaseMask | /* added ButtonReleaseMask *charkins*/
|
||||
PointerMotionMask |
|
||||
StructureNotifyMask |
|
||||
LeaveWindowMask );
|
||||
XSelectInput(display, iconwin,
|
||||
ExposureMask |
|
||||
ButtonPressMask |
|
||||
ButtonReleaseMask | /* added ButtonReleaseMask *charkins*/
|
||||
PointerMotionMask |
|
||||
StructureNotifyMask |
|
||||
LeaveWindowMask );
|
||||
|
||||
/* 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 );
|
||||
|
||||
/* Initialize Tooltip Support */
|
||||
initTime();
|
||||
initTooltip(!Config.bTooltipDisable, Config.szTooltipFont, Config.bTooltipSwapColors);
|
||||
|
||||
/* X Event Loop */
|
||||
while (1) {
|
||||
while (XPending(display) || nTooltipTimer == -1) {
|
||||
XNextEvent(display, &report );
|
||||
switch (report.type) {
|
||||
case Expose:
|
||||
if (report.xexpose.count != 0) {
|
||||
break;
|
||||
}
|
||||
if ( Config.Verbose ) fprintf(stdout,"Event: Expose\n");
|
||||
redraw();
|
||||
break;
|
||||
|
||||
case ConfigureNotify:
|
||||
if ( Config.Verbose ) fprintf(stdout,"Event: ConfigureNotify\n");
|
||||
redraw();
|
||||
break;
|
||||
|
||||
case MotionNotify:
|
||||
if (hasTooltipSupport()) {
|
||||
if (!hasTooltip()) {
|
||||
nTooltipTimer= currentTimeMillis();
|
||||
nTooltipX= report.xbutton.x;
|
||||
nTooltipY= report.xbutton.y;
|
||||
nTooltipButton= whichButton(report.xbutton.x, report.xbutton.y);
|
||||
} else {
|
||||
int nButton = whichButton(report.xbutton.x, report.xbutton.y);
|
||||
if (nButton != nTooltipButton) {
|
||||
hideTooltip();
|
||||
nTooltipTimer= -1;
|
||||
nTooltipX = report.xbutton.x;
|
||||
nTooltipY = report.xbutton.y;
|
||||
nTooltipButton = nButton;
|
||||
showTooltip(nTooltipButton, nTooltipX, nTooltipY);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case LeaveNotify:
|
||||
if ( Config.Verbose ) fprintf(stdout,"Event: LeaveNotify\n");
|
||||
if (hasTooltip()) {
|
||||
hideTooltip();
|
||||
nTooltipHideTimer= currentTimeMillis();
|
||||
}
|
||||
nTooltipTimer= -1;
|
||||
break;
|
||||
|
||||
case ButtonPress: /* draw button pressed, don't launch *charkins*/
|
||||
if (hasTooltip()) {
|
||||
hideTooltip();
|
||||
nTooltipHideTimer= currentTimeMillis();
|
||||
} switch (report.xbutton.button) {
|
||||
case Button1:
|
||||
N = whichButton(report.xbutton.x, report.xbutton.y );
|
||||
if ( (N >= 0) && (N <= NUMB_OF_APPS) ) {
|
||||
button_pressed = N + LMASK;
|
||||
redraw();
|
||||
}
|
||||
|
||||
if ( Config.Verbose )
|
||||
fprintf(stdout,"Button 1:x=%d y=%d N=%d\n",
|
||||
report.xbutton.x, report.xbutton.y, N+LMASK);
|
||||
|
||||
break;
|
||||
case Button2:
|
||||
if (Config.mmouse) {
|
||||
N = whichButton(report.xbutton.x, report.xbutton.y );
|
||||
if ( (N >= 0) && (N <= NUMB_OF_APPS) ) {
|
||||
button_pressed = N + MMASK;
|
||||
redraw();
|
||||
}
|
||||
|
||||
if ( Config.Verbose )
|
||||
fprintf(stdout,"Button 2:x=%d y=%d N=%d\n",
|
||||
report.xbutton.x, report.xbutton.y, N+MMASK);
|
||||
|
||||
}
|
||||
break;
|
||||
case Button3:
|
||||
N = whichButton(report.xbutton.x, report.xbutton.y );
|
||||
if ( (N >= 0) && (N <= NUMB_OF_APPS) ) {
|
||||
button_pressed = N + RMASK;
|
||||
redraw();
|
||||
}
|
||||
|
||||
if ( Config.Verbose )
|
||||
fprintf(stdout,"Button 3:x=%d y=%d N=%d\n",
|
||||
report.xbutton.x, report.xbutton.y, N+RMASK);
|
||||
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ButtonRelease: /* launch app here if still over button *charkins*/
|
||||
switch (report.xbutton.button) {
|
||||
case Button1:
|
||||
N = whichButton(report.xbutton.x, report.xbutton.y );
|
||||
if ( (N >= 0) && (N <= NUMB_OF_APPS) && (N == button_pressed))
|
||||
RunAppN( N + LMASK);
|
||||
button_pressed=-1;
|
||||
redraw();
|
||||
|
||||
if ( Config.Verbose )
|
||||
fprintf(stdout,"Button 1:x=%d y=%d N=%d\n",
|
||||
report.xbutton.x, report.xbutton.y, N+LMASK);
|
||||
|
||||
break;
|
||||
case Button2:
|
||||
if (Config.mmouse) {
|
||||
N = whichButton(report.xbutton.x, report.xbutton.y );
|
||||
if ( (N >= 0) && (N <= NUMB_OF_APPS) && (N == button_pressed))
|
||||
RunAppN( N + MMASK);
|
||||
button_pressed=-1;
|
||||
redraw();
|
||||
|
||||
if ( Config.Verbose )
|
||||
fprintf(stdout,"Button 2:x=%d y=%d N=%d\n",
|
||||
report.xbutton.x, report.xbutton.y, N+MMASK);
|
||||
|
||||
}
|
||||
break;
|
||||
case Button3:
|
||||
N = whichButton(report.xbutton.x, report.xbutton.y );
|
||||
if ( (N >= 0) && (N <= NUMB_OF_APPS) && (N == button_pressed))
|
||||
RunAppN( N + RMASK);
|
||||
button_pressed=-1;
|
||||
redraw();
|
||||
|
||||
if ( Config.Verbose )
|
||||
fprintf(stdout,"Button 3:x=%d y=%d N=%d\n",
|
||||
report.xbutton.x, report.xbutton.y, N+RMASK);
|
||||
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case DestroyNotify:
|
||||
|
||||
if ( Config.Verbose ) fprintf(stdout, "Bye\n");
|
||||
|
||||
destroyTooltip();
|
||||
XFreeGC(display, gc);
|
||||
XDestroyWindow(display,win);
|
||||
XDestroyWindow(display,iconwin);
|
||||
XCloseDisplay(display);
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
usleep(50000);
|
||||
nNow = currentTimeMillis();
|
||||
if ( nTooltipTimer != -1 &&
|
||||
( (nNow > nTooltipTimer + nTooltipShowDelay) || (nNow < nTooltipHideTimer + nTooltipReshowDelay) ) ) {
|
||||
showTooltip(nTooltipButton, nTooltipX, nTooltipY);
|
||||
nTooltipTimer = -1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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 n;
|
||||
int i,j;
|
||||
int dest_x, dest_y;
|
||||
int space;
|
||||
int offset;
|
||||
int bsize = 18;
|
||||
|
||||
if ( Config.Verbose ) fprintf(stdout,"In Redraw()\n");
|
||||
space = 0;
|
||||
offset = 5;
|
||||
XCopyArea(display, template.pixmap, visible.pixmap, gc, 0, 0,
|
||||
template.attributes.width, template.attributes.height, 0, 0 );
|
||||
|
||||
for ( j=0; j < 3; j++ ) {
|
||||
for ( i=0; i < 3; i++ ) {
|
||||
n = i + j * 3;
|
||||
dest_x = i*(bsize + space) + offset + space;
|
||||
dest_y = j*(bsize + space) + offset + space;
|
||||
|
||||
/* Define button mouse coords */
|
||||
button_region[n].x = dest_x;
|
||||
button_region[n].y = dest_y;
|
||||
button_region[n].i = dest_x + bsize - 1;
|
||||
button_region[n].j = dest_y + bsize - 1;
|
||||
|
||||
/* Copy button images for valid apps */
|
||||
if ( (n + 1) <= NUMB_OF_APPS ) {
|
||||
XCopyArea(display, buttons.pixmap, visible.pixmap, gc,
|
||||
i * bsize, j * bsize, bsize, bsize, dest_x, dest_y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( button_pressed>0 ) { /* draw pressed button *charkins*/
|
||||
if(button_pressed>RMASK) button_pressed-=RMASK;
|
||||
else if(button_pressed>MMASK) button_pressed-=MMASK;
|
||||
else if(button_pressed>LMASK) button_pressed-=LMASK;
|
||||
i = (button_pressed-1) % 3; /* get col of button */
|
||||
j = (button_pressed-1) / 3; /* get row of button */
|
||||
dest_x = i * (bsize + space) + offset + space;
|
||||
dest_y = j * (bsize + space) + offset + space;
|
||||
XSetForeground(display, gc, bg_pixel);
|
||||
XDrawLine(display, visible.pixmap, gc,
|
||||
dest_x+1, dest_y+bsize-1, dest_x+bsize-1, dest_y+bsize-1);
|
||||
XDrawLine(display, visible.pixmap, gc,
|
||||
dest_x+bsize-1, dest_y+bsize-1, dest_x+bsize-1, dest_y+1);
|
||||
XSetForeground(display, gc, fg_pixel);
|
||||
XDrawLine(display, visible.pixmap, gc,
|
||||
dest_x, dest_y, dest_x+bsize-2, dest_y);
|
||||
XDrawLine(display, visible.pixmap, gc,
|
||||
dest_x, dest_y, dest_x, dest_y+bsize-2);
|
||||
} /*charkins*/
|
||||
|
||||
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 );
|
||||
|
||||
}/***********************************************************************/
|
||||
|
||||
/***********************************************************************
|
||||
* 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 index;
|
||||
|
||||
for ( index=0; index < NUMB_OF_APPS; 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);
|
||||
}/***********************************************************************/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* 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() {
|
||||
int loaded = 0;
|
||||
template.attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
|
||||
visible.attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
|
||||
buttons.attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
|
||||
|
||||
|
||||
if (Config.Verbose) fprintf(stdout, "In getPixmaps\n");
|
||||
/* Template Pixmap. Never Drawn To. */
|
||||
if ( XpmCreatePixmapFromData( display, rootwin, backdrop_xpm,
|
||||
&template.pixmap, &template.mask,
|
||||
&template.attributes) != XpmSuccess )
|
||||
err_mess(FAILTMPL, NULL);
|
||||
|
||||
/* Visible Pixmap. Copied from template Pixmap and then drawn to. */
|
||||
if ( XpmCreatePixmapFromData( display, rootwin, backdrop_xpm,
|
||||
&visible.pixmap, &visible.mask,
|
||||
&visible.attributes) != XpmSuccess )
|
||||
err_mess(FAILVIS, NULL);
|
||||
|
||||
/* Button Pixmap. */
|
||||
if ( access( Config.buttonfile, R_OK ) == 0 ) {
|
||||
/* load buttons from file */
|
||||
if ( XpmReadFileToPixmap( display, rootwin, Config.buttonfile,
|
||||
&buttons.pixmap, &buttons.mask,
|
||||
&buttons.attributes) != XpmSuccess ) {
|
||||
err_mess(FAILBUT, NULL);
|
||||
} else {
|
||||
loaded = 1;
|
||||
}
|
||||
}
|
||||
if (! loaded) {
|
||||
/* Use Builtin Button Pixmap. */
|
||||
if (Config.Verbose) fprintf(stdout, "Using builtin buttons pixmap\n");
|
||||
if ( XpmCreatePixmapFromData( display, rootwin, buttons_xpm,
|
||||
&buttons.pixmap, &buttons.mask,
|
||||
&buttons.attributes) != XpmSuccess )
|
||||
err_mess(FAILBUT, NULL);
|
||||
}
|
||||
if (Config.Verbose) fprintf(stdout, "Leaving getPixmaps\n");
|
||||
|
||||
}/*********************************************************************/
|
||||
|
||||
void SetWmHints() {
|
||||
XWMHints *xwmhints;
|
||||
|
||||
xwmhints = XAllocWMHints();
|
||||
xwmhints->flags = WindowGroupHint | IconWindowHint | StateHint;
|
||||
xwmhints->icon_window = iconwin;
|
||||
xwmhints->window_group = win;
|
||||
xwmhints->initial_state = WithdrawnState;
|
||||
XSetWMHints( display, win, xwmhints );
|
||||
XFree(xwmhints);
|
||||
xwmhints = NULL;
|
||||
}
|
||||
|
||||
void SetClassHints() {
|
||||
XClassHint xclasshint;
|
||||
|
||||
xclasshint.res_name = "wmbutton";
|
||||
xclasshint.res_class = "Wmbutton";
|
||||
XSetClassHint( display, win, &xclasshint );
|
||||
}
|
||||
|
107
wmbutton/wmbutton.h
Normal file
107
wmbutton/wmbutton.h
Normal file
|
@ -0,0 +1,107 @@
|
|||
/* wmbutton.h - Edward H. Flora - ehf_dockapps@cox.net */
|
||||
/* Last Modified 3/27/04 */
|
||||
|
||||
/****** Include Files ***************************************************/
|
||||
#include <Xlib.h>
|
||||
#include <Xutil.h>
|
||||
#include <xpm.h>
|
||||
#include <extensions/shape.h>
|
||||
#include <keysym.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/****** Define Config File Info ***************************************/
|
||||
#define CONFFILENAME "/.wmbutton" /* Default conf filename $HOME/.wmbutton */
|
||||
#define BUTTONFILENAME "/.wmbutton.xpm"
|
||||
|
||||
/****** Version / Release Number ***************************************/
|
||||
#define VER 0 /* Version Number */
|
||||
#define REL 6 /* Release Number */
|
||||
|
||||
/****** Define Error Codes *********************************************/
|
||||
#define FAILDISP 20
|
||||
#define FAILSWIN 21
|
||||
#define FAILICON 22
|
||||
#define FAILXPM 23
|
||||
#define FAILWNAM 24
|
||||
#define FAILGC 25
|
||||
#define FAILCONF 26
|
||||
#define FAILTMPL 27
|
||||
#define FAILVIS 28
|
||||
#define FAILBUT 29
|
||||
|
||||
/****** Define Other Options ****************************************/
|
||||
#define VERB 0 /* Enable=1, Disable=0: Debugging (verbose) Mode*/
|
||||
#define MIDMOUSE 1 /* Define Middle Mouse functionality */
|
||||
#define LMASK 0 /* left button mask: run app # mask + button #*/
|
||||
#define MMASK 10 /* middle button mask: run app # mask + button #*/
|
||||
#define RMASK 20 /* right button mask: run app # mask + button #*/
|
||||
#define NUMB_OF_APPS 9 /* Define number of apps */
|
||||
|
||||
#define EOLN '\n' /* Defines the new line character */
|
||||
#define SIZE1 20 /* Defines the increment to increase the */
|
||||
/* string by until a newline of EOF is found */
|
||||
|
||||
/****** Defines for Tool Tips ***************************************/
|
||||
#define TOOLTIP_SUPPORT 1
|
||||
#define TOOLTIP_FONT "-*-helvetica-medium-r-normal-*-10-*-*-*-*-*-*-*"
|
||||
#define TOOLTIP_FONT_LEN 128
|
||||
#define TOOLTIP_SHOW_DELAY 750
|
||||
#define TOOLTIP_RESHOW_DELAY 1500
|
||||
|
||||
#define TOOLTIP_SPACE 12
|
||||
#define TOOLTIP_TOP 0
|
||||
#define TOOLTIP_BOTTOM 1
|
||||
#define TOOLTIP_LEFT 0
|
||||
#define TOOLTIP_RIGHT 2
|
||||
|
||||
#define BUTTON_SIZE 18
|
||||
#define BUTTON_COLS 3
|
||||
|
||||
#define BUFFER_SIZE 1024
|
||||
|
||||
/****** Typedefs *******************************************/
|
||||
|
||||
struct Config_t {
|
||||
char *configfile;
|
||||
char *buttonfile;
|
||||
char *Geometry_str;
|
||||
char *Display_str;
|
||||
int mmouse;
|
||||
int Verbose;
|
||||
char* szTooltipFont;
|
||||
int bTooltipSwapColors;
|
||||
int bTooltipDisable;
|
||||
};
|
||||
|
||||
/****** Function Prototyes *******************************************/
|
||||
void RunAppN(int app); // function to run app N as found in conf file
|
||||
char *Parse(int app); // parse data in config file
|
||||
void parseargs(int argc, char **argv);
|
||||
char *readln(FILE *fp); // read line from file, return pointer to it
|
||||
void err_mess(int err, char *str); // Error Handling Routine
|
||||
void show_usage(void); // show usage message to stderr
|
||||
int flush_expose(Window w);
|
||||
|
||||
|
||||
/****** Tooltip Function Prototypes **********************************/
|
||||
void initTooltip();
|
||||
void destroyTooltip ();
|
||||
int hasTooltipSupport ();
|
||||
void showTooltip (int nButton, int nMouseX, int nMouseY);
|
||||
void hideTooltip ();
|
||||
int hasTooltip ();
|
||||
void drawTooltipBalloon (Pixmap pix, GC gc, int x, int y, int w, int h, int side);
|
||||
Pixmap createTooltipPixmap (int width, int height, int side, Pixmap *mask);
|
||||
|
||||
void initTime ();
|
||||
long currentTimeMillis ();
|
||||
void getWindowOrigin (Window w, int* nX, int* nY);
|
||||
void getButtonLocation (int nButton, int* nLocationX, int* nLocationY);
|
||||
char *getButtonAppNames (int nButton);
|
||||
|
||||
/**********************************************************************/
|
Loading…
Reference in a new issue