home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 2
/
crawlyvol2.bin
/
program
/
c
/
xaes_new
/
test.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-12-06
|
15KB
|
505 lines
/*
* XAES 1.00
* Test Program
*
* Copyright (c) 1994, Bitgate Software. All Rights Reserved.
* Program by Ken Hollis
*
* Shows all functions of XAES off. This program will most likely
* be larger after a few changes are made to XAES.
*
* Although it takes quite a few parameters to create an actual
* window, it is relatively bug-free. Read the docs (RTFM) for more
* information. (Or hit HELP if you're using Pure C.)
*/
#include <stddef.h>
#include <stdio.h>
#include "test.h"
#include "xaes.h"
#include "nkcc.h"
int testkind, windsize;
BOOL backgroundable, sizeable, customwin;
OBJECT *test, *test2, *test3, *test4, *icontree, *test5, *test6,
*test7, *test8, *test9, *test10;
#define infokind (NAME|MOVER|CLOSER)
#define allkind 0xFFFF
#define nokind 0x0000
#define stdkind (NAME|MOVER|CLOSER)
LOCAL int hormax, vermax, horstep, verstep;
void DoSliders(WINDOW *win)
{
WCreateObject(WC_SLIDER, win->tree, 0, hormax, horstep, SLIDER_HOR, SLRT1, SLIDE1, TRACK1, SLLT1);
WCreateObject(WC_SLIDER, win->tree, 100, 999, 5, SLIDER_HOR, HMAXINC, HMAXSLID, HMAXTRAK, HMAXDEC);
WCreateObject(WC_SLIDER, win->tree, 25, 999, 5, SLIDER_HOR, VMAXINC, VMAXSLID, VMAXTRAK, VMAXDEC);
WCreateObject(WC_SLIDER, win->tree, 5, 99, 5, SLIDER_HOR, HSTEPINC, HSTEPSLD, HSTEPTRK, HSTEPDEC);
WCreateObject(WC_SLIDER, win->tree, 5, 99, 5, SLIDER_HOR, VSTEPINC, VSTEPSLD, VSTEPTRK, VSTEPDEC);
WCreateObject(WC_SLIDER, win->tree, 0, vermax, verstep, SLIDER_VER, SLDN1, SLIDE5, TRACK5, SLUP1);
}
int Dlg1Dispatcher(WINDOW *win, int msg_buf[8])
{
UNUSED(win);
UNUSED(msg_buf);
return FALSE;
}
int Dlg2Dispatcher(WINDOW *win, int msg_buf[8])
{
switch(*msg_buf) {
case WM_COPIED:
if (win)
DoSliders(win);
break;
case WM_SLIDER:
switch(msg_buf[3]) {
case HMAXDEC:
case HMAXTRAK:
case HMAXSLID:
case HMAXINC:
if (msg_buf[4] == 0)
msg_buf[4] = 1;
if (((msg_buf[4]!=0) && (msg_buf[5]!=0)) &&
(msg_buf[4]!=msg_buf[5])) {
hormax = msg_buf[4];
WCreateObject(WC_SLIDER, win->tree, 0, hormax, horstep, SLIDER_HOR, SLRT1, SLIDE1, TRACK1, SLLT1);
WUpdateWindowDlgLevel(win, desk.g_x, desk.g_y, desk.g_w, desk.g_h, TRACK1, 1);
}
break;
case VMAXDEC:
case VMAXTRAK:
case VMAXSLID:
case VMAXINC:
if (msg_buf[4] == 0)
msg_buf[4] = 1;
if (((msg_buf[4]!=0) && (msg_buf[5]!=0)) &&
(msg_buf[4]!=msg_buf[5])) {
vermax = msg_buf[4];
WCreateObject(WC_SLIDER, win->tree, 0, vermax, verstep, SLIDER_VER, SLDN1, SLIDE5, TRACK5, SLUP1);
WUpdateWindowDlgLevel(win, desk.g_x, desk.g_y, desk.g_w, desk.g_h, TRACK5, 1);
}
break;
case HSTEPDEC:
case HSTEPTRK:
case HSTEPSLD:
case HSTEPINC:
if (msg_buf[4] == 0)
msg_buf[4] = 1;
if (((msg_buf[4]!=0) && (msg_buf[5]!=0)) &&
(msg_buf[4]!=msg_buf[5])) {
horstep = msg_buf[4];
WCreateObject(WC_SLIDER, win->tree, 0, hormax, horstep, SLIDER_HOR, SLRT1, SLIDE1, TRACK1, SLLT1);
}
break;
case VSTEPDEC:
case VSTEPTRK:
case VSTEPSLD:
case VSTEPINC:
if (msg_buf[4] == 0)
msg_buf[4] = 1;
if (((msg_buf[4]!=0) && (msg_buf[5]!=0)) &&
(msg_buf[4]!=msg_buf[5])) {
verstep = msg_buf[4];
WCreateObject(WC_SLIDER, win->tree, 0, vermax, verstep, SLIDER_VER, SLDN1, SLIDE5, TRACK5, SLUP1);
}
break;
}
}
return FALSE;
}
int Dlg4Dispatcher(WINDOW *win, int msg_buf[8])
{
UNUSED(win);
UNUSED(msg_buf);
return FALSE;
}
void CheckItems(void)
{
menu_icheck(test3, NAMESET, (testkind & NAME) ? TRUE : FALSE);
menu_icheck(test3, CLOSSET, (testkind & CLOSER) ? TRUE : FALSE);
menu_icheck(test3, FULLSET, (testkind & FULLER) ? TRUE : FALSE);
menu_icheck(test3, MOVESET, (testkind & MOVER) ? TRUE : FALSE);
menu_icheck(test3, INFOSET, (testkind & INFO) ? TRUE : FALSE);
menu_icheck(test3, SIZESET, (testkind & SIZER) ? TRUE : FALSE);
menu_icheck(test3, UPARSET, (testkind & UPARROW) ? TRUE : FALSE);
menu_icheck(test3, DNARSET, (testkind & DNARROW) ? TRUE : FALSE);
menu_icheck(test3, VSLIDSET, (testkind & VSLIDE) ? TRUE : FALSE);
menu_icheck(test3, LFARSET, (testkind & LFARROW) ? TRUE : FALSE);
menu_icheck(test3, RTARSET, (testkind & RTARROW) ? TRUE : FALSE);
menu_icheck(test3, HSLIDSET, (testkind & HSLIDE) ? TRUE : FALSE);
menu_icheck(test3, CASCSET, (testkind & CASCADE) ? TRUE : FALSE);
menu_icheck(test3, MENUSET, (testkind & MENUWORK) ? TRUE : FALSE);
menu_icheck(test3, OPTISET, (testkind & OPTIONS) ? TRUE : FALSE);
menu_icheck(test3, SIZEXAES, (sizeable) ? TRUE : FALSE);
menu_icheck(test3, BKGNXAES, (backgroundable) ? TRUE : FALSE);
menu_icheck(test3, LWINXAES, (windsize == WC_WINDOW) ? TRUE : FALSE);
menu_icheck(test3, SWINXAES, (windsize == WC_SWINDOW) ? TRUE : FALSE);
menu_icheck(test3, CUSTXAES, (customwin) ? TRUE : FALSE);
menu_ienable(test3, CASCSET, (customwin) ? TRUE : FALSE);
menu_ienable(test3, MENUSET, (customwin) ? TRUE : FALSE);
menu_ienable(test3, OPTISET, (customwin) ? TRUE : FALSE);
menu_ienable(test3, SIZEXAES, (customwin) ? TRUE : FALSE);
menu_ienable(test3, LWINXAES, (customwin) ? TRUE : FALSE);
menu_ienable(test3, SWINXAES, (customwin) ? TRUE : FALSE);
}
int EtcDispatcher(int msg_buf[8])
{
switch (*msg_buf) {
case MN_SELECTED:
menu_tnormal(test3, msg_buf[3], TRUE);
switch(msg_buf[4]) {
case ABTXAES:
WCreateObject(WC_WINDOW, W_OPEN|W_DIALOG|W_UNUNTOPPABLE|W_UNSIZABLE,
((customwin) ? W_CUSTOMWINDOW : 0), (NAME|CLOSER|MOVER|SIZER),
"Test dialog 1", " Test info", test, NULL,
-1, -1, -1, -1, 0, icontree, 1, "Dialog 1", NULL);
break;
case WIN1XAES:
WCreateObject(WC_WINDOW, W_OPEN|W_DIALOG|((backgroundable) ? W_BEVENT : 0)|((!(sizeable)) ? W_UNSIZABLE : 0),
((customwin) ? W_CUSTOMWINDOW : 0), testkind,
"Test dialog 1", " Test info", test, NULL,
-1, -1, -1, -1, 0, icontree, 1, "Dialog 1", NULL);
break;
case WIN2XAES:
{
WINDOW *win;
win = WCreateObject(WC_WINDOW, W_OPEN|W_DIALOG|((backgroundable) ? W_BEVENT : 0)|((!(sizeable)) ? W_UNSIZABLE : 0),
((customwin) ? W_CUSTOMWINDOW : 0), testkind,
"Test dialog 2", " Test info", test2, Dlg2Dispatcher,
-1, -1, -1, -1, 12, icontree, 1, "Dialog 2", NULL);
}
break;
case WIN3XAES:
WCreateObject(WC_WINDOW, W_OPEN|W_DIALOG|((backgroundable) ? W_BEVENT : 0)|((!(sizeable)) ? W_UNSIZABLE : 0),
((customwin) ? W_CUSTOMWINDOW : 0), testkind,
"Test dialog", " Test info", test5, NULL,
-1, -1, -1, -1, 0, icontree, 1, "Dialog", NULL);
break;
case WIN4XAES:
WCreateObject(WC_WINDOW, W_OPEN|W_DIALOG|((backgroundable) ? W_BEVENT : 0)|((!(sizeable)) ? W_UNSIZABLE : 0),
((customwin) ? W_CUSTOMWINDOW : 0), testkind,
"Test dialog", " Test info", test6, NULL,
-1, -1, -1, -1, 0, icontree, 1, "Dialog", NULL);
break;
case WIN5XAES:
WCreateObject(WC_WINDOW, W_OPEN|W_DIALOG|((backgroundable) ? W_BEVENT : 0)|((!(sizeable)) ? W_UNSIZABLE : 0),
((customwin) ? W_CUSTOMWINDOW : 0), testkind,
"Test dialog", " Test info", test7, NULL,
-1, -1, -1, -1, 0, icontree, 1, "Dialog", NULL);
break;
case WIN6XAES:
WCreateObject(WC_WINDOW, W_OPEN|W_DIALOG|((backgroundable) ? W_BEVENT : 0)|((!(sizeable)) ? W_UNSIZABLE : 0),
((customwin) ? W_CUSTOMWINDOW : 0), testkind,
"Test dialog", " Test info", test8, NULL,
-1, -1, -1, -1, 0, icontree, 1, "Dialog", NULL);
break;
case WIN7XAES:
WCreateObject(WC_WINDOW, W_OPEN|W_DIALOG|((backgroundable) ? W_BEVENT : 0)|((!(sizeable)) ? W_UNSIZABLE : 0),
((customwin) ? W_CUSTOMWINDOW : 0), testkind,
"Test dialog", " Test info", test9, NULL,
-1, -1, -1, -1, 0, icontree, 1, "Dialog", NULL);
break;
case WIN8XAES:
WCreateObject(WC_WINDOW, W_OPEN|W_DIALOG|((backgroundable) ? W_BEVENT : 0)|((!(sizeable)) ? W_UNSIZABLE : 0),
((customwin) ? W_CUSTOMWINDOW : 0), testkind,
"Test dialog", " Test info", test10, NULL,
-1, -1, -1, -1, 0, icontree, 1, "Dialog", NULL);
break;
case CHGSET:
WCreateObject(WC_WINDOW, W_OPEN|W_DIALOG|W_BEVENT|W_UNSIZABLE,
W_CUSTOMWINDOW, stdkind, "GUI_DEFS Settings", " Test info", test4, NULL,
-1, -1, -1, -1, 0, icontree, 1, "Settings", NULL);
break;
case QUITXAES:
WDie(0);
break;
case NAMESET:
testkind = (testkind & NAME) ? testkind & ~NAME : testkind | NAME;
break;
case CLOSSET:
testkind = (testkind & CLOSER) ? testkind & ~CLOSER : testkind | CLOSER;
break;
case FULLSET:
testkind = (testkind & FULLER) ? testkind & ~FULLER : testkind | FULLER;
break;
case MOVESET:
testkind = (testkind & MOVER) ? testkind & ~MOVER : testkind | MOVER;
break;
case INFOSET:
testkind = (testkind & INFO) ? testkind & ~INFO : testkind | INFO;
break;
case SIZESET:
testkind = (testkind & SIZER) ? testkind & ~SIZER : testkind | SIZER;
break;
case UPARSET:
testkind = (testkind & UPARROW) ? testkind & ~UPARROW : testkind | UPARROW;
break;
case DNARSET:
testkind = (testkind & DNARROW) ? testkind & ~DNARROW : testkind | DNARROW;
break;
case VSLIDSET:
testkind = (testkind & VSLIDE) ? testkind & ~VSLIDE : testkind | VSLIDE;
break;
case LFARSET:
testkind = (testkind & LFARROW) ? testkind & ~LFARROW : testkind | LFARROW;
break;
case RTARSET:
testkind = (testkind & RTARROW) ? testkind & ~RTARROW : testkind | RTARROW;
break;
case HSLIDSET:
testkind = (testkind & HSLIDE) ? testkind & ~HSLIDE : testkind | HSLIDE;
break;
case CASCSET:
testkind = (testkind & CASCADE) ? testkind & ~CASCADE : testkind | CASCADE;
break;
case MENUSET:
testkind = (testkind & MENUWORK) ? testkind & ~MENUWORK : testkind | MENUWORK;
break;
case OPTISET:
testkind = (testkind & OPTIONS) ? testkind & ~OPTIONS : testkind | OPTIONS;
break;
case SIZEXAES:
sizeable = (sizeable) ? FALSE : TRUE;
break;
case BKGNXAES:
backgroundable = (backgroundable) ? FALSE : TRUE;
break;
case LWINXAES:
windsize = WC_WINDOW;
break;
case SWINXAES:
windsize = WC_SWINDOW;
break;
case EALLXAES:
testkind = allkind;
break;
case DALLXAES:
testkind = nokind;
break;
case STANXAES:
testkind = stdkind;
break;
case CUSTXAES:
customwin = (customwin) ? FALSE : TRUE;
break;
}
CheckItems();
break;
case WM_CLOSEALL:
if (msg_buf[3] == K_ASK)
if ((form_alert(1, "[3][Close all windows| |Are you sure?][ Okay | Cancel ]")) == 1)
return FALSE;
else
return TRUE;
if (msg_buf[3] == K_NO_STOP)
return TRUE;
break;
case WM_PROGEND:
/* WDie(0); */
break;
}
return FALSE;
}
int KeyDispatcher(int key)
{
if (key & NKF_CTRL)
switch (key & 0xff) {
case 'I':
case 'i':
WCreateObject(WC_WINDOW, W_OPEN|W_DIALOG|W_UNUNTOPPABLE|W_UNSIZABLE,
((customwin) ? W_CUSTOMWINDOW : 0), (NAME|CLOSER|MOVER|SIZER),
"Test dialog 1", " Test info", test, NULL,
-1, -1, -1, -1, 0, icontree, 1, "Dialog 1", NULL);
break;
case 'Q':
case 'q':
if (_app)
if ((form_alert(1, "[3][Doing this will quit|the demo.][ Okay | Cancel ]")) == 1)
WDie(0);
else
return TRUE;
return TRUE;
case 'U':
case 'u':
WCloseWindow(NULL, WC_OBJECTABLE, K_ASK);
break;
case 'W':
case 'w':
WTopWindow(NULL);
break;
case 'A':
case 'a':
testkind = allkind;
CheckItems();
break;
case 'D':
case 'd':
testkind = nokind;
CheckItems();
break;
}
if (key & NKF_FUNC)
switch (key & 0xff) {
case NK_F1:
WCreateObject(WC_WINDOW, W_OPEN|W_DIALOG|((backgroundable) ? W_BEVENT : 0)|((!(sizeable)) ? W_UNSIZABLE : 0),
((customwin) ? W_CUSTOMWINDOW : 0), testkind,
"Test dialog 1", " Test info", test, NULL,
-1, -1, -1, -1, 0, icontree, 1, "Dialog 1", NULL);
break;
case NK_F2:
{
WINDOW *win;
win = WCreateObject(WC_WINDOW, W_OPEN|W_DIALOG|((backgroundable) ? W_BEVENT : 0)|((!(sizeable)) ? W_UNSIZABLE : 0),
((customwin) ? W_CUSTOMWINDOW : 0), testkind,
"Test dialog 2", " Test info", test2, Dlg2Dispatcher,
-1, -1, -1, -1, 12, icontree, 1, "Dialog 2", NULL);
}
break;
}
return FALSE;
}
void UnfixObjects()
{
unfix_object(test3);
unfix_object(test);
unfix_object(test2);
unfix_object(test4);
}
int main(void)
{
OBJECT *TT;
if (rsrc_load(".\\TEST.RSC")) {
WBoot();
graf_mouse(ARROW, 0L);
rsrc_gaddr(R_TREE, 0, &test3);
rsrc_gaddr(R_TREE, 1, &test);
rsrc_gaddr(R_TREE, 2, &test2);
rsrc_gaddr(R_TREE, 3, &test4);
rsrc_gaddr(R_TREE, 4, &icontree);
rsrc_gaddr(R_TREE, 5, &test5);
rsrc_gaddr(R_TREE, 6, &test6);
rsrc_gaddr(R_TREE, 7, &test7);
rsrc_gaddr(R_TREE, 8, &test8);
rsrc_gaddr(R_TREE, 9, &test9);
rsrc_gaddr(R_TREE, 10, &test10);
testkind = NAME|MOVER|SIZER;
backgroundable = TRUE;
sizeable = FALSE;
windsize = WC_WINDOW;
customwin = TRUE;
fix_object(test3, FALSE, FALSE);
test2[SLIDE1].ob_x++; test2[SLIDE1].ob_y++;
test2[SLIDE5].ob_x++; test2[SLIDE5].ob_y++;
test2[HMAXSLID].ob_x++; test2[HMAXSLID].ob_y++;
test2[VMAXSLID].ob_x++; test2[VMAXSLID].ob_y++;
test2[HSTEPSLD].ob_x++; test2[HSTEPSLD].ob_y++;
test2[VSTEPSLD].ob_x++; test2[VSTEPSLD].ob_y++;
WInit(0, EtcDispatcher, KeyDispatcher, " XAES Demo 0.01",
"XAES", FALSE);
WSetCallback(XC_INITIALIZE, CheckItems);
WSetCallback(XC_DEINITIALIZE, UnfixObjects);
menu_bar(test3, TRUE);
XCallInitializeCallback;
XCallStartupCallback;
hormax = 100;
vermax = 25;
horstep = 5;
verstep = 5;
WDoDial();
menu_bar(test3, FALSE);
XCallDeinitializeCallback;
WTerm(FALSE);
} else
form_alert(1, "[3][Sorry, could not locate|the resource file!][ Okay ]");
return FALSE;
}