From: http://www.cs.mun.ca/~gstarkes/wmaker/dockapps/files/wmxss-0.1.tar.gz --- wmxss/COPYING | 339 +++++++++++++++++++++++++++++++++++++++++++ wmxss/Src/.nfs3822 | Bin 0 -> 183024 bytes wmxss/Src/Makefile | 36 +++++ wmxss/Src/Makefile.sgi | 36 +++++ wmxss/Src/Makefile.solaris | 36 +++++ wmxss/Src/wmxss | Bin 0 -> 13292 bytes wmxss/Src/wmxss.c | 338 +++++++++++++++++++++++++++++++++++++++++++ wmxss/Src/wmxss.o | Bin 0 -> 5284 bytes wmxss/Src/wmxss_mask.xbm | 38 +++++ wmxss/Src/wmxss_master.xpm | 73 ++++++++++ wmxss/Src/xutils.c | 354 +++++++++++++++++++++++++++++++++++++++++++++ wmxss/Src/xutils.h | 48 ++++++ wmxss/Src/xutils.o | Bin 0 -> 6724 bytes 13 files changed, 1298 insertions(+) create mode 100644 wmxss/COPYING create mode 100755 wmxss/Src/.nfs3822 create mode 100644 wmxss/Src/Makefile create mode 100644 wmxss/Src/Makefile.sgi create mode 100644 wmxss/Src/Makefile.solaris create mode 100755 wmxss/Src/wmxss create mode 100644 wmxss/Src/wmxss.c create mode 100644 wmxss/Src/wmxss.o create mode 100644 wmxss/Src/wmxss_mask.xbm create mode 100644 wmxss/Src/wmxss_master.xpm create mode 100644 wmxss/Src/xutils.c create mode 100644 wmxss/Src/xutils.h create mode 100644 wmxss/Src/xutils.o
diff --git a/wmxss/COPYING b/wmxss/COPYING new file mode 100644 index 0000000..a43ea21 --- /dev/null +++ b/wmxss/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. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/wmxss/Src/.nfs3822 b/wmxss/Src/.nfs3822 new file mode 100755 index 0000000000000000000000000000000000000000..73eb00946be25add536d30049983ad6f8d98a88a GIT binary patch literal 183024 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 VwEH4@U;Q5c7FnogX?Xc|{{!{-wn_j1 literal 0 HcmV?d00001 diff --git a/wmxss/Src/Makefile b/wmxss/Src/Makefile new file mode 100644 index 0000000..5f464f9 --- /dev/null +++ b/wmxss/Src/Makefile @@ -0,0 +1,36 @@ +CC = gcc +CFLAGS = -O2 -Wall +INCDIR = -I/usr/X11R6/include/X11 -I/usr/X11R6/include +DESTDIR= /usr/X11R6 +LIBDIR = -L/usr/X11R6/lib + +# for Linux +LIBS = -lXpm -lX11 -lXext + +# for Solaris +#LIBS = -lXpm -lX11 -lXext -lsocket -lnsl + +OBJS = wmxss.o \ + xutils.o + + +.c.o: + $(CC) $(CFLAGS) -D$(shell echo `uname -s`) -c $< -o $*.o $(INCDIR) + + +all: wmxss.o wmxss + +wmxss.o: wmxss_master.xpm wmxss_mask.xbm +wmxss: $(OBJS) + $(CC) $(COPTS) $(SYSTEM) -o wmxss $^ $(INCDIR) $(LIBDIR) $(LIBS) + +clean: + for i in $(OBJS) ; do \ + rm -f $$i; \ + done + rm -f wmxss + +install:: wmxss + install -c -s -m 0755 wmxss $(DESTDIR)/bin + install -c -m 0644 wmxss.1 $(DESTDIR)/man/man1 + diff --git a/wmxss/Src/Makefile.sgi b/wmxss/Src/Makefile.sgi new file mode 100644 index 0000000..276de93 --- /dev/null +++ b/wmxss/Src/Makefile.sgi @@ -0,0 +1,36 @@ +CC = gcc +CFLAGS = -O2 -Wall +INCDIR = -I/usr/X11R6/include/X11 -I/usr/X11R6/include +DESTDIR= /usr/X11R6 +LIBDIR = -L/usr/X11R6/lib + +# for Linux, IRIX +LIBS = -lXpm -lX11 -lXext + +# for Solaris +# LIBS = -lXpm -lX11 -lXext -lsocket -lnsl + +OBJS = wmxss.o \ + xutils.o + + +.c.o: + $(CC) $(CFLAGS) -c $< -o $*.o $(INCDIR) + + +all: wmxss.o wmxss + +wmxss.o: wmxss_master.xpm wmxss_mask.xbm +wmxss: $(OBJS) + $(CC) $(COPTS) $(SYSTEM) -o wmxss $(OBJS) $(INCDIR) $(LIBDIR) $(LIBS) + +clean: + for i in $(OBJS) ; do \ + rm -f $$i; \ + done + rm -f wmxss + +install:: wmxss + install -s -m 0755 wmxss $(DESTDIR)/bin + install -c -m 0644 wmxss.1 $(DESTDIR)/man/man1 + diff --git a/wmxss/Src/Makefile.solaris b/wmxss/Src/Makefile.solaris new file mode 100644 index 0000000..6e876d2 --- /dev/null +++ b/wmxss/Src/Makefile.solaris @@ -0,0 +1,36 @@ +CC = gcc +CFLAGS = -O2 -Wall +INCDIR = -I/usr/X11R6/include/X11 -I/usr/X11R6/include +DESTDIR= /usr/X11R6 +LIBDIR = -L/usr/X11R6/lib + +# for Linux +#LIBS = -lXpm -lX11 -lXext + +# for Solaris +LIBS = -lXpm -lX11 -lXext -lsocket -lnsl + +OBJS = wmxss.o \ + xutils.o + + +.c.o: + $(CC) $(CFLAGS) -D$(shell echo `uname -s`) -c $< -o $*.o $(INCDIR) + + +all: wmxss.o wmxss + +wmxss.o: wmxss_master.xpm wmxss_mask.xbm +wmxss: $(OBJS) + $(CC) $(COPTS) $(SYSTEM) -o wmxss $^ $(INCDIR) $(LIBDIR) $(LIBS) + +clean: + for i in $(OBJS) ; do \ + rm -f $$i; \ + done + rm -f wmxss + +install:: wmxss + install -c -s -m 0755 wmxss $(DESTDIR)/bin + install -c -m 0644 wmxss.1 $(DESTDIR)/man/man1 + diff --git a/wmxss/Src/wmxss b/wmxss/Src/wmxss new file mode 100755 index 0000000000000000000000000000000000000000..f9e93d527f6df3e8ba619d02b87f31458e7eb2ce GIT binary patch literal 13292 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 Lbrkvg;?n;Uo^qcc literal 0 HcmV?d00001 diff --git a/wmxss/Src/wmxss.c b/wmxss/Src/wmxss.c new file mode 100644 index 0000000..1322111 --- /dev/null +++ b/wmxss/Src/wmxss.c @@ -0,0 +1,338 @@ +/* + * + * wmxss-0.10 (C) 1999 Mike Henderson (mghender...@lanl.gov) + * + * - Its a DockApp front end for xscreensaver + * + * + * + * + * 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, 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 (see the file COPYING); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA + * + * + * Changes: + * + * Version 0.10 - released Aug 11, 1999. + * just playing around right now.... + * + * + */ + + + + + +/* + * Includes + */ +#include <stdio.h> +#include <unistd.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <X11/X.h> +#include <X11/xpm.h> +#include "xutils.h" +#include "wmxss_master.xpm" +#include "wmxss_mask.xbm" + + + +/* + * Delay between refreshes (in microseconds) + */ +#define DELAY 10000L +#define WMXSS_VERSION "0.10" + + + + + +void ParseCMDLine(int argc, char *argv[]); +void ButtonPressEvent(XButtonEvent *); +void print_usage(); + + +int GotFirstClick1, GotDoubleClick1; +int GotFirstClick2, GotDoubleClick2; +int GotFirstClick3, GotDoubleClick3; +int DblClkDelay; +int HasExecute; +char ExecuteCommand[1024]; + + + + + +char TimeColor[30] = "#ffff00"; +char BackgroundColor[30] = "#181818"; + + + + + + +/* + * main + */ +int main(int argc, char *argv[]) { + + + XEvent event; + int n; + char Command[512]; + + + /* + * Parse any command line arguments. + */ + ParseCMDLine(argc, argv); + + + + + + + + initXwindow(argc, argv); + openXwindow(argc, argv, wmxss_master, wmxss_mask_bits, wmxss_mask_width, wmxss_mask_height); + + + + if (HasExecute){ + sprintf(Command, "%s -window-id 0x%x &", ExecuteCommand, (int)iconwin); + system(Command); + } + + + + /* + * Loop until we die + */ + n = 32000; + while(1) { + + + if ( n>10){ + + n = 0; + + } else { + + /* + * Update the counter. + */ + ++n; + + } + + + + + + /* + * Double Click Delays + * Keep track of click events. If Delay too long, set GotFirstClick's to False. + */ + if (DblClkDelay > 150) { + + DblClkDelay = 0; + GotFirstClick1 = 0; GotDoubleClick1 = 0; + GotFirstClick2 = 0; GotDoubleClick2 = 0; + GotFirstClick3 = 0; GotDoubleClick3 = 0; + + } else { + + ++DblClkDelay; + + } + + + + + /* + * Process any pending X events. + */ + while(XPending(display)){ + XNextEvent(display, &event); + switch(event.type){ + case Expose: + RedrawWindow(); + break; + case ButtonPress: + ButtonPressEvent(&event.xbutton); + break; + case ButtonRelease: + break; + } + } + + + + + + + /* + * Redraw and wait for next update + */ +/* + RedrawWindow(); +*/ + usleep(DELAY); + + + } + + + +} + + + + + + + + +/* + * ParseCMDLine() + */ +void ParseCMDLine(int argc, char *argv[]) { + +int i; + + for (i = 1; i < argc; i++) { + + if (!strcmp(argv[i], "-display")){ + + ++i; + + } else if (!strcmp(argv[i], "-tc")){ + + if ((i+1 >= argc)||(argv[i+1][0] == '-')) { + fprintf(stderr, "wmxss: No color found\n"); + print_usage(); + exit(-1); + } + strcpy(TimeColor, argv[++i]); + + } else if (!strcmp(argv[i], "-bc")){ + + if ((i+1 >= argc)||(argv[i+1][0] == '-')) { + fprintf(stderr, "wmxss: No color found\n"); + print_usage(); + exit(-1); + } + strcpy(BackgroundColor, argv[++i]); + + } else if (!strcmp(argv[i], "-e")){ + + if ((i+1 >= argc)||(argv[i+1][0] == '-')) { + fprintf(stderr, "wmxss: No command given\n"); + print_usage(); + exit(-1); + } + strcpy(ExecuteCommand, argv[++i]); + HasExecute = 1; + + } else { + + print_usage(); + exit(1); + } + + } + + +} + + +void print_usage(){ + + printf("\nwmxss version: %s\n", WMXSS_VERSION); + printf("\nusage: wmxss [-e \"Command\"] \n\n"); + printf("\t-e \"Command\"\tCommand to execute via double click of mouse button 1.\n"); + printf("\t-h\t\tDisplay help screen.\n"); + printf("\nExample: wmxss -e xflame\n\n"); + +} + + + + + + + +/* + * This routine handles button presses. + * + * Double click on + * Mouse Button 1: Execute the command defined in the -e command-line option. + * Mouse Button 2: No action assigned. + * Mouse Button 3: No action assigned. + * + * + */ +void ButtonPressEvent(XButtonEvent *xev){ + + + + DblClkDelay = 0; + if ((xev->button == Button1) && (xev->type == ButtonPress)){ + if (GotFirstClick1) GotDoubleClick1 = 1; + else GotFirstClick1 = 1; + } else if ((xev->button == Button2) && (xev->type == ButtonPress)){ + if (GotFirstClick2) GotDoubleClick2 = 1; + else GotFirstClick2 = 1; + } else if ((xev->button == Button3) && (xev->type == ButtonPress)){ + if (GotFirstClick3) GotDoubleClick3 = 1; + else GotFirstClick3 = 1; + } + + + /* + * We got a double click on Mouse Button1 (i.e. the left one) + */ + if (GotDoubleClick1) { + GotFirstClick1 = 0; + GotDoubleClick1 = 0; + system("xscreensaver-demo"); + } + + + /* + * We got a double click on Mouse Button2 (i.e. the left one) + */ + if (GotDoubleClick2) { + GotFirstClick2 = 0; + GotDoubleClick2 = 0; + } + + + /* + * We got a double click on Mouse Button3 (i.e. the left one) + */ + if (GotDoubleClick3) { + GotFirstClick3 = 0; + GotDoubleClick3 = 0; + } + + + + return; + +} + diff --git a/wmxss/Src/wmxss.o b/wmxss/Src/wmxss.o new file mode 100644 index 0000000000000000000000000000000000000000..7aaaf44aa966258be3cad0fb40f6e269a3d1048e GIT binary patch literal 5284 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 NkT-B%pP(=#{1-|*vZ4S0 literal 0 HcmV?d00001 diff --git a/wmxss/Src/wmxss_mask.xbm b/wmxss/Src/wmxss_mask.xbm new file mode 100644 index 0000000..c9ec70c --- /dev/null +++ b/wmxss/Src/wmxss_mask.xbm @@ -0,0 +1,38 @@ +#define wmxss_mask_width 64 +#define wmxss_mask_height 64 +static char wmxss_mask_bits[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff, + 0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff, + 0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff, + 0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff, + 0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0, + 0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f, + 0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff, + 0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff, + 0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff, + 0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff, + 0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff, + 0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff, + 0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0, + 0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f, + 0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff, + 0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff, + 0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff, + 0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff, + 0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff, + 0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff, + 0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0, + 0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f, + 0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff, + 0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff, + 0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff, + 0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff, + 0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff, + 0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff, + 0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0, + 0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; diff --git a/wmxss/Src/wmxss_master.xpm b/wmxss/Src/wmxss_master.xpm new file mode 100644 index 0000000..0003a77 --- /dev/null +++ b/wmxss/Src/wmxss_master.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *wmxss_master[] = { +/* width height num_colors chars_per_pixel */ +" 64 64 2 1", +/* colors */ +". c #ffffff", +"# c #000000", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"....########################################################....", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/wmxss/Src/xutils.c b/wmxss/Src/xutils.c new file mode 100644 index 0000000..8759e15 --- /dev/null +++ b/wmxss/Src/xutils.c @@ -0,0 +1,354 @@ +/* + * xutils.c - A collection of X-windows utilties for creating WindowMAker + * DockApps. + * + * This file contains alot of the lower-level X windows routines. Origins with wmppp + * (by Martijn Pieterse (piete...@xs4all.nl)), but its been hacked up quite a bit + * and passed on from one new DockApp to the next. + * + * + * + * + * 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, 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 (see the file COPYING); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA + * + * + * + * + */ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <ctype.h> +#include <stdarg.h> +#include <X11/Xlib.h> +#include <X11/xpm.h> +#include <X11/extensions/shape.h> +#include "xutils.h" + + + +/* + * X11 Variables + */ +int x_fd; +XSizeHints mysizehints; +XWMHints mywmhints; +Pixel back_pix, fore_pix; +char *Geometry = ""; +GC NormalGC; +XpmIcon wmgen; +Pixmap pixmask; + + +/* + * Colors for wmCalClock + */ +extern char TimeColor[30]; +extern char BackgroundColor[30]; + + + + + + +/* + * flush_expose + */ +static int flush_expose(Window w) { + + XEvent dummy; + int i=0; + + while (XCheckTypedWindowEvent(display, w, Expose, &dummy)) + i++; + + return i; + +} + + + + + + + + + +/* + * RedrawWindow + * RedrawWindowXY + */ +void RedrawWindow(void) { + + flush_expose(iconwin); + XCopyArea(display, wmgen.pixmap, iconwin, NormalGC, 0,0, wmgen.attributes.width, wmgen.attributes.height, 0, 0); + + flush_expose(win); + XCopyArea(display, wmgen.pixmap, win, NormalGC, 0,0, wmgen.attributes.width, wmgen.attributes.height, 0, 0); + +} + +void RedrawWindowXY(int x, int y) { + + flush_expose(iconwin); + XCopyArea(display, wmgen.pixmap, iconwin, NormalGC, x,y, wmgen.attributes.width, wmgen.attributes.height, 0, 0); + + flush_expose(win); + XCopyArea(display, wmgen.pixmap, win, NormalGC, x,y, wmgen.attributes.width, wmgen.attributes.height, 0, 0); + +} + + + + + + + +/* + * copyXPMArea + * copyXBMArea + */ +void copyXPMArea(int x, int y, int sx, int sy, int dx, int dy) { + XCopyArea(display, wmgen.pixmap, wmgen.pixmap, NormalGC, x, y, sx, sy, dx, dy); +} + +void copyXBMArea(int x, int y, int sx, int sy, int dx, int dy) { + + XCopyArea(display, wmgen.mask, wmgen.pixmap, NormalGC, x, y, sx, sy, dx, dy); +} + + + +/* + * initXwindow + */ +void initXwindow(int argc, char *argv[]){ + + int i; + char *display_name = NULL; + + for (i=1; argv[i]; ++i) { + if (!strcmp(argv[i], "-display")) display_name = argv[i+1]; + } + + + if (!(display = XOpenDisplay(display_name))) { + fprintf(stderr, "%s: can't open display %s\n", + argv[0], XDisplayName(display_name)); + exit(1); + } + + + screen = DefaultScreen(display); + Root = RootWindow(display, screen); + DisplayDepth = DefaultDepth(display, screen); + x_fd = XConnectionNumber(display); + +} + + + + + +/* + * openXwindow + */ +void openXwindow(int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bits, + int pixmask_width, int pixmask_height) { + + unsigned int borderwidth = 1; + XClassHint classHint; + char *wname = argv[0]; + XTextProperty name; + XGCValues gcv; + unsigned long gcm; + int dummy=0, red, grn, blu; + XpmColorSymbol cols[10]={ {"Back", NULL, 0}, + {"Color1", NULL, 0}, + {"Color2", NULL, 0}, + {"Color3", NULL, 0}, + {"Color4", NULL, 0}, + {"Color5", NULL, 0}, + {"Color6", NULL, 0}, + {"Color7", NULL, 0}, + {"Color8", NULL, 0}, + {"Color9", NULL, 0}}; + + + + + /* + * Create Pixmap + */ + cols[0].pixel = getColor(BackgroundColor, 1.0000, &red, &grn, &blu); + cols[1].pixel = getBlendedColor(TimeColor, 0.1522, red, grn, blu); + cols[2].pixel = getBlendedColor(TimeColor, 0.2602, red, grn, blu); + cols[3].pixel = getBlendedColor(TimeColor, 0.3761, red, grn, blu); + cols[4].pixel = getBlendedColor(TimeColor, 0.4841, red, grn, blu); + cols[5].pixel = getBlendedColor(TimeColor, 0.5922, red, grn, blu); + cols[6].pixel = getBlendedColor(TimeColor, 0.6980, red, grn, blu); + cols[7].pixel = getBlendedColor(TimeColor, 0.7961, red, grn, blu); + cols[8].pixel = getBlendedColor(TimeColor, 0.8941, red, grn, blu); + cols[9].pixel = getBlendedColor(TimeColor, 1.0000, red, grn, blu); + + wmgen.attributes.numsymbols = 10; + wmgen.attributes.colorsymbols = cols; + wmgen.attributes.exactColors = False; + wmgen.attributes.closeness = 40000; + wmgen.attributes.valuemask = XpmReturnPixels | XpmReturnExtensions | XpmColorSymbols + | XpmExactColors | XpmCloseness | XpmSize; + if (XpmCreatePixmapFromData(display, Root, pixmap_bytes, + &(wmgen.pixmap), &(wmgen.mask), &(wmgen.attributes)) != XpmSuccess){ + fprintf(stderr, "Not enough free colorcells.\n"); + exit(1); + } + + + + + /* + * Create a window + */ + mysizehints.flags = USSize | USPosition; + mysizehints.x = 0; + mysizehints.y = 0; + + back_pix = getColor("white", 1.0, &red, &grn, &blu); + fore_pix = getColor("black", 1.0, &red, &grn, &blu); + + XWMGeometry(display, screen, Geometry, NULL, borderwidth, &mysizehints, + &mysizehints.x, &mysizehints.y,&mysizehints.width,&mysizehints.height, &dummy); + + mysizehints.width = 64; + mysizehints.height = 64; + + + + win = XCreateSimpleWindow(display, Root, mysizehints.x, mysizehints.y, + mysizehints.width, mysizehints.height, borderwidth, fore_pix, back_pix); + + iconwin = XCreateSimpleWindow(display, win, mysizehints.x, mysizehints.y, + mysizehints.width, mysizehints.height, borderwidth, fore_pix, back_pix); + + + + /* + * Activate hints + */ + XSetWMNormalHints(display, win, &mysizehints); + classHint.res_name = wname; + classHint.res_class = wname; + XSetClassHint(display, win, &classHint); + + + + /* + * Set up the xevents that you want the relevent windows to inherit + * Currently, its seems that setting KeyPress events here has no + * effect. I.e. for some you will need to Grab the focus and then return + * it after you are done... + */ + XSelectInput(display, win, ButtonPressMask | ExposureMask | ButtonReleaseMask + | PointerMotionMask | StructureNotifyMask | EnterWindowMask | LeaveWindowMask + | KeyPressMask | KeyReleaseMask); + XSelectInput(display, iconwin, ButtonPressMask | ExposureMask | ButtonReleaseMask + | PointerMotionMask | StructureNotifyMask | EnterWindowMask | LeaveWindowMask + | KeyPressMask | KeyReleaseMask); + + + if (XStringListToTextProperty(&wname, 1, &name) == 0) { + fprintf(stderr, "%s: can't allocate window name\n", wname); + exit(1); + } + + + XSetWMName(display, win, &name); + + /* + * Create Graphics Context (GC) for drawing + */ + gcm = GCForeground | GCBackground | GCGraphicsExposures; + gcv.foreground = fore_pix; + gcv.background = back_pix; + gcv.graphics_exposures = 0; + NormalGC = XCreateGC(display, Root, gcm, &gcv); + + + + pixmask = XCreateBitmapFromData(display, win, pixmask_bits, pixmask_width, pixmask_height); + XShapeCombineMask(display, win, ShapeBounding, 0, 0, pixmask, ShapeSet); + XShapeCombineMask(display, iconwin, ShapeBounding, 0, 0, pixmask, ShapeSet); + + + mywmhints.initial_state = WithdrawnState; + mywmhints.icon_window = iconwin; + mywmhints.icon_x = mysizehints.x; + mywmhints.icon_y = mysizehints.y; + mywmhints.window_group = win; + mywmhints.flags = StateHint | IconWindowHint | IconPositionHint | WindowGroupHint; + + + XSetWMHints(display, win, &mywmhints); + + + XSetCommand(display, win, argv, argc); + XMapWindow(display, win); + +} + +unsigned long getColor(char *ColorName, float fac, int *red, int *grn, int *blu) { + + XColor Color; + XWindowAttributes Attributes; + + XGetWindowAttributes(display, Root, &Attributes); + Color.pixel = 0; + + XParseColor(display, Attributes.colormap, ColorName, &Color); + Color.red = (unsigned short)(fac*(Color.red-24) + 24); + Color.blue = (unsigned short)(fac*(Color.blue-24) + 24); + Color.green = (unsigned short)(fac*(Color.green-24) + 24); + Color.flags = DoRed | DoGreen | DoBlue; + XAllocColor(display, Attributes.colormap, &Color); + + + *red = Color.red; + *grn = Color.green; + *blu = Color.blue; + return Color.pixel; + +} + +unsigned long getBlendedColor(char *ColorName, float fac, int red, int grn, int blu) { + + XColor Color; + XWindowAttributes Attributes; + + XGetWindowAttributes(display, Root, &Attributes); + Color.pixel = 0; + + XParseColor(display, Attributes.colormap, ColorName, &Color); + Color.red = (unsigned short)(fac*(Color.red-red) + red); + Color.blue = (unsigned short)(fac*(Color.blue-grn) + grn); + Color.green = (unsigned short)(fac*(Color.green-blu) + blu); + Color.flags = DoRed | DoGreen | DoBlue; + XAllocColor(display, Attributes.colormap, &Color); + + return Color.pixel; + +} + diff --git a/wmxss/Src/xutils.h b/wmxss/Src/xutils.h new file mode 100644 index 0000000..565a134 --- /dev/null +++ b/wmxss/Src/xutils.h @@ -0,0 +1,48 @@ +#ifndef WMGENERAL_H_INCLUDED +#define WMGENERAL_H_INCLUDED + + + +/* + * Typedefs + */ +typedef struct { + Pixmap pixmap; + Pixmap mask; + XpmAttributes attributes; +} XpmIcon; + + + + +/* + * Global variable + */ +Display *display; +Window Root; +Window iconwin, win; +int screen; +int DisplayDepth; + + + + + +/* + * Function Prototypes + */ +void AddMouseRegion(int, int, int, int, int); +int CheckMouseRegion(int, int); +void openXwindow(int, char **, char **, char *, int, int); +void initXwindow(int, char **); +void RedrawWindow(void); +void RedrawWindowXY(int, int); +void copyXPMArea(int, int, int, int, int, int); +void copyXBMArea(int, int, int, int, int, int); +void setMaskXY(int, int); +unsigned long getColor(char *, float, int *, int *, int *); +unsigned long getBlendedColor(char *, float, int, int, int); +void RedrawWindow(void); + + +#endif diff --git a/wmxss/Src/xutils.o b/wmxss/Src/xutils.o new file mode 100644 index 0000000000000000000000000000000000000000..bfb71903f65335a8b42273050ac6da467bf88c4c GIT binary patch literal 6724 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 literal 0 HcmV?d00001 -- 2.7.4 -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.