home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
windows
/
winccdem.zip
/
DEMO1.C
next >
Wrap
Text File
|
1987-08-15
|
8KB
|
204 lines
/*
************************************************************************
* FILE NAME...... DEMO1.C *
* DESCRIPTION.... WINCC demo *
* *
* Copyright (c) 1987 by Doug J. Lieu *
* All rights reserved. *
************************************************************************
This program is a demo of using WINCC library and itself is also
a very convient utility to browse files. It tries to demonstrate
the main part of the library.
*/
#include "stdio.h"
#include "win_hd.h"
#define MAXW 50 /* maximum # of window can be opened */
void
main()
{
int sel, w, ret, win;
char fname[22];
winitial(); /* initialize the window environment */
cls(); /* clear screen */
while (1) {
sel = menu0(); /* select operation from main menu */
switch (sel) {
case 0: /* exit */
wcloseall();
wset_ctype(CSR_NORMAL);
exit(0);
case 1: /* open a window */
if (menu1(fname) == OK) { /* if file is accessible */
w = wfopen(8, 16, 5, 75, NORMAL, BDR_SLN, NORMAL, fname, fname);
while (wwalk() != F2) /* walk the window */
;
}
break;
case 2: /* close a window */
if ((win = menu2()) != ERROR)
wclose(win);
while (1) { /* back to walk window */
ret = wwalk();
if (ret == ERROR || ret == F2)
break;
}
break;
case 3: /* activate a window */
if ((win = menu3()) != ERROR) {
if (wactive(win) != ERROR)
while (wwalk() != F2)
;
}
break;
case 4: /* change attribute */
if (menu4() == ERROR)
break;
while (1) { /* back to walk window */
ret = wwalk();
if (ret == ERROR || ret == F2)
break;
}
break;
case 5: /* no operation */
while (1) { /* back to walk window */
ret = wwalk();
if (ret == ERROR || ret == F2)
break;
}
break;
}
}
}
/* main menu for several window operations */
menu0()
{
int w, attr, sel;
attr = CYN_BLK; /* Cyan background and black foreground */
w = wfopen(3, 20, 24, 55, attr, BDR_DBSG, attr, " Demo Main Menu ", NULL); /* open the main menu window */
wmode(CTRL_OFF); /* set control mode off to remove the */
/* window number on the left up corner */
wputs(attr, "\n 1. Open a window\n\n");
wputs(attr, " 2. Close a window\n\n");
wputs(attr, " 3. Activate a window\n\n");
wputs(attr, " 4. Change attribute\n\n");
wputs(attr, " 5. NO OP\n\n");
wputs(attr, " 0. Exit");
wset_cursp(15, 0); /* set cursor position */
wputs(CYN_RED, " Press F2 --> Main menu");
while (1) { /* get a valid selection */
wset_cursp(14, 0);
wputs(attr, " Please select (0-5): ");
sel = wgetch();
if (sel >= '0' && sel <= '5') {
wclose(w);
return(sel - '0');
}
}
}
/* menu to get a valid file name */
menu1(fname)
char *fname;
{
int ret;
ret = getfn(10, 15, " Please enter filename: ", fname, 4); /* get a filename */
if (ret == OK || ret == NO_OP)
return(ret);
else { /* no such file exists */
message(NULL, " No file matched\007", PAUSE);
return(ERROR);
}
}
/* menu to get a window number to be closed */
menu2()
{
int w;
char *ans;
while (1) {
ans = ask(10, 17, " Please enter window # to be closed: ", 2); /* get the window number */
if (ans[0] != 0) { /* if not a null string */
w = atoi(ans);
if (wcheck(w) == ERROR) { /* check window number*/
message(NULL, " Invalid window number, check window stack\007", PAUSE);
continue;
} else
return(w); /* return window number */
} else
return(ERROR);
}
}
/* menu to get a window number to be activated */
menu3()
{
int w;
char *ans;
while (1) {
ans = ask(12, 15, " Please enter window # to be activated: ", 2); /* get the window number */
if (ans[0] != 0) { /* if not a null string */
w = atoi(ans);
if (wcheck(w) == ERROR) { /* check window number*/
message(NULL, " Invalid window number, check window stack\007", PAUSE);
continue;
} else
return(w); /* return window number */
} else
return(ERROR);
}
}
/* three seperated window to get the new attribute and new border type */
menu4()
{
int attr, bdr, bdr_attr;
char *ans;
ans = ask(7, 20, " Please window attribute: ", 2);
if (ans[0] != 0)
attr = atoi(ans);
else
attr = -1;
ans = ask(11, 20, " Please border type: ", 2);
if (ans[0] != 0)
bdr = atoi(ans);
else
attr = -1;
ans = ask(15, 20, " Please border attribute: ", 2);
if (ans[0] != 0)
bdr_attr = atoi(ans);
else
bdr_attr = -1;
if (wchg_attr(attr, bdr, bdr_attr) == ERROR) /* change window's attribute and border type */
return(ERROR);
else
return(OK);
}