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