home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_disks
/
500-599
/
ff563.lza
/
Kpri
/
src.lzh
/
main.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-11-01
|
5KB
|
186 lines
/*
* main.c
*/
#include "defs.h"
Prototype struct Window *win;
extern struct Library *SysBase;
struct Window *win = NULL;
/*********************** main **********************************/
const UBYTE version[] = VER; /* be nice to version questions */
const UBYTE myname[] = "Kpri v2.0 © Koessi 91";
const UBYTE usagestr[] = "\nUSAGE:"
"\n Kpri [textfile]\n";
const UBYTE os20str[] = "RAW:19/11/300/11/ Kpri: You need OS 2.0, sorry...";
int
main(int argc, UBYTE **argv)
{
if (SysBase->lib_Version < 36)
{
FH *out;
if (out = (FH *)Open(os20str, MODE_NEWFILE))
{
Delay(150);
Close(out);
}
return(1);
}
if (argc > 1)
{
UBYTE test = *argv[1];
if ((argc > 2) ||
(test < 65) || (test > 122) ||
((test > 90) && (test < 97)))
{
textreq.es_Title = myname;
textreq.es_TextFormat = usagestr;
textreq.es_GadgetFormat = resume;
EasyRequestArgs(win, &textreq, NULL, NULL);
return(1);
}
}
struct Screen *scr;
if (scr = (struct Screen *)LockPubScreen(NULL)) /* get workbenchscreen */
{
SHORT LeftEdge = (SHORT)((scr->Width >> 1) - WIN_WIDTH / 2);
SHORT TopEdge = (SHORT)((scr->Height >> 1) - WIN_HEIGHT / 2);
struct Gadget *glist;
if (glist = (struct Gadget *)InitGads(scr)) /* setup gadgetlist */
{
win = (struct Window *)OpenWindowTags(
NULL,
WA_Flags, WFLG_DRAGBAR | WFLG_DEPTHGADGET | WFLG_SMART_REFRESH |
WFLG_ACTIVATE | WFLG_CLOSEGADGET,
WA_IDCMP, IDCMP_GADGETUP| IDCMP_MOUSEBUTTONS| IDCMP_GADGETDOWN |
IDCMP_CLOSEWINDOW,
WA_Left, LeftEdge,
WA_Top, TopEdge,
WA_Width, WIN_WIDTH,
WA_Height, WIN_HEIGHT,
WA_Title, myname,
WA_MinWidth, 32,
WA_MinHeight, 32,
WA_MaxWidth, -1,
WA_MaxHeight, -1,
WA_AutoAdjust, 1,
WA_PubScreen, NULL,
WA_PubScreenFallBack, 1,
WA_Gadgets, glist,
TAG_END);
if (win)
{
GT_RefreshWindow(win, NULL);
DrawImage(win->RPort, &image0, 205, 32); /* logo */
get_date();
if (argc == 2)
{
strcpy(Buf_storage_str, argv[1]);
ask_print(Buf_storage_str);
}
while (!quit)
{
WaitPort(win->UserPort);
struct IntuiMessage *msg;
while (msg = GT_GetIMsg(win->UserPort))
{
ULONG idcmp_class = msg->Class;
struct Gadget *gad = msg->IAddress;
USHORT gad_id = gad->GadgetID;
GT_ReplyIMsg(msg);
switch(idcmp_class)
{
case IDCMP_GADGETUP:
switch(gad_id)
{
case GAD_pagesize:
toggle(pagesize);
continue;
case GAD_linelength:
if (linelength < 2)
++linelength;
else
linelength = 0;
continue;
case GAD_split:
toggle(split);
continue;
case GAD_title:
toggle(title);
continue;
case GAD_automatic:
toggle(autom);
if (autom)
{
for (SHORT i = 0; i < 2; ++i)
do_all(i);
}
continue;
case GAD_filereq:
do_filereq();
continue;
case GAD_storage_list:
do_storage_list();
continue;
case GAD_storage_str:
ask_print(Buf_storage_str);
continue;
case GAD_print_it:
do_print_it();
continue;
case GAD_forget_it:
do_forget_it();
continue;
case GAD_quit:
default:
} /* switch gad_id */
case IDCMP_CLOSEWINDOW:
do_quit();
default:
break;
} /* switch idcmp_class */
} /* while msg */
} /* while !quit */
cleanup();
CloseWindow(win);
} /* if win */
FreeGads();
} /* if glist */
} /* if scr */
return(0);
}