home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-385-Vol-1of3.iso
/
i
/
iv26_w_3.zip
/
EXAMPLES
/
DCLOCK
/
DCLOCK.C
< prev
next >
Wrap
C/C++ Source or Header
|
1992-03-27
|
4KB
|
131 lines
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* dclock - digital clock
*/
#include "dclock.h"
#include "dface.h"
#include <stdio.h>
#include <stdlib.h>
DFace *TheClock;
World *world;
static void DoArgs(int argc, char *argv[]);
int IVMain (int argc, char** argv) {
world = new World("dclock", argc, argv);
DoArgs(argc, argv);
InitData();
switch (CreateMode) {
case SWEPT:
TheClock = new DFace(
ShowDate, ShowBorder, ShowTime, TimeMode
);
world->InsertApplication(TheClock);
break;
case PLACED:
TheClock = new DFace(
ShowDate, ShowBorder, ShowTime, TimeMode, Width, Height
);
world->InsertApplication(TheClock);
break;
case DEFINED:
TheClock = new DFace(
ShowDate, ShowBorder, ShowTime, TimeMode, Width, Height
);
world->InsertApplication(TheClock, XPos, YPos);
break;
}
TheClock->Run();
return 0;
}
static void DoArgs( int argc, char * argv[] ) {
int i, j, p1, p2;
char* curarg;
for (i = 1; i < argc; i++) {
curarg = argv[i];
if (sscanf(curarg, "size=%d,%d", &p1, &p2) == 2) {
if (CreateMode != DEFINED) {
CreateMode = PLACED; // size specified
}
Width = p1;
Height = p2;
} else if (sscanf(curarg, "pos=%d,%d", &p1, &p2) == 2) {
CreateMode = DEFINED; // position specified
XPos = p1;
YPos = p2;
} else if (sscanf(curarg, "-s%d", &p1) == 1) {
SlantPC = p1;
} else if (sscanf(curarg, "-t%d", &p1) == 1) {
ThickPC = p1;
} else if (sscanf(curarg, "-f%d", &p1) == 1) {
FadeRate = p1;
} else if (curarg[0] == '-') {
for (j = 1; curarg[j] != '\0'; j++) {
switch (curarg[j]) {
case 'c':
TimeMode = CIVIL; // the default
break;
case 'm':
TimeMode = MIL; // 24 hour
break;
case 'j':
JohnsFlag = true; // tail on 9
break;
case 'd':
ShowDate = false;
break;
case 's':
SlantPC = 0;
break;
case 'f':
FadeRate = 0;
break;
case 'b': //show date/time border
ShowBorder = true;
break;
case 'T':
ShowTime = false; // date only
break;
default:
fprintf(stderr,
"%s: unrecognized flag '%c'\n", argv[0], curarg[j]
);
break;
}
}
} else {
fprintf(stderr, "%s: unexpected argument '%s'\n", argv[0], curarg);
fprintf(stderr,
"usage: %s [-cmjidbT] [-s#] [-t#] [-f#] [pos=#,#] [size=#,#]\n",
argv[0]
);
exit(1);
}
}
}