home *** CD-ROM | disk | FTP | other *** search
- /*
- String gadgets and misc functions.
-
- Written by: Steve (Raz) Berry
- */
-
- #include "flist.h"
-
- char strbuf[256];
- char undo[256];
-
- struct IntuiText AutoText = {
- REDP, WHTP,
- JAM2, 15,
- 5, NL,
- " Flist ", NULL
- };
-
- /** TRUE TEXT **/
- struct IntuiText TRUEtext = {
- BLUP, WHTP,
- JAM2,
- 7, /* LeftEdge */
- 3, /* TopEdge */
- NL, /* Default font */
- "OK", /* Text */
- NL /* No pointer to next text */
- };
-
- /** FALSE TEXT **/
- struct IntuiText FALSEtext = {
- REDP, WHTP,
- JAM2,
- 7, /* LeftEdge */
- 3, /* TopEdge */
- NL, /* Default font */
- "NO!", /* Text */
- NL
- };
-
- struct StringInfo strinfo = {
- strbuf,
- undo,
- 0,
- 200,
- 0, 0,
- 0, 0,
- 0, 0,
- 0, 0,
- 0
- };
-
- struct Gadget str = {
- NULL,
- 20, 20, 240, 10,
- GADGHCOMP,
- GADGIMMEDIATE|RELVERIFY,
- STRGADGET,
- NULL,
- NULL,
- NULL,
- NULL,
- (APTR)&strinfo,
- 0, NULL
- };
-
- struct NewWindow strwin = {
- 140,70, /* LeftEdge and TopEdge */
- 300, 40, /* Width and Height */
- 0, 1, /* DetailPen and BlockPen */
- CLOSEWINDOW|GADGETUP, /* IDCMP Flags */
- WINDOWDEPTH|WINDOWDRAG|WINDOWCLOSE /* Flags */
- |SMART_REFRESH|ACTIVATE,
- &str, NULL, /* Gadget and Image pointers */
- NULL, /* Title string */
- NULL, /* Screen ptr null (this screen) */
- NULL, /* BitMap pointer */
- 50, 20, /* MinWidth and MinHeight */
- 320, 200, /* MaxWidth and MaxHeight */
- WBENCHSCREEN /* Type of window */
- };
-
- /* Make a string gadget in it's own window */
-
- struct Window *make_gadget(title)
- char *title;
- {
- struct Window *strptr;
-
- strwin.Title = title;
- strptr = OpenWindow(&strwin);
-
- if(strptr != NULL) {
- RefreshGadgets(&str, strptr, NULL);
- ActivateGadget(&str, strptr, NULL);
- }
- return strptr;
- }
-
- /* Wait for one event from a window, then return */
-
- wait_for_event(win)
- struct Window *win;
- {
- ULONG imask,signals;
- struct IntuiMessage *imsg;
-
- imask = 1 << win->UserPort->mp_SigBit;
-
- signals = Wait(imask);
-
- if(signals & imask) {
- while(imsg = (struct IntuiMessage *)GetMsg(win->UserPort))
- ReplyMsg(imsg);
- }
- if (win) {
- while(imsg = (struct IntuiMessage *)GetMsg(win->UserPort))
- ReplyMsg(imsg);
- CloseWindow(win);
- }
- }
-
- int auto_req();
- /***************************************************************************
- HANDLE AUTO-REQUESTS
- ***************************************************************************/
- int auto_req (text)
- char *text; /* Pointer to the text */
- {
- struct Process *proc;
- int val, temp;
-
- AutoText.IText = text; /* Text pointer */
-
- temp = ((CHARW + 1) * strlen(text)) + (4 * CHARW);
- temp = (temp < 150) ? 150: temp;
-
- proc = (struct Process *)FindTask(NULL);
- val = AutoRequest(proc->pr_WindowPtr, &AutoText, &TRUEtext, &FALSEtext,
- 0L, 0L, (LONG)temp, 60L );
- return val;
- }
-