home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <exec/types.h>
- #include "struct.h"
- #include "plot.h"
-
- #include "Texted.h"
-
- extern struct Window *FrontWindow;
- extern struct Screen *screen;
-
- extern struct NewWindow NewFrontWindow;
- extern struct RastPort *p;
- extern struct ViewPort *vp;
- extern struct Pict *Pict;
-
-
- #define GO 1
- #define STOP 0
- #define ON TRUE
- int QuitTextFlag=GO;
-
- EditText(text)
- char *text;
- {
- struct IntuiMessage *a_message; /* pointer to message */
- void ProcTextMes();
-
-
- NewFrontWindow.Screen = screen;
- NewFrontWindow.Title =" Edit Text ";
- stccpy(TextSIBuff,text,79);
-
- NewFrontWindow.FirstGadget = &TextContinue;
-
- if (!(FrontWindow = (struct Window *)OpenWindow(&NewFrontWindow)))
- {
- ErrorAlert(0);
- CloseScreen(screen);
- sexit(FALSE);
- }
- ActivateGadget(&TextEd,FrontWindow,NULL);
- p = FrontWindow->RPort;
- QuitTextFlag=GO; /*** RESET FLAG IN CASE NOT FIRST TIME ***/
-
- while (QuitTextFlag !=STOP)
- {
- Wait(1l<<FrontWindow->UserPort->mp_SigBit); /* wait for a message */
- while (a_message = (struct IntuiMessage *)GetMsg(FrontWindow->UserPort))
- ProcTextMes(a_message);
- }
- CloseWindow(FrontWindow);
-
- stccpy(text,TextSIBuff,79);
- return(0);
- }
-
-
- void ProcTextMes(p_message)
- struct IntuiMessage *p_message;
- {
- ULONG MesClass; /* Fields for storing */
- USHORT MesCode; /* intuimessage data */
- APTR Pointer; /* */
- int HandleTextEvent();
-
- MesClass = p_message->Class; /* Store values */
- MesCode = p_message->Code;
- Pointer = p_message->IAddress;
- ReplyMsg(p_message); /* Reply to message */
- HandleTextEvent(MesClass,MesCode,Pointer);
- }
-
- int HandleTextEvent(MesClass,MesCode,Pointer)
- ULONG MesClass; /* Fields for storing */
- USHORT MesCode; /* intuimessage data */
- APTR Pointer; /* */
- {
-
- if ( MesClass == GADGETDOWN)
- {
- if (Pointer == (APTR)&TextContinue)
- {
- QuitTextFlag=STOP;
- }
- }
- if ( MesClass == RAWKEY)
- {
- if (MesCode ==196) /* RETURN key RELEASED */
- {
- QuitTextFlag = STOP;
- }
- }
- return(0);
- }
-