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
					
				
					 21 changed files with 5336 additions and 0 deletions
				
			
		
							
								
								
									
										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