From: http://www.sourcefiles.org/Toys/Clocks/wmHexaClock0.1.tar.gz --- wmhexaclock/AUTHORS | Bin 0 -> 22696 bytes wmhexaclock/INSTALL | 23 +++ wmhexaclock/LICENSE | 339 ++++++++++++++++++++++++++++++++++++++++++++ wmhexaclock/Makefile | 44 ++++++ wmhexaclock/README | 47 ++++++ wmhexaclock/src/.main.c.swp | Bin 0 -> 16384 bytes wmhexaclock/src/main.c | 285 +++++++++++++++++++++++++++++++++++++ wmhexaclock/src/pixmaps.h | 178 +++++++++++++++++++++++ wmhexaclock/src/wmgeneral.c | 180 +++++++++++++++++++++++ wmhexaclock/src/wmgeneral.h | 25 ++++ wmhexaclock/wmHexaClock | Bin 0 -> 23868 bytes 11 files changed, 1121 insertions(+) create mode 100644 wmhexaclock/AUTHORS create mode 100644 wmhexaclock/INSTALL create mode 100644 wmhexaclock/LICENSE create mode 100644 wmhexaclock/Makefile create mode 100644 wmhexaclock/README create mode 100644 wmhexaclock/src/.main.c.swp create mode 100644 wmhexaclock/src/main.c create mode 100644 wmhexaclock/src/pixmaps.h create mode 100644 wmhexaclock/src/wmgeneral.c create mode 100644 wmhexaclock/src/wmgeneral.h create mode 100755 wmhexaclock/wmHexaClock
diff --git a/wmhexaclock/AUTHORS b/wmhexaclock/AUTHORS new file mode 100644 index 0000000000000000000000000000000000000000..c9417bae7dfefbcda7d0ad9ac0c16fb4ee8a4c6e GIT binary patch literal 22696 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 P;t^wWm%13E2@~Ugo3yW? literal 0 HcmV?d00001 diff --git a/wmhexaclock/INSTALL b/wmhexaclock/INSTALL new file mode 100644 index 0000000..ddbd1b5 --- /dev/null +++ b/wmhexaclock/INSTALL @@ -0,0 +1,23 @@ +Basic Installation +------------------ + + The simplest way to compile this package is: + + 1. Type `cd' to the directory containing the package's source code and type + `make� to compile the package + + 2. Type `su� to become super user and run + make install� to move the binaries into the rigt bin-folders + + 3. To remove the binary in the source directory you type + `make clean� + + 4. Type `make uninstall' to remove the program + + +Installation Names +------------------ + + By default the make install script will install the binary in: + /usr/local/bin/ + diff --git a/wmhexaclock/LICENSE b/wmhexaclock/LICENSE new file mode 100644 index 0000000..e77696a --- /dev/null +++ b/wmhexaclock/LICENSE @@ -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 + + 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/wmhexaclock/Makefile b/wmhexaclock/Makefile new file mode 100644 index 0000000..56a119b --- /dev/null +++ b/wmhexaclock/Makefile @@ -0,0 +1,44 @@ +# wmHexaClock Makefile by Bjoern Witt <n...@bjoernw.de> +# +# Copyright (C) 2006 Bjoern Witt +# +# 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 +# +# As a base for this program I used wmDockApp0.1 from Todd Goyen. +# Thanks a lot! + + +CC = gcc +CFLAGS = -O2 -Wall -g +BIN = wmHexaClock +SRC = ./src/main.c ./src/wmgeneral.c +INSPATH = /usr/local/bin/ +SOURCEPATH = ./ +X_LIBS = -L/usr/X11R6/lib +wmHexaClock_LDADD = -lX11 -lXpm -lXext + +all : $(MAINSRC) + $(CC) $(CFLAGS) -o $(BIN) $(SRC) $(X_LIBS) $(wmHexaClock_LDADD) + strip $(SOURCEPATH)$(BIN) + +install : + install -c -s -m 755 $(BIN) $(INSPATH) + +clean : + rm -f $(SOURCEPATH)$(BIN) + +uninstall : + rm -f $(INSPATH)wmHexaClock diff --git a/wmhexaclock/README b/wmhexaclock/README new file mode 100644 index 0000000..b478b3f --- /dev/null +++ b/wmhexaclock/README @@ -0,0 +1,47 @@ +How to use wmHexaClock 0.1 + +GENERAL +------- + +wmHexaClock is a DockApp that provides an hexadecimal +clock. + + +HOW TO USE +---------- + +It's not too difficult to use wmHexDock. You run it by +typing "wmHexaClock" and confirming with <enter> :) +There are just a few options so far: + + --color (-c) [COLORCODE] + You can change to foreground color with this option. + [COLORCODE] stands for the color which you specifiy in + hexadecimal notation (RRGGBB). Do not add the #-sign + in the beginning. Example: + "wmHexClock -fg-color 00ff00" for green. + + --mode (-m) [0 or 1] + You can run wmHexaClock in two different modes. In + mode 0 the program will display the time always while + the name of the day and the date of the day will be displayed + in turns (Interval is three seconds). + In mode 1 everything will be displayed the same time. It is much + more difficult to read it since the space is actually not + big enough. + + --help (-h) + Might help you + + --version (-v) + Displays version number + + +ANYTHING MORE? +-------------- + +Yes, I didn't write the wohle DockApp from scratch. As a base I took wmDockApp0.1 +from Todd Goyen. It is under GPL aswell and you will find it +here: http://dockapps.org/download.php/id/138/wmDockApp.tar.gz + +Thanks a lot! diff --git a/wmhexaclock/src/.main.c.swp b/wmhexaclock/src/.main.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..7340fea8313ef08acb8e83d47540964a5ea2a0c5 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/wmhexaclock/src/main.c b/wmhexaclock/src/main.c new file mode 100644 index 0000000..e7672ff --- /dev/null +++ b/wmhexaclock/src/main.c @@ -0,0 +1,285 @@ +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <X11/X.h> +#include <X11/xpm.h> +#include <X11/Xlib.h> +#include <unistd.h> +#include <time.h> +#include <stdbool.h> +#include <getopt.h> + +#include "wmgeneral.h" +#include "pixmaps.h" + +#define HOUR 1 +#define MINUTE 2 +#define SECOND 3 + +#define VERSION "0.1" +#define RELEASED "October 2006" + +/* Prototypes */ +void beat(void); +void display_time(int number,int time_unit); +void display_lines(time_t seconds); +void display_date(int day_of_week, int day_of_month, int month, int year,int mode,time_t seconds); +void setColor(char *color); +void setMode(char *mode); +void display_help(void); +void display_version(void); +bool errorColor(char *color); +bool errorMode(char *mode); + +/*Global Variables*/ +time_t actualtime; +int g_mode=0; +char color_line[12]="+\tc #"; + + +bool errorMode(char *mode) +{ + if (strncmp(mode,"0",1)!=0 && strncmp(mode,"1",1)!=0) + return true; + else + return false; +} + +bool errorColor(char *color) +{ + int i=0; + + if (strlen(color)!=6) + return true; + + + for (i=0;i<6;i++) + { + if ((color[i]<48 || color[i]>57) && (color[i]<65 || color[i]>70) && (color[i]<97 || color[i]>102)) + return true; + } + + return false; +} + +void print_version() +{ + puts("\033[1mwmHexaClock\033[0m"); + printf("Version: \t%s\n",VERSION); + printf("Released: \t%s\n",RELEASED); + puts("Info: \t\thttp://www.bjoernw.de/"); + exit (0); +} + +void print_help() +{ + puts("Usage: wmHexaClock [OPTIONS]"); + puts("Possible Options are:\n"); + puts(" -v or --version:\t\tGives information about version and release date"); + puts(" -h or --help:\t\t\tPrints this dialog"); + puts(" -c [COLOR] or --color [COLOR]:\tSpecifies the foreground color; for [COLOR] you use the hexadecimal notation RRGGBB (R=red, G=green, B=blue)"); + puts(" \t\t\t\tExample: \"wmHexaClock -c FF0000\" for red"); + puts(" -m [i] or --mode [i]:\t\tThere are two different display modes; for [i] you type 0 or 1 to chose between them (0 is default)"); + exit(0); +} + +void setColor(char *color) +{ + if (!errorColor(color)) + xpm_numbers[3]=strncat(color_line,color,6); //Edit the Color-Line in xpm_numbers (-> pixmaps.h) + else + { + fprintf (stderr,"The Color Code is nor correct! Example: \"-c 00FF00\" for green!\n"); + exit (1); + } +} + +void setMode(char *mode) +{ + if (!errorMode(mode)) + g_mode=((int)*(mode))-48; + else + { + fprintf (stderr,"Please choose between mode 0 and 1. Example: \"-mode 0\"!\n"); + exit (1); + } +} + +int main(int argc, char *argv[]) +{ + XEvent event; + actualtime=time(0); + + static struct option long_options[] = + { + /* These options set a flag. */ + {"version", no_argument, 0, 'v'}, + {"help", no_argument, 0, 'h'}, + {"color", required_argument, 0, 'c'}, + {"mode", required_argument, 0, 'm'}, + {0, 0, 0, 0} + }; + + + while (1) + { + int c; + int option_index = 0; + + c = getopt_long (argc, argv, "vhc:m:", long_options, &option_index); + + /* Detect the end of the options. */ + if (c == -1) + break; + + switch (c) + { + case 'v': + print_version(); + break; + case 'h': + print_help(); + break; + case 'c': + setColor(optarg); + break; + case 'm': + setMode(optarg); + break; + case '?': + puts("Type wmHexaClock -h for information"); + exit(0); + break; + default: + abort(); + } + } + + openXwindow(argc, argv, xpm_numbers, xpm_master, xpm_mask_bits, xpm_mask_width, xpm_mask_height); + + + /* Loop Forever */ + while (1) + { + if (actualtime!=time(0)) + beat(); + /* Process any pending X events. */ + while (XPending(display)) + { + XNextEvent(display, &event); + if (event.type==Expose) + RedrawWindow(); + } + usleep(10000); + } + + /* we should never get here */ + return (0); +} + + +void beat() +{ + struct tm *time_struct; + actualtime=time(0); + time_struct=localtime(&actualtime); + + cleanXPMArea(); + + display_time(time_struct->tm_hour,HOUR); + display_time(time_struct->tm_min,MINUTE); + display_time(time_struct->tm_sec,SECOND); + copyXPMArea(177,0,8,12,27,3); /*Display the two dots*/ + + display_lines(time_struct->tm_sec); + + display_date(time_struct->tm_wday,time_struct->tm_mday,time_struct->tm_mon,time_struct->tm_year+1900,g_mode,time_struct->tm_sec); + + RedrawWindow(); +} + +void display_time(int number,int time_unit){ + + int first_pos=number/16; + int second_pos=number%16; + + if (time_unit==HOUR) + { + copyXPMArea(first_pos*11,0,11,12,5,5); + copyXPMArea(second_pos*11,0,11,12,16,5); + } + else if (time_unit==MINUTE) + { + copyXPMArea(first_pos*11,0,11,12,35,5); + copyXPMArea(second_pos*11,0,11,12,46,5); + } + else if (time_unit==SECOND) + { + copyXPMArea(first_pos*7,12,7,8,40,20); + copyXPMArea(second_pos*7,12,7,8,48,20); + } + + return; +} + + +void display_lines(time_t seconds) +{ + int i; + + for (i=0;i<(seconds/8);i++) + copyXPMArea(0,29,8,4,i*8+4,32); + + return; +} + +void display_date(int day_of_week, int day_of_month, int month, int year,int mode,time_t seconds) +{ + int first_pos_day=day_of_month/16; + int second_pos_day=day_of_month%16; + int first_pos_month=(month+1)/16; + int second_pos_month=(month+1)%16; + int first_pos_year=year/256; + int second_pos_year=(year-first_pos_year*256)/16; + int third_pos_year=year-first_pos_year*256-second_pos_year*16; + + static bool rec_mode; + + if (mode==1) + { + copyXPMArea((day_of_week-1)*22,20,22,9,5,39); + copyXPMArea(first_pos_day*7,12,7,9,30,39); + copyXPMArea(second_pos_day*7,12,7,9,37,39); + copyXPMArea(8,30,2,2,45,46); + copyXPMArea(first_pos_month*7,12,7,9,47,39); + copyXPMArea(second_pos_month*7,12,7,9,54,39); + copyXPMArea(first_pos_year*7,12,7,8,34,50); + copyXPMArea(second_pos_year*7,12,7,8,44,50); + copyXPMArea(third_pos_year*7,12,7,8,53,50); + } + else + { + if (seconds%3==0) + rec_mode=!rec_mode; + } + + if (rec_mode) + copyXPMArea((day_of_week-1)*31,32,31,12,16,39); + else + { + copyXPMArea(first_pos_day*11,0,11,12,3,36); + copyXPMArea(second_pos_day*11,0,11,12,14,36); + copyXPMArea(180,9,4,3,26,46); + copyXPMArea(first_pos_month*11,0,11,12,32,36); + copyXPMArea(second_pos_month*11,0,11,12,43,36); + copyXPMArea(180,9,4,3,55,46); + copyXPMArea(first_pos_year*7,12,7,8,18,51); + copyXPMArea(second_pos_year*7,12,7,8,28,51); + copyXPMArea(third_pos_year*7,12,7,8,37,51); + } + +} diff --git a/wmhexaclock/src/pixmaps.h b/wmhexaclock/src/pixmaps.h new file mode 100644 index 0000000..2f1294c --- /dev/null +++ b/wmhexaclock/src/pixmaps.h @@ -0,0 +1,178 @@ +#define xpm_mask_width 64 +#define xpm_mask_height 64 + +static char * xpm_master[] = { +"64 64 2 1", +" c None", +". c #000000", +" ", +" ", +" ", +" ", +" ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" ", +" ", +" ", +" ", +" "}; + +static char xpm_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}; + +static char *xpm_numbers[] = { +"217 64 3 1", +" c None", +". c #000000", +"+ c #FF0000", +"..........................................................................................................................+++.......................++++.................++++++..........................................", +"....+++.........++.......+++++......+++++.........++.....++++++........+++.....+++++++......+++........+++.................++.........................++................++...............................................", +"...++.++.......+++......++..+++....++..+++.......+++.....++...........+........++...++.....++.++......++.++................++.........................++................++...............................................", +"...+...+......+.++......++...++.........++.......+++.....++..........++.............++....++...++....++...++.....+++++.....++.+++.......++++.+....+++.++.....+++++....++++++++.......++..................................", +"..++...++.......++...........++.........++......+.++.....++..........+.............++.....++...++....++...++....++...++....+++..++.....++..+++...++..+++....++...++.....++..........++++.................................", +"..++...++.......++...........++........++......++.++.....+++++......++.++..........++......++.++.....++...++.........++....++....++...++....++..++....++...++.....++....++...........++..................................", +"..++...++.......++..........++.......+++.......+..++.....++..++.....+++.++.........+........+++.......++.+++.....++++++....++....++...++.....+..++....++...++.....++....++...............................................", +"..++...++.......++.........++..........++.....++..++..........++....++...++.......++.......++.++.......++.++....++...++....++....++...++........++....++...+++++++++....++...............................................", +"..++...++.......++........++............++....+++++++.........++....++...++.......++......++...++.........+....++....++....++....++...++........++....++...++...........++...............................................", +"...+...+........++.......++.............++........++..........++....++...++.......+.......++...++........++....++....++....++....++...++.....+..++....++...++...........++...........++..................................", +"...++.++........++......++...++....++...++........++.....++..++......++.++.......++........++.++........++.....+++..+++....+++..++.....++...++...++..+++....++....++....++..........++++.................................", +"....+++.......++++++....+++++++.....+++++........++++.....++++........+++........++.........+++.......+++.......++++.+++..+++.+++.......+++++.....+++.+++....+++++....+++++++........++..................................", +"..+++....++.....+++...+++.......++..+++++...++++..+++++...++++...+++..........++...............++..........++++..........................................................................................................", +".+++++..+++....+++++.+++++.....+++..++.....++.....+++++...+.++..++.++..++++...++.....+++++.....++..+++++..+++.+..........................................................................................................", +".++.++...++....++.++....+++...++++..++.....++........++..++..++.++.++..+++++..++.....++.++.....++..++..+..+++............................................................................................................", +".+...+...++.......++.....++..++.++..+++++..+++++.....+...++++++.++.++.....++..+++++..+...+.++++++..++..+.+++++...........................................................................................................", +".+...+...++......++...++++...+..++.....++..++.++....++....++++..+++++.....++..++.++..+.....++..++..+++++..++.............................................................................................................", +".++.++...++.....++.......++..++++++....++..++.++....++...++..++....++..+++++..+...+..+.....+....+..++.....++.............................................................................................................", +".+++++...++....++.......+++.....++..+++++..++.++...++....++..++....++..++..+..++.++..++.++.++..++..++.....++.............................................................................................................", +"..+++...+++++..+++++.+++++.....++++.+++++...++++...++.....++++..++++...+++++..+++++..+++++.++++++..+++++.+++++...........................................................................................................", +"...............................................................++........++................++............++..............................................................................................................", +".......................+........................................+..+......+................+.+...........++...................+..........................................................................................", +".......................+........................................+..+......+...............++.....................+............+........+.................................................................................", +"++++++..+++++..+++++..+++++..++..++..+++++..++...++.+++++..++++++.+++++...+++++..++..+...+++++...+++++..+++....+++++..++++...+++++...+++++.++..++..+++++.................................................................", +"++.+.+..+...++..+..+...+......+...+..+...++..+.+.+..+...+..+...++..+......++..+...+..+....+.......+.......+....++........++...+......++.....+...+...+..+.................................................................", +"+..+.+..+....+..+..+...+......+...+..+++++...+++++..+++++..+....+..+......+...+...+..+....+.......+.......+......++...+++++...+........++...+...+...+..+.................................................................", +"+..+.+..+...++..+..+...+......+...+..+.......++.++..+......+...++..+......+...+...+..+....+.......+.......+....+..++..+...+...+......+..++..+...+...+..+.................................................................", +"+..+.+..+++++..+++.++..+++++..++++++.+++++...++.++..+++++..+++++++.+++++..++..++..+++++..+++++..+++++...+++++..+++++..++++++..++++...+++++..++++++.+++.++................................................................", +".++++++..................................................................................................................................................................................................................", +".++++++..................................................................................................................................................................................................................", +".++++++.++...............................................................................................................................................................................................................", +".++++++.++...............................................................................................................................................................................................................", +".+........+.......................+++++++++...................+++........+++.............+++...+++++++++.++.......................+++++++........++..............+++++........................+++++......................", +"+++......+++......................+++++++++...................++....++....+...............++...+++++++++.++.......................+++++++........++.............+++.+++......................+++..++.....................", +"+++.....++++......................+..++...+....................++...++...++...............++...+..++...+.++.......................++....+.......................++...++....++.....+..........++...++.....................", +"++++....+.++....+++....++.++.........++.....++....++...+++.....++..++++..++....+++.....+++++......++.....++.+++...++...++.........++.......++.+..++.............++........++++...++..........++......+++..+++..++.+++....", +"++.+...++.++...++.++..++++++++.......++....+++...+++..++.++....++..+..+..++...++.++...++..++......++.....++++.+..+++..+++.........++...+..++++++.++.............+++......++..++.+++++........+++......++..+++..++++.++...", +"++.++..++.++..++...++..++...++.......++.....++....++.++...++...++..+..+..++..++...++.++...++......++.....+++..++..++...++.........++++++...++....++..............++++....++..++..++...........++++....++...++...++..++...", +"++.++.++..++.++.....++.++...++.......++.....++....++.+++++++...++.++..++.++..+++++++.++...++......++.....++...++..++...++.........++++++...++....++................++++.....+++..++.............++++..++...++...++..++...", +"++..+.++..++.++.....++.++...++.......++.....++....++.+++++++....+.++..++.+...+++++++.++...++......++.....++...++..++...++.........++...+...++....++..................++...+++++..++...............++..++...++...++..++...", +"++..+++...++.++.....++.++...++.......++.....++....++.++.........+++...++++...++......++...++......++.....++...++..++...++.........++.......++....++.............+.....+..++..++..++..........+.....+..++...++...++..++...", +"++...+....++..++...++..++...++.......++.....++....++.++...++....+++...+++....++......++...++......++.....++...++..++...++.........++.......++....++.............+....++.++...++..++.+........+....++..++...++...++..++...", +"+++..+...+++...++.++...++...++......++++....++++++++..++.++.....+++...++......++..+...+++++++....++++....++...++...++.+++.........++......++++...++.............++..+++.+++.+++..++.+........++..+++..+++.++++..++..++...", +"+++......+++....+++...+++...+++.....++++.....+++.++++..+++.......+.....+.......+++.....++.+++....++++...+++...+++...+++.++........+++.....++++...++..............+++++...++++.+...++..........+++++....++++.++.+++..+++..", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +".........................................................................................................................................................................................................................", +"........................................................................................................................................................................................................................."}; diff --git a/wmhexaclock/src/wmgeneral.c b/wmhexaclock/src/wmgeneral.c new file mode 100644 index 0000000..cbd41a0 --- /dev/null +++ b/wmhexaclock/src/wmgeneral.c @@ -0,0 +1,180 @@ +#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 "wmgeneral.h" + +/* X11 Variables */ +int screen; +int x_fd; +int d_depth; +XSizeHints mysizehints; +XWMHints mywmhints; +Pixel back_pix, fore_pix; +char *Geometry = ""; +Window iconwin, win; +Pixmap pixmask; + + +/* Function Prototypes */ +static void GetXPM(XpmIcon *, char **); +static Pixel GetColor(char *); +void RedrawWindow(void); + + +static void GetXPM(XpmIcon *wmgen, char *pixmap_bytes[]) +{ + XWindowAttributes attributes; + int err; + + /* For the colormap */ + XGetWindowAttributes(display, Root, &attributes); + + wmgen->attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions); + + err = XpmCreatePixmapFromData(display, Root, pixmap_bytes, &(wmgen->pixmap), + &(wmgen->mask), &(wmgen->attributes)); + + if (err != XpmSuccess) { + fprintf(stderr, "Not enough free colorcells.\n"); + exit(1); + } +} + +static Pixel GetColor(char *name) +{ + XColor color; + XWindowAttributes attributes; + + XGetWindowAttributes(display, Root, &attributes); + + color.pixel = 0; + if (!XParseColor(display, attributes.colormap, name, &color)) { + fprintf(stderr, "wm.app: can't parse %s.\n", name); + } else if (!XAllocColor(display, attributes.colormap, &color)) { + fprintf(stderr, "wm.app: can't allocate %s.\n", name); + } + return color.pixel; +} + +static int flush_expose(Window w) +{ + XEvent dummy; + int i=0; + + while (XCheckTypedWindowEvent(display, w, Expose, &dummy)) + i++; + return i; +} + +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 copyXPMArea(int x, int y, int sx, int sy, int dx, int dy) +{ + XCopyArea(display, wmnumbers.pixmap, wmgen.pixmap, NormalGC, x, y, sx, sy, dx, dy); +} + +void cleanXPMArea() +{ + XCopyArea(display, wmempty.pixmap, wmgen.pixmap, NormalGC, 0,0,64,64,0,0); +} + +void openXwindow(int argc, char *argv[], char *pixmap_bytes_numbers[], char *pixmap_bytes_background[], char pixmask_bits[], int pixmask_width, int pixmask_height) +{ + unsigned int borderwidth = 1; + XClassHint classHint; + char *display_name = NULL; + char *wname = argv[0]; + XTextProperty name; + XGCValues gcv; + unsigned long gcm; + int dummy = 0; + + if (!(display = XOpenDisplay(display_name))) { + fprintf(stderr, "%s: can't open display %s\n", + wname, XDisplayName(display_name)); + exit(1); + } + screen = DefaultScreen(display); + Root = RootWindow(display, screen); + d_depth = DefaultDepth(display, screen); + x_fd = XConnectionNumber(display); + + /* Convert XPM to XImage */ + GetXPM(&wmgen, pixmap_bytes_background); + GetXPM(&wmempty, pixmap_bytes_background); + GetXPM(&wmnumbers,pixmap_bytes_numbers); + + /* Create a window to hold the stuff */ + mysizehints.flags = USSize | USPosition; + mysizehints.x = 0; + mysizehints.y = 0; + + back_pix = GetColor("white"); + fore_pix = GetColor("black"); + + 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); + + XSelectInput(display, win, ButtonPressMask | ExposureMask | ButtonReleaseMask | PointerMotionMask | StructureNotifyMask); + XSelectInput(display, iconwin, ButtonPressMask | ExposureMask | ButtonReleaseMask | PointerMotionMask | StructureNotifyMask); + + if (XStringListToTextProperty(&wname, 1, &name) == 0) { + fprintf(stderr, "%s: can't allocate window name\n", wname); + exit(1); + } + + XSetWMName(display, win, &name); + + /* Create 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); + + /* ONLYSHAPE ON */ + 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); + + /* ONLYSHAPE OFF */ + 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); +} + diff --git a/wmhexaclock/src/wmgeneral.h b/wmhexaclock/src/wmgeneral.h new file mode 100644 index 0000000..48ccacd --- /dev/null +++ b/wmhexaclock/src/wmgeneral.h @@ -0,0 +1,25 @@ +#ifndef WMGENERAL_H_INCLUDED +#define WMGENERAL_H_INCLUDED + + +typedef struct { + Pixmap pixmap; + Pixmap mask; + XpmAttributes attributes; +} XpmIcon; + +/* Global variable */ +Display *display; +Window Root; +GC NormalGC; +XpmIcon wmgen; +XpmIcon wmnumbers; +XpmIcon wmempty; + +/* Function Prototypes */ +void openXwindow(int argc, char *argv[], char **, char **, char *, int, int); +void RedrawWindow(void); +void copyXPMArea(int, int, int, int, int, int); +void cleanXPMArea(); + +#endif diff --git a/wmhexaclock/wmHexaClock b/wmhexaclock/wmHexaClock new file mode 100755 index 0000000000000000000000000000000000000000..d026cdaa4d4078b3fd8a819bcd35367eb42c88f9 GIT binary patch literal 23868 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 Ga{mJ}Hp^82 literal 0 HcmV?d00001 -- 2.7.4 -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.