diff --git a/wmbutton/.wmbutton b/wmbutton/.wmbutton new file mode 100644 index 0000000..35e0fc8 --- /dev/null +++ b/wmbutton/.wmbutton @@ -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 diff --git a/wmbutton/COPYING b/wmbutton/COPYING new file mode 100644 index 0000000..a43ea21 --- /dev/null +++ b/wmbutton/COPYING @@ -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. + + + Copyright (C) 19yy + + 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. + + , 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. diff --git a/wmbutton/Makefile b/wmbutton/Makefile new file mode 100644 index 0000000..b4b744d --- /dev/null +++ b/wmbutton/Makefile @@ -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] diff --git a/wmbutton/README b/wmbutton/README new file mode 100644 index 0000000..5da98ae --- /dev/null +++ b/wmbutton/README @@ -0,0 +1,208 @@ +wmbutton Ver. 0 Rel 6.1 +------------------------------------------------------------- + Code is based on wmppp, wmload, wmtime, wmcp, and asbutton + Author: Edward H. Flora + This version is released by: + Christian 'Greek0' Aichinger + 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 + Did some code cleanup and fixed several memory leaks. + Ralf Horstmann + Added ability to load pixmaps at startup, + without having to re-compile + Michael Cohrs + Added Tool Tips, and updated graphics + Bruno Essmann ) + Creator of wmpager + Ben Cohen + original author of wmcp (et al.) + Thomas Nemeth + contributor to wmcp + Casey Harkins + Bug fix reading config file path - 3/6/99 + Added button-presses, and other - denoted by *charkins* + Michael Henderson + Application ideas, suggestions + Ryan ?? + 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 ] + [-v] [-s] [-n] + + wmbutton Ver 0 Rel 6.1 + +-g Window Geometry - ie: 64x64+10+10 +-d Display - ie: 127.0.0.1:0.0 +-f Full path to configuration file. +-b Full path to button xpm. +-F 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 + +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 + + + +Good Luck. + + +"C code. C code run. Run, code, run. + PLEASE!?!?!?!?!?!?" + + diff --git a/wmbutton/backdrop.xpm b/wmbutton/backdrop.xpm new file mode 100644 index 0000000..9d1a3de --- /dev/null +++ b/wmbutton/backdrop.xpm @@ -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+", +".+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"}; diff --git a/wmbutton/buttons.xpm b/wmbutton/buttons.xpm new file mode 100644 index 0000000..f026b2e --- /dev/null +++ b/wmbutton/buttons.xpm @@ -0,0 +1,1400 @@ +/* XPM */ +static char * buttons_xpm[] = { +"54 54 1343 2", +" c None", +". c #FFFFFF", +"+ c #000000", +"@ c #AEAAAE", +"# c #727272", +"$ c #A86666", +"% c #AE7575", +"& c #B17878", +"* c #B37979", +"= c #B57979", +"- c #B87979", +"; c #BA7979", +"> c #BC7A7A", +", c #BF7A7A", +"' c #C27C7C", +") c #C37C7C", +"! c #C57A7A", +"~ c #BB8585", +"{ c #ABABAB", +"] c #B4B4B4", +"^ c #6F6F6F", +"/ c #737373", +"( c #5D5D5D", +"_ c #595959", +": c #717170", +"< c #91908F", +"[ c #8D8C8B", +"} c #858683", +"| c #92928E", +"1 c #9B9D98", +"2 c #B0AEA8", +"3 c #9B9C96", +"4 c #71736A", +"5 c #59594B", +"6 c #474743", +"7 c #B5B5B5", +"8 c #6F706F", +"9 c #686868", +"0 c #969696", +"a c #9B9B9B", +"b c #9F9F9F", +"c c #A3A3A3", +"d c #A8A8A8", +"e c #ACACAC", +"f c #B1B1B1", +"g c #FF7474", +"h c #FFB9B9", +"i c #FFB1B1", +"j c #FFAAAA", +"k c #FF9C9C", +"l c #FF8D8D", +"m c #FF7F7F", +"n c #FF6565", +"o c #FF5A5A", +"p c #FF5757", +"q c #FF0404", +"r c #D90000", +"s c #8E8E8E", +"t c #EEEDEA", +"u c #FFFBF7", +"v c #FCFBF7", +"w c #F5F7F2", +"x c #E7E8E2", +"y c #D5D4CB", +"z c #BEBFB8", +"A c #AAA99F", +"B c #91928D", +"C c #767879", +"D c #6E7265", +"E c #90917F", +"F c #1A1D12", +"G c #BABABA", +"H c #514E5A", +"I c #1A1729", +"J c #201A30", +"K c #23203B", +"L c #232039", +"M c #211E37", +"N c #616161", +"O c #AE7676", +"P c #FFC4C4", +"Q c #FFFCFC", +"R c #FFD9D9", +"S c #FFA6A6", +"T c #FF9595", +"U c #FF8686", +"V c #FF6F6F", +"W c #FFC0C0", +"X c #FFABAB", +"Y c #FF3333", +"Z c #B60000", +"` c #797979", +" . c #A9A9A9", +".. c #787878", +"+. c #878585", +"@. c #9F99A7", +"#. c #4E4271", +"$. c #342C55", +"%. c #1A1141", +"&. c #10043F", +"*. c #0C0438", +"=. c #080435", +"-. c #080430", +";. c #060428", +">. c #000424", +",. c #353647", +"'. c #A8A99C", +"). c #212516", +"!. c #BEBEBE", +"~. c #5B566C", +"{. c #353056", +"]. c #423968", +"^. c #48416C", +"/. c #484066", +"(. c #413969", +"_. c #B9B9B9", +":. c #B17979", +"<. c #FFB3B3", +"[. c #FFF3F3", +"}. c #FFE3E3", +"|. c #FF8484", +"1. c #FF7777", +"2. c #FF6464", +"3. c #FF8888", +"4. c #FFD7D7", +"5. c #FF0000", +"6. c #C40000", +"7. c #7A7A7A", +"8. c #7D7D7D", +"9. c #888785", +"0. c #787186", +"a. c #170450", +"b. c #100448", +"c. c #100444", +"d. c #10043E", +"e. c #0B0438", +"f. c #353749", +"g. c #ADAC9E", +"h. c #2B2E1D", +"i. c #ADADAD", +"j. c #615C75", +"k. c #423A61", +"l. c #4F4D70", +"m. c #594E85", +"n. c #493F66", +"o. c #B37A7A", +"p. c #FFADAD", +"q. c #FFE1E1", +"r. c #FFF1F1", +"s. c #FF7676", +"t. c #FF6868", +"u. c #FF6060", +"v. c #FF4949", +"w. c #FFCFCF", +"x. c #FFBCBC", +"y. c #FFC5C5", +"z. c #CB0000", +"A. c #7E7E7E", +"B. c #818181", +"C. c #888887", +"D. c #787187", +"E. c #110448", +"F. c #080436", +"G. c #070428", +"H. c #35374A", +"I. c #ADAEA0", +"J. c #3B3E2B", +"K. c #61625F", +"L. c #635C75", +"M. c #3D3660", +"N. c #494169", +"O. c #4B4669", +"P. c #4F4A6A", +"Q. c #8D8F8D", +"R. c #C2C2C2", +"S. c #B67B7B", +"T. c #FF9F9F", +"U. c #FFCECE", +"V. c #FFBABA", +"W. c #FF4C4C", +"X. c #FF4848", +"Y. c #FF6262", +"Z. c #FFB4B4", +"`. c #FFCBCB", +" + c #C70000", +".+ c #808080", +"++ c #AFAFAF", +"@+ c #868686", +"#+ c #898A89", +"$+ c #757084", +"%+ c #2A185A", +"&+ c #291D44", +"*+ c #2E2648", +"=+ c #170A45", +"-+ c #B1B3A6", +";+ c #51533D", +">+ c #4F514D", +",+ c #5D5871", +"'+ c #333158", +")+ c #3D3460", +"!+ c #423E65", +"~+ c #515171", +"{+ c #9D9E9D", +"]+ c #626262", +"^+ c #8A8A8A", +"/+ c #B87C7C", +"(+ c #FF8E8E", +"_+ c #FFC1C1", +":+ c #FFA7A7", +"<+ c #FF3535", +"[+ c #FF2929", +"}+ c #FFD3D3", +"|+ c #FFCCCC", +"1+ c #838383", +"2+ c #B2B2B2", +"3+ c #8B8B8B", +"4+ c #8A8B8A", +"5+ c #777085", +"6+ c #3A334E", +"7+ c #0C0A0C", +"8+ c #141414", +"9+ c #373151", +"0+ c #0C0439", +"a+ c #080437", +"b+ c #393C4C", +"c+ c #B8B9AC", +"d+ c #64664F", +"e+ c #565751", +"f+ c #28233D", +"g+ c #2E2749", +"h+ c #373051", +"i+ c #393561", +"j+ c #393259", +"k+ c #352C52", +"l+ c #6E6E6E", +"m+ c #BA7B7B", +"n+ c #FF8989", +"o+ c #FF2121", +"p+ c #FFD1D1", +"q+ c #CA0000", +"r+ c #878787", +"s+ c #B8B8B8", +"t+ c #8F8F8F", +"u+ c #8C8C8A", +"v+ c #797487", +"w+ c #5F5A6C", +"x+ c #847A4D", +"y+ c #817D76", +"z+ c #282634", +"A+ c #0E083E", +"B+ c #060429", +"C+ c #000425", +"D+ c #3C3E50", +"E+ c #BDBFB1", +"F+ c #767860", +"G+ c #595A54", +"H+ c #8D8D8D", +"I+ c #929292", +"J+ c #959497", +"K+ c #ACABAE", +"L+ c #737473", +"M+ c #302A4F", +"N+ c #3F3C64", +"O+ c #4B4274", +"P+ c #4F4876", +"Q+ c #3F3C69", +"R+ c #BD7C7C", +"S+ c #FAA8A8", +"T+ c #E93B3B", +"U+ c #F2C6C6", +"V+ c #EB9191", +"W+ c #D12E2E", +"X+ c #D50000", +"Y+ c #E88E8E", +"Z+ c #FFD0D0", +"`+ c #CE0000", +" @ c #898989", +".@ c #BCBCBC", +"+@ c #949494", +"@@ c #8D8D8C", +"#@ c #7C788C", +"$@ c #776960", +"%@ c #E6C019", +"&@ c #B1993D", +"*@ c #26242E", +"=@ c #171045", +"-@ c #07042B", +";@ c #3D3F52", +">@ c #C6C5B7", +",@ c #818368", +"'@ c #595A53", +")@ c #393052", +"!@ c #494261", +"~@ c #52497A", +"{@ c #4F487A", +"]@ c #4D4669", +"^@ c #463E69", +"/@ c #BC7B7B", +"(@ c #E86C6C", +"_@ c #E1A2A2", +":@ c #DFA2A2", +"<@ c #C34141", +"[@ c #C54343", +"}@ c #F0D8D8", +"|@ c #A80000", +"1@ c #AD0000", +"2@ c #AB0000", +"3@ c #AA0000", +"4@ c #BB0000", +"5@ c #999999", +"6@ c #8F8E8C", +"7@ c #8F8C9A", +"8@ c #959398", +"9@ c #E5E4DF", +"0@ c #FBF8F4", +"a@ c #383437", +"b@ c #38334F", +"c@ c #0B0639", +"d@ c #06042B", +"e@ c #47495A", +"f@ c #C7C8BB", +"g@ c #858770", +"h@ c #5C5D57", +"i@ c #14D121", +"j@ c #332C54", +"k@ c #3D3A69", +"l@ c #494266", +"m@ c #494666", +"n@ c #494363", +"o@ c #3F3B66", +"p@ c #979897", +"q@ c #AE7D7D", +"r@ c #CD6262", +"s@ c #EABFBF", +"t@ c #EFCBCB", +"u@ c #C94646", +"v@ c #C02929", +"w@ c #FCF5F5", +"x@ c #C63A3A", +"y@ c #B10000", +"z@ c #B50000", +"A@ c #B70000", +"B@ c #A10000", +"C@ c #BDBDBD", +"D@ c #9E9E9E", +"E@ c #90908E", +"F@ c #707170", +"G@ c #DEDDDA", +"H@ c #FEFBF8", +"I@ c #FAF7F4", +"J@ c #969592", +"K@ c #1B1A1C", +"L@ c #807D8A", +"M@ c #767580", +"N@ c #75737C", +"O@ c #707279", +"P@ c #939496", +"Q@ c #C7C5B7", +"R@ c #797E67", +"S@ c #999A99", +"T@ c #58576C", +"U@ c #5C5874", +"V@ c #5E5576", +"W@ c #5C597A", +"X@ c #5E5778", +"Y@ c #5C5570", +"Z@ c #646464", +"`@ c #B07C7C", +" # c #DB8282", +".# c #ECBABA", +"+# c #E7AFAF", +"@# c #DA7F7F", +"## c #BA0D0D", +"$# c #BD1616", +"%# c #B00000", +"&# c #B40000", +"*# c #BA0000", +"=# c #A20000", +"-# c #C1C1C1", +";# c #A2A2A2", +"># c #626362", +",# c #737270", +"'# c #FFFBF8", +")# c #FDFBF8", +"!# c #FFFCFA", +"~# c #E4E1DE", +"{# c #060406", +"]# c #ACAEAC", +"^# c #EFEEEC", +"/# c #EEEDE8", +"(# c #E7EAE5", +"_# c #E4E2DD", +":# c #B9BAAC", +"<# c #676C55", +"[# c #E9E9E9", +"}# c #6B6C6D", +"|# c #828282", +"1# c #B07B7B", +"2# c #D36060", +"3# c #CD4D4D", +"4# c #C63434", +"5# c #B80000", +"6# c #B90000", +"7# c #9E0000", +"8# c #C8C8C8", +"9# c #5B543A", +"0# c #A19054", +"a# c #FDFBF7", +"b# c #FCFAF6", +"c# c #F2E6B8", +"d# c #090608", +"e# c #807E6E", +"f# c #9A9A8E", +"g# c #95958B", +"h# c #565947", +"i# c #70715E", +"j# c #78786D", +"k# c #91928E", +"l# c #EDEDED", +"m# c #A4A4A4", +"n# c #B1B0B4", +"o# c #B1AFB4", +"p# c #858587", +"q# c #6B6A6B", +"r# c #757475", +"s# c #787678", +"t# c #7C7A7C", +"u# c #AC7171", +"v# c #8B0000", +"w# c #920000", +"x# c #980000", +"y# c #970000", +"z# c #9A0000", +"A# c #990000", +"B# c #8F0000", +"C# c #880000", +"D# c #979797", +"E# c #D5D5D5", +"F# c #534820", +"G# c #EFC522", +"H# c #EFC610", +"I# c #7D755E", +"J# c #FEFBF7", +"K# c #E4C261", +"L# c #B78C0D", +"M# c #C2A92E", +"N# c #2C2D1E", +"O# c #26281A", +"P# c #515341", +"Q# c #727370", +"R# c #A4A5A3", +"S# c #F2F2F2", +"T# c #CDBC6E", +"U# c #AE6E22", +"V# c #6B6A6C", +"W# c #A7A6A6", +"X# c #8A5858", +"Y# c #745050", +"Z# c #755050", +"`# c #785353", +" $ c #795454", +".$ c #7B5656", +"+$ c #7E5959", +"@$ c #805B5B", +"#$ c #815C5C", +"$$ c #845F5F", +"%$ c #876363", +"&$ c #8F6868", +"*$ c #A58181", +"=$ c #E7E7E7", +"-$ c #63511C", +";$ c #F3C410", +">$ c #F7CF10", +",$ c #D7B540", +"'$ c #A6A3A3", +")$ c #787773", +"!$ c #956E0F", +"~$ c #F6CA10", +"{$ c #D4B328", +"]$ c #7F7A62", +"^$ c #4E4E46", +"/$ c #2D2E24", +"($ c #4C4C40", +"_$ c #90918A", +":$ c #F7F7F7", +"<$ c #9B9B9D", +"[$ c #6E6C6F", +"}$ c #A7A7A7", +"|$ c #AAAAAA", +"1$ c #B3B3B3", +"2$ c #B6B6B6", +"3$ c #CBCBCB", +"4$ c #D4D4D4", +"5$ c #DFDFDF", +"6$ c #FAFAFA", +"7$ c #494847", +"8$ c #373022", +"9$ c #755E2F", +"0$ c #695024", +"a$ c #2D2B23", +"b$ c #292921", +"c$ c #664D24", +"d$ c #6F5624", +"e$ c #40403D", +"f$ c #C6C6C6", +"g$ c #E4E4E4", +"h$ c #FCFCFC", +"i$ c #C7C7C7", +"j$ c #696869", +"k$ c #000001", +"l$ c #FEFEFE", +"m$ c #020202", +"n$ c #5C5C5C", +"o$ c #7F7F7F", +"p$ c #858585", +"q$ c #888888", +"r$ c #707070", +"s$ c #919397", +"t$ c #9B9EA4", +"u$ c #9DA0A7", +"v$ c #9FA2A9", +"w$ c #A0A4AB", +"x$ c #A1A5AD", +"y$ c #A3A6AB", +"z$ c #A6A6A6", +"A$ c #B0B0B0", +"B$ c #2C2C2C", +"C$ c #F1F1F1", +"D$ c #878D94", +"E$ c #868D94", +"F$ c #888E94", +"G$ c #858C93", +"H$ c #858B92", +"I$ c #848A91", +"J$ c #959595", +"K$ c #82827A", +"L$ c #A48E74", +"M$ c #817A73", +"N$ c #C3C6CC", +"O$ c #FEFFFF", +"P$ c #F8FAFF", +"Q$ c #EEF1FA", +"R$ c #E0E5F2", +"S$ c #B3BDD1", +"T$ c #AFB2B9", +"U$ c #E5E5E5", +"V$ c #939393", +"W$ c #A1805D", +"X$ c #FFCD81", +"Y$ c #DD9B55", +"Z$ c #89827B", +"`$ c #C4C7CD", +" % c #FAFCFF", +".% c #F1F4FC", +"+% c #E5EAF4", +"@% c #DAE0ED", +"#% c #B4B7BE", +"$% c #202020", +"%% c #829BB6", +"&% c #F0F0F0", +"*% c #EFEFEF", +"=% c #ECECEC", +"-% c #EBEBEB", +";% c #A87E53", +">% c #F5800D", +",% c #FFCF81", +"'% c #DE9E58", +")% c #C9C4C3", +"!% c #FBFDFF", +"~% c #F5F7FD", +"{% c #E9EDF7", +"]% c #F5F8FD", +"^% c #D9DFED", +"/% c #BABDC4", +"(% c #92D0F5", +"_% c #10161B", +":% c #1D2931", +"<% c #3B5462", +"[% c #75A6C4", +"}% c #98D3F5", +"|% c #7590AE", +"1% c #EEEEEE", +"2% c #EAEAEA", +"3% c #919191", +"4% c #9D9D9D", +"5% c #A88665", +"6% c #FF931E", +"7% c #F57F0D", +"8% c #FFC87E", +"9% c #EBA863", +"0% c #F5EEE7", +"a% c #FDFFFF", +"b% c #F7F9FE", +"c% c #EDF0F9", +"d% c #A3AFC7", +"e% c #41ACFD", +"f% c #256391", +"g% c #3286C5", +"h% c #348ACB", +"i% c #163B57", +"j% c #3081BE", +"k% c #A1A1A1", +"l% c #926F59", +"m% c #E16E0D", +"n% c #FF8F16", +"o% c #FFBF64", +"p% c #E89F5B", +"q% c #F8F0EA", +"r% c #EFF3FA", +"s% c #E6EAF5", +"t% c #DADDE4", +"u% c #ABB5CC", +"v% c #61BAFA", +"w% c #172B3A", +"x% c #040608", +"y% c #091016", +"z% c #5CB1EE", +"A% c #D9D9D9", +"B% c #B8B5B5", +"C% c #7E7775", +"D% c #B3AEAD", +"E% c #CACACA", +"F% c #E8E8E8", +"G% c #909090", +"H% c #82726B", +"I% c #903400", +"J% c #E26C0A", +"K% c #FC890D", +"L% c #FF8808", +"M% c #FDB683", +"N% c #EEC297", +"O% c #FFF6F4", +"P% c #F8FBFF", +"Q% c #B4BDD1", +"R% c #0E2537", +"S% c #0A1A26", +"T% c #B07B6F", +"U% c #C46755", +"V% c #E1705A", +"W% c #DA6A53", +"X% c #D16650", +"Y% c #B35846", +"Z% c #975C50", +"`% c #544441", +" & c #7F6A62", +".& c #8F3200", +"+& c #E26600", +"@& c #FF7902", +"#& c #FD9D66", +"$& c #FFF0D8", +"%& c #FEDBCA", +"&& c #F9FBFF", +"*& c #ECF0F9", +"=& c #E1E6F2", +"-& c #BBC3D6", +";& c #08131D", +">& c #716E7A", +",& c #D3705C", +"'& c #E06C56", +")& c #DD6B55", +"!& c #D76851", +"~& c #CF644F", +"{& c #C7614D", +"]& c #C05D4A", +"^& c #B85A47", +"/& c #AE5745", +"(& c #66443E", +"_& c #7E6861", +":& c #8C3301", +"<& c #C05410", +"[& c #D86E3A", +"}& c #FABE97", +"|& c #FFE1C6", +"1& c #F0E5E7", +"2& c #E8ECF6", +"3& c #E5E9F4", +"4& c #C0C8DA", +"5& c #C0C0C0", +"6& c #225B85", +"7& c #3FA6F5", +"8& c #CB7462", +"9& c #DF6C55", +"0& c #DB6A53", +"a& c #D36750", +"b& c #CB634E", +"c& c #C45F4B", +"d& c #BC5B48", +"e& c #B55946", +"f& c #AD5544", +"g& c #A65241", +"h& c #A15443", +"i& c #948886", +"j& c #6A6A6A", +"k& c #757575", +"l& c #6E5A53", +"m& c #4D301B", +"n& c #75451E", +"o& c #C97750", +"p& c #FBCAA9", +"q& c #F8D4C8", +"r& c #EBEFF8", +"s& c #C3CBDC", +"t& c #C4C4C4", +"u& c #E9F6FD", +"v& c #333334", +"w& c #4C4C4C", +"x& c #606E80", +"y& c #E27E67", +"z& c #D76852", +"A& c #CF654F", +"B& c #C8614D", +"C& c #B37357", +"D& c #6C777D", +"E& c #647276", +"F& c #5D6B6F", +"G& c #566668", +"H& c #4F6062", +"I& c #7F817F", +"J& c #6D6D6D", +"K& c #777777", +"L& c #7E7F84", +"M& c #5F5B57", +"N& c #5C3219", +"O& c #BD7552", +"P& c #EEAE8B", +"Q& c #E1E0E2", +"R& c #EAEEF7", +"S& c #C5CCDD", +"T& c #D2ECFB", +"U& c #3B4246", +"V& c #E5937F", +"W& c #CC634E", +"X& c #C45F4C", +"Y& c #BD5C49", +"Z& c #CEB660", +"`& c #5B9F93", +" * c #26849B", +".* c #1F7B90", +"+* c #197386", +"@* c #297988", +"#* c #505F61", +"$* c #747474", +"%* c #919398", +"&* c #9A9B9E", +"** c #665D5A", +"=* c #4A3423", +"-* c #86847E", +";* c #EBEFF7", +">* c #E7EBF5", +",* c #C6CDDE", +"'* c #CCCCCC", +")* c #597F96", +"!* c #989898", +"~* c #B48A80", +"{* c #D47B68", +"]* c #B95A47", +"^* c #B25845", +"/* c #AE5E46", +"(* c #D2D468", +"_* c #AEC16D", +":* c #237D90", +"<* c #197487", +"[* c #2C7A89", +"}* c #2F5A62", +"|* c #6F7272", +"1* c #8C8C8C", +"2* c #999CA0", +"3* c #B2B4B9", +"4* c #B0B3B7", +"5* c #9D9FA4", +"6* c #565759", +"7* c #CDD1D8", +"8* c #D0D0D0", +"9* c #5E879F", +"0* c #555352", +"a* c #916B62", +"b* c #C37968", +"c* c #AD5D4D", +"d* c #B48451", +"e* c #CCCF68", +"f* c #C5C769", +"g* c #6B957C", +"h* c #39727D", +"i* c #274B53", +"j* c #2D3739", +"k* c #CACDD2", +"l* c #F0F0F2", +"m* c #E8EBF1", +"n* c #E5E8EF", +"o* c #E3E6EE", +"p* c #E2E6EE", +"q* c #E4E8F1", +"r* c #E6EBF5", +"s* c #C6CEDE", +"t* c #AEAEAE", +"u* c #796D6A", +"v* c #765149", +"w* c #8C764A", +"x* c #97974E", +"y* c #838447", +"z* c #586347", +"A* c #293B3F", +"B* c #565858", +"C* c #BBBBBB", +"D* c #CFD3DA", +"E* c #D7DCE7", +"F* c #D3DAE6", +"G* c #D2D8E5", +"H* c #D1D7E5", +"I* c #CFD6E3", +"J* c #CDD4E3", +"K* c #CBD2E1", +"L* c #C9D0E0", +"M* c #C7CFDF", +"N* c #B6BFD2", +"O* c #D8D8D8", +"P* c #C3C3C3", +"Q* c #B7B7B7", +"R* c #A0A0A0", +"S* c #A5A5A5", +"T* c #BFBFBF", +"U* c #0B0B0B", +"V* c #090909", +"W* c #D9D499", +"X* c #E4D08D", +"Y* c #EABE8D", +"Z* c #E3B26B", +"`* c #E3B982", +" = c #BDA385", +".= c #C6C6D5", +"+= c #9494AD", +"@= c #787879", +"#= c #78787D", +"$= c #838386", +"%= c #80807B", +"&= c #79786A", +"*= c #868568", +"== c #8C8C6B", +"-= c #888874", +";= c #EDE1C3", +">= c #ECC48A", +",= c #F69854", +"'= c #F78E42", +")= c #EB9D54", +"!= c #FFC280", +"~= c #DA776F", +"{= c #EA3166", +"]= c #DE2F66", +"^= c #D57F6A", +"/= c #BBA97D", +"(= c #F3C3BC", +"_= c #ED6B56", +":= c #E8E1E3", +"<= c #EEEEF2", +"[= c #EAEAF0", +"}= c #DEDEE7", +"|= c #E0E0E9", +"1= c #7F7F83", +"2= c #A7A7AE", +"3= c #D2D2CB", +"4= c #EDEDC5", +"5= c #FDF9AE", +"6= c #EDE98B", +"7= c #D2CF66", +"8= c #ADA84D", +"9= c #8E8B4B", +"0= c #9D9986", +"a= c #EED392", +"b= c #FFCF86", +"c= c #FBBB57", +"d= c #E92F00", +"e= c #EB2F00", +"f= c #D85025", +"g= c #F3B366", +"h= c #E6466F", +"i= c #FF0061", +"j= c #DD7075", +"k= c #D6B275", +"l= c #B89A77", +"m= c #C6BFCC", +"n= c #F36C55", +"o= c #EB3517", +"p= c #DCBAB7", +"q= c #EDEFF4", +"r= c #EDEDF2", +"s= c #E1E1E9", +"t= c #C9C9D7", +"u= c #767675", +"v= c #8C8B7D", +"w= c #D7D7B9", +"x= c #FFFFF0", +"y= c #FFFFFA", +"z= c #FFFDD8", +"A= c #FFFAB0", +"B= c #FFF88D", +"C= c #FFF566", +"D= c #FFF746", +"E= c #D1C336", +"F= c #82723E", +"G= c #9A8F7E", +"H= c #F1DCB7", +"I= c #FDCF86", +"J= c #FFCF72", +"K= c #F8BB57", +"L= c #D02F00", +"M= c #DF2F00", +"N= c #EF4310", +"O= c #F6B661", +"P= c #E44D6C", +"Q= c #F00877", +"R= c #F80677", +"S= c #DD7179", +"T= c #CEA764", +"U= c #CE9B60", +"V= c #C6C3D1", +"W= c #F3806D", +"X= c #ED2F11", +"Y= c #D9BCB9", +"Z= c #EDEFF3", +"`= c #E4E4EB", +" - c #7D7D6B", +".- c #D7D79A", +"+- c #FFFBBF", +"@- c #FFFEDB", +"#- c #FFFEE4", +"$- c #FFFBB2", +"%- c #FFF986", +"&- c #FFF658", +"*- c #FDEF36", +"=- c #D6B832", +"-- c #926E35", +";- c #6F5642", +">- c #B5B1AC", +",- c #F3D269", +"'- c #F8D334", +")- c #FFDC45", +"!- c #FAC75D", +"~- c #DF7D3B", +"{- c #E97A2A", +"]- c #E7843C", +"^- c #EDBD61", +"/- c #E3947A", +"(- c #DE6C79", +"_- c #DB3686", +":- c #CE7E9D", +"<- c #CE8BA6", +"[- c #CE8188", +"}- c #996D74", +"|- c #D1D1D1", +"1- c #F3CDC6", +"2- c #E93E23", +"3- c #DED3D3", +"4- c #F1F1F5", +"5- c #E6E6ED", +"6- c #DBDBE5", +"7- c #CDCDDA", +"8- c #BFBFD0", +"9- c #76756C", +"0- c #A9A669", +"a- c #FFF992", +"b- c #FFF9A4", +"c- c #FFFEE3", +"d- c #FDFDED", +"e- c #F5F2B4", +"f- c #F9F477", +"g- c #FFF23D", +"h- c #D6BA31", +"i- c #A97B33", +"j- c #A67133", +"k- c #826137", +"l- c #A08C69", +"m- c #FFEB19", +"n- c #FFFF00", +"o- c #FFF709", +"p- c #F2D135", +"q- c #E5C26F", +"r- c #D3CE77", +"s- c #D1B165", +"t- c #CFB875", +"u- c #AF7C77", +"v- c #B1306F", +"w- c #961766", +"x- c #9D36B5", +"y- c #9F09D6", +"z- c #A406CC", +"A- c #A55DB4", +"B- c #F5EAE9", +"C- c #EE391C", +"D- c #DCB3AE", +"E- c #F0F1F6", +"F- c #F0F0F4", +"G- c #E7E7EE", +"H- c #E3E3EA", +"I- c #D0D0DC", +"J- c #C4C4D3", +"K- c #C2C2D1", +"L- c #89865A", +"M- c #D2CC62", +"N- c #FFF676", +"O- c #FFF785", +"P- c #FFFA9D", +"Q- c #FCFABC", +"R- c #E2E3DA", +"S- c #C9C9C7", +"T- c #BFC0A2", +"U- c #CEB94A", +"V- c #A5732D", +"W- c #AD7933", +"X- c #C79333", +"Y- c #AD8735", +"Z- c #907A4A", +"`- c #CDCDCD", +" ; c #FBEF0C", +".; c #FFF70C", +"+; 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 #F0D5D0", +"); c #EA3A1C", +"!; c #E05A44", +"~; c #E5E5E8", +"{; c #E8E8EE", +"]; c #CBCBD9", +"^; c #C8C8D6", +"/; c #868247", +"(; c #EDE54C", +"_; c #FFF753", +":; c #FFF85C", +"<; c #FDF76B", +"[; c #EBEAC1", +"}; c #BCBCC5", +"|; c #686875", +"1; c #878895", +"2; c #BFB9B6", +"3; c #BE903A", +"4; c #D5A730", +"5; c #DCB433", +"6; c #D1AF34", +"7; c #7F713F", +"8; c #FAD739", +"9; c #F3ED24", +"0; c #F8E533", +"a; c #D8C763", +"b; c #EBA76F", +"c; c #D1C260", +"d; c #C7A65C", +"e; c #311F0F", +"f; c #0C0000", +"g; c #390012", +"h; c #5F1B24", +"i; c #AA36BA", +"j; c #9B0BD5", +"k; c #9D0BD9", +"l; c #A4569D", +"m; c #EDA093", +"n; c #D68678", +"o; c #E36B58", +"p; c #D78F85", +"q; c #E4E7EE", +"r; c #DCDCE5", +"s; c #D6D6E1", +"t; c #D2D2DE", +"u; c #D1D1DD", +"v; c #CECEDB", +"w; c #78703B", +"x; c #F0DF34", +"y; c #F2E135", +"z; c #F2E034", +"A; c #E5D645", +"B; c #D9D9D3", +"C; c #6E6F7D", +"D; c #A4A5A6", +"E; c #696976", +"F; c #DDDFE8", +"G; c #DFCE66", +"H; c #F4D925", +"I; c #F3DC31", +"J; c #F2DC32", +"K; c #79703C", +"L; c #D6D6D6", +"M; c #EAC46F", +"N; c #F0CB6C", +"O; c #D8B36A", +"P; c #D1BD6E", +"Q; c #D3B375", +"R; c #CBB260", +"S; c #B28866", +"T; c #0C0706", +"U; c #020206", +"V; c #2B1010", +"W; c #5E3D1F", +"X; c #CB8B8D", +"Y; c #B78394", +"Z; c #C27794", +"`; c #B0747D", +" > c #C3BECB", +".> c #E56E5B", +"+> c #D6C5C5", +"@> c #EAD4D4", +"#> c #DE4C37", +"$> c #CFAEAF", +"%> c #D9D0D8", +"&> c #D5D4DF", +"*> c #D4D4E0", +"=> c #72643C", +"-> c #B59434", +";> c #BA9332", +">> c #B48A30", +",> c #AD8336", +"'> c #B7B1AD", +")> c #888A97", +"!> c #6A6B78", +"~> c #A3A4AB", +"{> c #EDE871", +"]> c #FFF53F", +"^> c #FFF23F", +"/> c #EDE03B", +"(> c #8D863F", +"_> c #DBDBDB", +":> c #E5C895", +"<> c #DCAF6C", +"[> c #D8C065", +"}> c #CEBF61", +"|> c #C5B677", +"1> c #ACA385", +"2> c #9E9899", +"3> c #434340", +"4> c #3F3D1C", +"5> c #744232", +"6> c #BA7D50", +"7> c #9B7687", +"8> c #313FDB", +"9> c #1E3DF1", +"0> c #494FBA", +"a> c #C0ABB4", +"b> c #DA7767", +"c> c #E3CBC9", +"d> c #E9C7C4", +"e> c #D76A5D", +"f> c #D7341C", +"g> c #D35847", +"h> c #D36858", +"i> c #CABCC2", +"j> c #D7D7E2", +"k> c #705B4A", +"l> c #886035", +"m> c #A77333", +"n> c #B37E33", +"o> c #C8952D", +"p> c #CAAE4C", +"q> c #C1C0AE", +"r> c #D0D0D7", +"s> c #E7E7EC", +"t> c #F3F1DA", +"u> c #FDF792", +"v> c #FFF67B", +"w> c #FFF468", +"x> c #D2C957", +"y> c #A6A058", +"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 #B0ACAB", +"O> c #BE7570", +"P> c #DF5F48", +"Q> c #D98075", +"R> c #D2837B", +"S> c #CCB3B2", +"T> c #D6A19E", +"U> c #D45341", +"V> c #C75E4F", +"W> c #BFB9C0", +"X> c #D9D9E3", +"Y> c #857A70", +"Z> c #846337", +"`> c #CA9633", +" , c #D4A533", +"., c #E2BE33", +"+, c #F6DD2B", +"@, c #F3EA4E", +"#, c #E1DF9A", +"$, c #EBEAD0", +"%, c #FDFCE5", +"&, c #FFFBBE", +"*, c #FFF8A1", +"=, c #FFF68A", +"-, c #AFA965", +";, c #C3BF82", +">, c #C6A47F", +",, c #A69F87", +"', c #3A364D", +"), c #525141", +"!, c #A67E41", +"~, c #C88B53", +"{, c #CF9061", +"], c #C88761", +"^, c #897F90", +"/, c #0F2FF3", +"(, c #082FF7", +"_, c #4047D8", +":, c #81645A", +"<, c #CA9C95", +"[, c #E25240", +"}, c #B74331", +"|, c #D9A49B", +"1, c #D8CED0", +"2, c #DDDCE2", +"3, c #E4E6ED", +"4, c #DCC8CD", +"5, c #BDB4BA", +"6, c #C5C9D2", +"7, c #DADAE4", +"8, c #9C9B9A", +"9, c #826D48", +"0, c #B89535", +"a, c #F0D632", +"b, c #FEEF37", +"c, c #FFF75B", +"d, c #FFFB91", +"e, c #FFFDC8", +"f, c #FFFFF1", +"g, c #FFFDDB", +"h, c #FFFABD", +"i, c #D7D292", +"j, c #A39F72", +"k, c #DFDEC6", +"l, c #B27F5B", +"m, c #D4A77A", +"n, c #8C6636", +"o, c #72491F", +"p, c #9D7A45", +"q, c #CC9A61", +"r, c #CF9361", +"s, c #C99061", +"t, c #A97E5C", +"u, c #906D5F", +"v, c #808185", +"w, c #8F7885", +"x, c #A16773", +"y, c #6D4C42", +"z, c #B0ABAA", +"A, c #D77B6D", +"B, c #CB4F40", +"C, c #D51E0F", +"D, c #AC8183", +"E, c #E9EFF2", +"F, c #E5E5EC", +"G, c #D7D8E1", +"H, c #9E9787", +"I, c #8D7C3D", +"J, c #C9B434", +"K, c #FBEA34", +"L, c #FFF349", +"M, c #FFF56D", +"N, c #FFF798", +"O, c #FFFDE8", +"P, c #FFFEF3", +"Q, c #D7D5B9", +"R, c #9F9C85", +"S, c #D0CFB3", +"T, c #99714C", +"U, c #DBA97B", +"V, c #7B5029", +"W, c #767361", +"X, c #BBA07C", +"Y, c #CA9E68", +"Z, c #CA9561", +"`, c #CF8761", +" ' c #B3805C", +".' c #322841", +"+' c #413759", +"@' c #8D7963", +"#' c #A7735A", +"$' c #A26453", +"%' c #DE6253", +"&' c #CE2B1C", +"*' c #C84030", +"=' c #BE5245", +"-' c #B8BBC9", +";' c #F3F3F6", +">' c #DFDFE8", +",' c #AFA77E", +"'' c #9A9144", +")' c #AFA73D", +"!' c #D2C851", +"~' c #EDE470", +"{' c #FDF598", +"]' c #EDE8AF", +"^' c #D2D0BC", +"/' c #AFAFB3", +"(' c #A3A3A1", +"_' c #D0CFC1", +":' c #937257", +"<' c #DBAA7B", +"[' c #714D25", +"}' c #C69D70", +"|' c #BE8D61", +"1' c #A77F54", +"2' c #443251", +"3' c #606492", +"4' c #A39EA3", +"5' c #A46959", +"6' c #96734D", +"7' c #DD6557", +"8' c #DC3121", +"9' c #C16F64", +"0' c #C1C8C8", +"a' c #BAB9AC", +"b' c #B3B072", +"c' c #A29E61", +"d' c #8C885F", +"e' c #7D7B64", +"f' c #8C8A78", +"g' c #A6A499", +"h' c #C3C3C2", +"i' c #DFDFDE", +"j' c #D5A96D", +"k' c #775529", +"l' c #A17E63", +"m' c #AC825F", +"n' c #936958", +"o' c #AC97A9", +"p' c #C9B4B3", +". . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . + ", +". # $ % & * = - ; > , ' ) ! ~ { ] + . ^ / ( _ : < [ } | 1 2 3 4 5 6 7 + . 8 8 8 8 8 8 8 8 9 0 a b c d e f + ", +". $ g h i j k l m g n o p q r s f + . / : t u v w x y z A B C D E F G + . 8 H I J K L M 8 N a b c d e f 7 + ", +". O P . Q R h S T U V W X Y Z ` .+ . ..+.@.#.$.%.&.*.=.-.;.>.,.'.).!.+ . 8 ~.{.].^./.(.8 N b c d e f 7 _.+ ", +". :.<.[.. }.l |.1.2.3.. 4.5.6.7. .+ . 8.9.0.a.b.c.d.e.=.-.;.>.f.g.h.i.+ . 8 j.k.l.m.l.n.8 N c d e f 7 _.!.+ ", +". o.p.q.r.. s.t.u.v.w.x.y.5.z.A.e + . B.C.D.a.E.c.d.e.F.-.G.>.H.I.J.K.+ . 8 L.M.N.O.P.m.8 Q.d e f 7 _.!.R.+ ", +". S.T.U.i . V.W.X.Y.|.Z.`.5. +.++++ . @+#+$+%+&+*+=+e.F.-.;.>.H.-+;+>++ . 8 ,+'+)+!+~+{+{+{+{+{+{+{+{+]+^++ ", +". /+(+_+:+V.. <+[+}+5._+|+5. +1+2++ . 3+4+5+6+7+8+9+0+a+-.G.>.b+c+d+e++ . 8 8 8 8 8 8 {+f+g+h+i+j+k+{+N l++ ", +". m+m Z.:+W.. n+o+p+5.w.p+5.q+r+s++ . t+u+v+w+x+y+z+A+F.-.B+C+D+E+F+G++ . H+I+J+K+8 L+{+M+N+O+P+N.Q+{+N l++ ", +". R+g p.S+T+U+. V+W+X+Y+Z+5.`+ @.@+ . +@@@#@$@%@&@*@=@a+-.-@C+;@>@,@'@+ . {+{+{+{+{+{+{+)@!@~@{@]@^@{+N l++ ", +". /@(@_@:@<@[@. }@|@1@2@3@4@Z ^+G + . 5@6@7@8@9@0@a@b@c@-.d@C+e@f@g@h@+ . {+i@{+{+{+{+{+j@k@l@m@n@o@{+N p@+ ", +". q@r@s@t@u@v@w@x@y@z@z@z@A@B@H+C@+ . D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@+ . {+{+{+{+{+{+{+T@U@V@W@X@Y@{+Z@r++ ", +". `@ #.#+#@###$#%#&#Z Z A@*#=#t+-#+ . ;#>#,#'#)#!#~#{#]#^#/#(#_#:#<#[#+ . b c d }#f 7 {+{+{+{+{+{+{+{+{+|#+ ", +". 1#2#3#4#5#z@A@5#5#6#5#Z 5#7#t+8#+ . / 9#0#a#b#u c#d#e#f#g#h#i#j#k#l#+ . c d e }#7 _.d m#n#o#p#q#r#s#t#9 + ", +". u#=#v#w#x#y#y#z#A#x#B#C#B#A#D#E#+ . F#G#H#I#J#u K#L#M#N#O#P#Q#R#l#S#+ . d e T#U#T#!.{+{+{+{+{+{+{+{+V#_ + ", +". W#X#Y#Z#`# $.$+$@$#$$$%$&$*$i.=$+ . -$;$>$,$'$)$!$~${$]$^$/$($_$S#:$+ . }#}#U#U#U#}#{+i@{+{+{+{+{+<$[$_ + ", +". 2+ .;#c }$|$i.1$2$_.R.3$4$5$=$6$+ . 7$8$9$0$a$b$c$d$e$f$g$[#l#S#:$h$+ . f 7 T#U#T#i${+{+{+{+{+{+{+{+j$^ + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +". . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . k$", +". l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$m$. ^ n$8.o$.+|#1+p$@+q$^+3+H+s r$d + . ^ / ..8.s$t$u$v$w$x$x$y$z$e A$7 + ", +". l$l$l$l$l$l$l$l$l$l$l$l$+ B$C$C$+ . / 8.+ D$E$+ F$G$H$+ H$I$I$+ +@J$+ . K$L$M$B.N$. . O$P$Q$R$S$T$++7 G + ", +". l$l$l$l$l$l$l$l$l$l$U$+ 9 l$l$l$+ . ..o$+ + + + + + + + + + + + V$J$+ . W$X$Y$Z$`$. . . %.%+%S$@%#%_.!.+ ", +". l$l$l$l$l$l$l$+ + $%+ o$l$l$l$l$+ . 8..++ %%%%+ C$&%*%+ l#=%-%+ I+5@+ . ;%>%,%'%)%. . . !%~%{%S$]%^%/%R.+ ", +". (%(%(%(%(%(%_%:%<%[%+ (%(%(%}%}%+ . B.|#+ |%|%+ &%*%1%+ =%-%2%+ 3%4%+ . 5%6%7%8%9%0%. . a%b%c%S$S$S$d%.@+ ", +". e%e%e%e%e%f%g%e%e%h%i%j%e%e%e%e%+ . @+1++ + + + + + + + + + + + 3%k%+ . l%m%n%>%o%p%q%. O$P$r%s%t%t%u%7 + ", +". v%v%v%v%v%v%v%w%x%y%z%v%v%v%v%v%+ . 3+p$+ |%|%+ 1%A%B%C%D%E%F%+ G%m#+ . H%I%J%K%L%M%N%O%O$P%c%s%t%t%Q%s++ ", +". e%e%e%e%e%e%R%+ S%e%e%e%e%e%e%e%+ . t+@++ + + + T%U%V%W%X%Y%Z%`%H+d + . H+ &.&+&@&#&$&%&&&*&=&s%t%t%-&.@+ ", +". e%e%e%e%e%e%+ ;&h%e%e%e%e%e%e%e%+ . +@q$+ |%>&,&'&)&!&~&{&]&^&/&(&|$+ . ` r+_&:&<&[&}&|&1&2&3&s%t%t%4&5&+ ", +". e%e%e%6&;&+ + 7&e%e%e%e%e%e%e%e%+ . 5@^++ + 8&9&0&a&b&c&d&e&f&g&h&i&+ . j&^ k&l&m&n&o&p&q&r&2&s%t%t%s&t&+ ", +". u&u&x%+ v&w&B$u&u&u&u&u&u&u&u&u&+ . D@3++ x&y&z&A&B&]&C&D&E&F&G&H&I&+ . J&r$/ K&L&M&N&O&P&Q&R&s%t%t%S&8#+ ", +". T&x%U&T&T&T&T&T&T&T&T&T&T&T&T&T&+ . ;#H++ + V&W&X&Y&e&Z&`& *.*+*@*#*+ . $*k&K&7.%*f &***=*-*;*>*t%t%,*'*+ ", +". )*<%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ . }$s + !*~*{*]*^*/*(*_*:*<*[*}*|*+ . a J$1*@+2*_.3*4*5*6*7*>*t%t%,*8*+ ", +". 9*(%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ . e k&+ + 0*a*b*c*d*e*f*g*h*i*j*.@+ . e A$1$] k*l*m*n*o*p*q*r*t%t%s*4$+ ", +". (%(%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ . A$t*d |$t*k%u*v*w*x*y*z*A*B*C*-%+ . A$7 G !.D*E*F*G*H*I*J*K*L*M*N*O*+ ", +". (%(%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ . 7 G !.P*8#3$i$G D#A.A.J$C*A%C$h$+ . 7 G !.P*Q*R*;#S* .e ++1$2$_.T*F%+ ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + U*V*V*+ + + + + + + + + + + + ", +". . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . k$. . . . . . . . . . . . . . . . . + ", +". ^ / ..8.B.@+W*X*Y*Z*`* =e e A$7 + . ^ / ..8..=.=.=.=.=.=.=.=+=e A$7 + . ^ / ..@=#=$=%=&=*===-=a }$e A$7 + ", +". / ..;=>=,='=)=!=~={=]=^=/=.@7 G + . / ..8.B..=(=_=:=<=[=}=|=+=+=7 G + . / ..K&1=2=3=4=5=6=7=8=9=0=A$7 G + ", +". / a=b=c=d=e=f=g=h=i=i=j=k=l=G !.+ . ..8.B.@+m=n=o=p=q=r=s=|=+=t=+=!.+ . ..u=v=w=x=y=z=A=B=C=D=E=F=G=G !.+ ", +". H=I=J=K=L=M=N=O=P=Q=R=S=T=U=l=P*+ . 8.B.@+3+V=W=X=Y=Z=<=`=|=+=+=+=+=+ . @= -.-+-@-y=#-$-%-&-*-=---;->-P*+ ", +". ,-'-)-!-~-{-]-^-/-(-_-:-<-[-}-|-+ . B.@+3+t+.=1-2-3-4-<=5-|=6-7-8-+=+ . 9-0-a-b-+-c-d-e-f-g-h-i-j-k-l-8#+ ", +". m-n-o-p-q-r-s-t-u-v-w-x-y-z-A-l=+ . @+3+t++@.=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-`-+ ", +". ;n-.;+;@;#;$;%;&;*;=;-;;;;;>;,;+ . 3+t++@5@.=';);!;~;F-{;|=];^;.=+=+ . /;(;_;:;<;[;};|;1;2;3;4;5;6;7;|-+ ", +". 8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;,;+ . t++@5@D@.=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;O;P;Q;R;S;T;U;V;W;X;Y;Z;`;,;+ . +@5@D@;# >.>+>@>#>$>%>%>&>*>t;+=+ . =>->;>>>,>'>)>!>~>4-{>]>^>/>(>_>+ ", +". :><>[>}>|>1>2>3>4>5>6>7>8>9>0>,;+ . 5@D@;#}$a>b>c>d>e>f>g>h>i>j>s;+=+ . k>l>m>n>o>p>q>r>s>t>u>v>w>x>y>5$+ ", +". ;#z>A>B>C>D>E>F>G>H>H>I>J>K>L>M>+ . D@;#}$N>O>P>Q>R>S>T>U>V>W>X>s;+=+ . Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,g$+ ", +". ;#}$;#>,,,',),!,~,{,],^,/,(,_,:,+ . ;#}$<,[,},|,1,2,3,`=4,5,6,7,j>+=+ . 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,D,E,[={;5-F,H-}=G,7,j>+=+ . }$H,I,J,K,L,M,N,h,O,P,Q,R,S,[#l#+ ", +". ;#T,U,V,W,X,Y,Z,`, '.'+'@'#'$'l=+ . %'&'*'='-';'{;G-F,`=s=>'6-7,j>+=+ . e A$,''')'!'~'{']'^'/'('_'[#l#S#+ ", +". :'<'['!.P*8#|-}'|'1'2'3'4'5'6':$+ . 7'8'9'0'.=F-{;{;5-`=|=>'r;7,j>+=+ . A$7 G a'b'c'd'e'f'g'h'i'[#l#S#:$+ ", +". j'k'!.P*8#`-|-|-l'm'n'o'p'l=:$h$+ . 7 G !.P*+=+=+=+=+=+=+=+=+=+=+=+=+ . 7 G !.P*8#`-|-L;_>5$g$[#l#S#:$h$+ ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; diff --git a/wmbutton/icons/audio.xpm b/wmbutton/icons/audio.xpm new file mode 100644 index 0000000..638b921 --- /dev/null +++ b/wmbutton/icons/audio.xpm @@ -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", +".................+", +".@@@@@@@@#@@@@@@@+", +".$$$$$$$#%#$$$$$$+", +".@@@@@@@#@#@@@@@@+", +".@@@@@@@#@#@@@@@@+", +".$$$$$$$#%#$$$$$$+", +".@@@@@@@#&*@@@@@@+", +".@@@@@@=#*@@@@@@@+", +".$$$$$%##%$$$$$$$+", +".@@@@@#-###=@@@@@+", +".@@@@@#@#@@#@@@@@+", +".$$$$$#%#%$#$$$$$+", +".@@@@@#=#==#@@@@@+", +".@@@@@@####@@@@@@+", +".$$$$$$$%#%$$$$$$+", +".@@@@@@###@@@@@@@+", +".@@@@@@##=@@@@@@@+", +"++++++++++++++++++"}; diff --git a/wmbutton/icons/blankbutton.xpm b/wmbutton/icons/blankbutton.xpm new file mode 100644 index 0000000..cac8490 --- /dev/null +++ b/wmbutton/icons/blankbutton.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static char * blankbutton_xpm[] = { +"18 18 4 1", +" c None", +". c #FFFFFF", +"+ c #000000", +"@ c #D5D6D5", +".................+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +".@@@@@@@@@@@@@@@@+", +"++++++++++++++++++"}; diff --git a/wmbutton/icons/buttons2.xpm b/wmbutton/icons/buttons2.xpm new file mode 100644 index 0000000..ddb5f12 --- /dev/null +++ b/wmbutton/icons/buttons2.xpm @@ -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$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ "}; diff --git a/wmbutton/icons/edit.xpm b/wmbutton/icons/edit.xpm new file mode 100644 index 0000000..55a0905 --- /dev/null +++ b/wmbutton/icons/edit.xpm @@ -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", +".................+", +".@@@@@@@@@@@@@##@+", +".@@@@@@@@@@@@####+", +".@@@@@@@@@@@++###+", +".@@@@@@@@@@++$+#@+", +".@@@@@@@@@$%+++@@+", +".@@@@@@@@$%%%+@@@+", +".@@@@@@@$%%%$@@@@+", +".@@@@@@$%%%$@@@@@+", +".@@@@@$%%%$@@@@@@+", +".@@@@$%%%$@@@@@@@+", +".@@@$%%%$@@@@@@@@+", +".@@$%%%$@@@@@@@@@+", +".@@&%%$@@@@@@@@@@+", +".@&&&$@@@@@@@@@@@+", +".@&&@@@@@@@@@@@@@+", +".+@@@@@@@@@@@@@@@+", +"++++++++++++++++++"}; diff --git a/wmbutton/icons/ftp.xpm b/wmbutton/icons/ftp.xpm new file mode 100644 index 0000000..68aad12 --- /dev/null +++ b/wmbutton/icons/ftp.xpm @@ -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$+", +"++++++++++++++++++"}; diff --git a/wmbutton/icons/graph.xpm b/wmbutton/icons/graph.xpm new file mode 100644 index 0000000..a72ed0a --- /dev/null +++ b/wmbutton/icons/graph.xpm @@ -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", +".................+", +".@@@@@#@@@#@@@@@@+", +".@@@@@######@@@@@+", +".@#@@@@@@@@@@@@@@+", +".@#@@@@@@@@@@$$@@+", +".@#@@@@@@@@@%%$@@+", +".##@@&&@@@@@%%$@@+", +".##@**&@@@@@%%$@@+", +".##@**&@@@@@%%$@@+", +".##@**&@@==@%%$@@+", +".##@**&@--=@%%$@@+", +".@#@**&@--=@%%$@@+", +".@#@**&@--=@%%$@@+", +".@#@**&@--=@%%$@@+", +".@##############@+", +".@@@@@#####@@@@@@+", +".@@@@@@@@@@@@@@@@+", +"++++++++++++++++++"}; diff --git a/wmbutton/icons/gv.xpm b/wmbutton/icons/gv.xpm new file mode 100644 index 0000000..1240fdd --- /dev/null +++ b/wmbutton/icons/gv.xpm @@ -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%%############"}; diff --git a/wmbutton/icons/netscape.xpm b/wmbutton/icons/netscape.xpm new file mode 100644 index 0000000..17d339d --- /dev/null +++ b/wmbutton/icons/netscape.xpm @@ -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 + ", +". ` ...+.( @.#.$.%.&.( ( *.=.-.;.+ ", +". >.,.'.).( !.+ + + + + + ~.{.].^.+ ", +". + + + ( ( ( /.+ + + + + + + + + + ", +". + + + + + + + + + + + + + + + + + ", +". + + + + + + + + + + + + + + + + + ", +". + + + + + + + + + + + + + + + + + ", +". + + + + + + + + + + + + + + + + + ", +"+ + + + + + + + + + + + + + + + + + "}; diff --git a/wmbutton/icons/paint.xpm b/wmbutton/icons/paint.xpm new file mode 100644 index 0000000..265c6a3 --- /dev/null +++ b/wmbutton/icons/paint.xpm @@ -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 @ @ + ", +"+ + + + + + + + + + + + + + + + + + "}; diff --git a/wmbutton/icons/wp.xpm b/wmbutton/icons/wp.xpm new file mode 100644 index 0000000..08d9558 --- /dev/null +++ b/wmbutton/icons/wp.xpm @@ -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", +".................+", +".@@@@@@@@@@@@@@@@#", +".$$$@$$$$@$$$@@@@#", +".@$$@@$$@@$$@@@@@#", +".@$$@@$$@@$@@@@@@#", +".@$$@$$$@$$@@@@@@#", +".@$$@$@$@$@@@@@@@#", +".@@$$$@$@$$$$$$@@#", +".@@$$@@$$@@$$@$$@#", +".@@$$@@$$@@$$@$$@#", +".@@$@@@$@@$$@@$$@#", +".@@@@@@@@@$$@$$@@#", +".@@@@@@@@@$$$$@@@#", +".@@@@@@@@$$@@@@@@#", +".@@@@@@@@$$@@@@@@#", +".@@@@@@@$$$$@@@@@#", +".@@@@@@@@@@@@@@@@#", +"##################"}; diff --git a/wmbutton/icons/xterm.xpm b/wmbutton/icons/xterm.xpm new file mode 100644 index 0000000..60e0b13 --- /dev/null +++ b/wmbutton/icons/xterm.xpm @@ -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.@ @ @ @ @ @ @ # ", +"# # # # # # # # # # # # # # # # # # "}; diff --git a/wmbutton/mask.xbm b/wmbutton/mask.xbm new file mode 100644 index 0000000..0efa91f --- /dev/null +++ b/wmbutton/mask.xbm @@ -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 }; diff --git a/wmbutton/wmb_libs.c b/wmbutton/wmb_libs.c new file mode 100644 index 0000000..c9ea4c8 --- /dev/null +++ b/wmbutton/wmb_libs.c @@ -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 +#include +#include +#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 ] [-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 Window Geometry - ie: 64x64+10+10\n"); + fprintf(stderr,"-d Display - ie: 127.0.0.1:0.0\n"); + fprintf(stderr,"-f Full path to configuration file.\n"); + fprintf(stderr,"-b Full path to button xpm.\n"); + fprintf(stderr,"-F 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 + ***********************************************************************/ + +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 \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); +}/***********************************************************************/ diff --git a/wmbutton/wmbutton.c b/wmbutton/wmbutton.c new file mode 100644 index 0000000..a2e46ac --- /dev/null +++ b/wmbutton/wmbutton.c @@ -0,0 +1,557 @@ +/*********************************************************************** + * Code is based on wmppp, wmload, wmtime, wmcp, and asbutton + * Author: Edward H. Flora + * Ver 0 Rel 6.1 Jan 23, 2005 + * + * Contributors: + * Christian 'Greek0' Aichinger + * Did some code cleanup and fixed several memory leaks. + * Ralf Horstmann + * Added ability to load pixmaps at startup, + * without having to re-compile + * Michael Cohrs + * Added Tool Tips, and updated graphics + * Bruno Essmann ) + * Creator of wmpager + * Casey Harkins + * Bug fix reading config file path - 3/6/99 + * Added button-presses, and other - denoted by *charkins* + * Ben Cohen + * original author of wmcp (et al.) + * Thomas Nemeth + * contributor to wmcp + * Michael Henderson + * Application ideas, suggestions + * Ryan ?? + * 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 +#include +#include +#include +#include +#include + +#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 ); +} + diff --git a/wmbutton/wmbutton.h b/wmbutton/wmbutton.h new file mode 100644 index 0000000..178f896 --- /dev/null +++ b/wmbutton/wmbutton.h @@ -0,0 +1,107 @@ +/* wmbutton.h - Edward H. Flora - ehf_dockapps@cox.net */ +/* Last Modified 3/27/04 */ + +/****** Include Files ***************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/****** 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); + +/**********************************************************************/