home *** CD-ROM | disk | FTP | other *** search
- /********************************************************** CLKKYB.C
- * NAME: CLKKYB
- *
- * FUNCTION: Inputs character from keyboard, and deals with
- * options selected.
- *
- * EXAMPLE: CLKKYB();
- *
- * INPUTS: none
- *
- * OUTPUT: ch = character returned from keyboard. (=0 if none)
- *
- **************************************************************
- * 11/22/86 -RBM- original implementation
- **************************************************************/
- #define XTRNALGLOBALS 1 /* globals externally defined */
- #include "E:CLKGBL.H" /* setup global storage */
-
- /**************************************************************
- * BEGIN ROUTINE
- **************************************************************/
-
- int CLKKYB()
- {
- int ch; /* character input from keyboard */
- ch = kbhit();
- if (ch != 0) ch=options(); /* see if character is an option */
- return(ch);
- } /***** end of routine ******/
-
-
- /****************************************************************
- * OPTIONS - checks to see if character is one of many that can
- * alter the setup of the clock display
- *****************************************************************/
- int options()
-
- {
- int chr; /* character actually input */
- int pozzible; /* possibly useful character */
- int repaint; /* requests re-painting of clock*/
-
- chr = getch(); /* get character from kybd */
-
- pozzible = 1; /* show evaluating character */
- repaint = 0;
- while (pozzible != 0)
- {
- if ((chr == (int)'h') ||
- (chr == (int)'H') ||
- (chr == (int)'?') )
- {/*-------------- help screen ------------------*/
- repaint = 1; /* show have to re-paint screen */
- sreg.ax=0x0003; /* clear screen */
- sreg.bx = sreg.cx = sreg.dx = 0;
- csysint(VIDEO, &sreg, &rreg);
-
- printf ("======= CLOCK HELP SCREEN ========\n");
- printf ("\n");
- printf ("H or ? displays this screen\n");
- printf ("0 - 9 sets size (1=10%%, 2=20%%, 0=100%%)\n");
- printf ("C = center clock in display\n");
- printf ("R = move clock to right side\n");
- printf ("L = move clock to left side\n");
- printf ("T = move clock to top half\n");
- printf ("B = move clock to bottom half\n");
- printf ("D = toggle digital clock on/off\n");
- printf ("<spacebar> to continue with no changes\n");
- printf ("\n");
- printf ("----- current values ------\n");
- printf ("row=%3d, col=%3d, size=%3d%%, digclock=%1d\n",
- cntrow, cntcol, clocksize, digclock);
-
- chr = getch(); /* get next character from kybd */
-
- }
-
- else if ((chr >= (int)'0') && (chr <= (int)'9'))
- {/*----------- adjust clock size --------------------*/
- if (chr == (int)'0') clocksize = 100;
- else clocksize = (chr-(int)'0')*10;
- chr = (int)'H';
- }
-
- else if ((chr == (int)'c') ||
- (chr == (int)'C') )
- {/*----------- center clock in display --------------*/
- cntcol = CENTC;
- cntrow = CENTR;
- chr = (int)'H';
- }
-
- else if ((chr == (int)'r') ||
- (chr == (int)'R') )
- {/*----------- move clock to right hand side ---------*/
- cntcol = CENTC + 80;
- chr = (int)'H';
- }
-
- else if ((chr == (int)'l') ||
- (chr == (int)'L') )
- {/*----------- move clock to left hand side ----------*/
- cntcol = CENTC - 80;
- chr = (int)'H';
- }
-
- else if ((chr == (int)'t') ||
- (chr == (int)'T') )
- {/*----------- move clock to top half ----------------*/
- cntrow = CENTR - 50;
- chr = (int)'H';
- }
-
- else if ((chr == (int)'b') ||
- (chr == (int)'B') )
- {/*----------- move clock to bottom half -------------*/
- cntrow = CENTR + 50;
- chr = (int)'H';
- }
-
- else if ((chr == (int)'d') ||
- (chr == (int)'D') )
- {/*----------- toggle digital clock display ----*/
- if (digclock == 0) digclock=1;
- else digclock=0;
- chr = 0;
- pozzible = 0;
- }
- else if (chr == (int)' ')
- {/*------------ spacebar out -------------------*/
- chr = 0;
- pozzible = 0;
- }
- else
- {/*------- input key not supported -------------*/
- chr = chr; /* pass character thru */
- pozzible = 0;
- };
- };
-
- if (repaint != 0)
- { /*------- re-paint clock -----------------------*/
- clksiz(); /* determine size, colors, etc */
- clkizn(); /* initialization */
- clkclr(); /* clear screen */
- clkfac(); /* paint clock's face */
- clktim(); /* get time */
- };
-
- return(chr);
- } /*------------ end subroutine --------------------------------*/