home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-05-01 | 8.6 KB | 367 lines | [TEXT/MPS ] |
- // UEvent.cp
- // Copyright © 1984-1991 by Apple Computer Inc. All rights reserved.
-
- #ifndef __UEVENT__
- #include <UEvent.h>
- #endif
-
- #ifndef __STDIO__
- #include <StdIo.h>
- #endif
-
- #ifndef __RESOURCES__
- #include <Resources.h>
- #endif
-
- #ifndef __TOOLUTILS__
- #include <ToolUtils.h>
- #endif
-
- #ifndef __EPPC__
- #include <EPPC.h>
- #endif
-
- #ifndef __WINDOWS__
- #include <Windows.h>
- #endif
-
- #ifndef __UEVTHANDLER__
- #include <UEvtHandler.h>
- #endif
-
- #ifndef __UMACAPPUTILITIES__
- #include <UMacAppUtilities.h>
- #endif
-
- #ifndef __UAPPLICATION__
- #include <UApplication.h>
- #endif
-
-
- //--------------------------------------------------------------------------------------------------
- #pragma segment MAEvtHandlerRes
- pascal void TEvent::Initialize(void) // override
- {
- inherited::Initialize();
- fID = cNoEvent;
- fSource = NULL;
- fHandler = NULL;
- fAffectsMenus = FALSE;
- fPriority = kPriorityNormal; // Don't worry, be happy!
- }
-
- //--------------------------------------------------------------------------------------------------
- #pragma segment MAEvtHandlerRes
- pascal void TEvent::IEvent(EvtNumber itsEventNumber,
- TEvtHandler* itsSource,
- TEvtHandler* itsHandler)
- {
- this->IObject();
- fID = itsEventNumber;
- fSource = itsSource;
- fHandler = itsHandler;
- }
-
- //--------------------------------------------------------------------------------------------------
- #pragma segment MAEvtHandlerRes
- pascal TEvtHandler* TEvent::GetHandler(void)
- {
- if (fHandler)
- return fHandler;
- else
- return gApplication;
- }
-
- //--------------------------------------------------------------------------------------------------
- #pragma segment MAEvtHandlerRes
- pascal Boolean TEvent::ShouldFreeOnCompletion(void)
- {
- return TRUE;
- }
-
- //--------------------------------------------------------------------------------------------------
- #pragma segment MAEvtHandlerRes
- pascal Boolean TEvent::IsReadyToExecute(void)
- {
- return TRUE;
- }
-
- //--------------------------------------------------------------------------------------------------
- #pragma segment MAEvtHandlerRes
- pascal Boolean TEvent::IsRecurring(void)
- {
- return FALSE;
- }
-
- //--------------------------------------------------------------------------------------------------
- #pragma segment MAEvtHandlerRes
-
- pascal void TEvent::Process(void)
-
- {
- TEvtHandler* handler = this->GetHandler();
-
- if (handler)
- handler->HandleEvent(fID,fSource,this);
- }
-
- //--------------------------------------------------------------------------------------------------
- #pragma segment MADebug
-
- pascal void TEvent::ReportEvent(void)
- {
- }
-
- //--------------------------------------------------------------------------------------------------
- #pragma segment MAFields
-
- pascal void TEvent::Fields(TObject* obj) // override
-
- {
- obj->DoToField("TEvent", NULL, bClass);
- obj->DoToField("fID", &fID, bCmdNumber);
- obj->DoToField("fSource", &fSource, bObject);
- obj->DoToField("fAffectsMenus", &fAffectsMenus, bBoolean);
- obj->DoToField("fPriority", &fPriority, bByte);
-
- inherited::Fields(obj);
- }
-
- //--------------------------------------------------------------------------------------------------
- #pragma segment MAEvtHandlerRes
-
- pascal void TToolboxEvent::IToolboxEvent(TEvtHandler* itsHandler)
-
- {
- this->IEvent(cNoCommand, NULL, itsHandler);
- }
-
- //--------------------------------------------------------------------------------------------------
- #pragma segment MAEvtHandlerRes
-
- pascal void TToolboxEvent::HaveEvent(const EventRecord& theEvent)
-
- {
- fID = (long) theEvent.what;
- fEventRecord = theEvent;
-
- fBtnState = ((theEvent.modifiers) & btnState) != 0;
- fCmdKey = ((theEvent.modifiers) & cmdKey) != 0;
- fShiftKey = ((theEvent.modifiers) & shiftKey) != 0;
- fAlphaLock = ((theEvent.modifiers) & alphaLock) != 0;
- fOptionKey = ((theEvent.modifiers) & optionKey) != 0;
- fControlKey = ((theEvent.modifiers) & controlKey) != 0;
- fAutoKey = theEvent.what == autoKey;
- fClickCount = fClickCount;
- fCharacter = (char)(0); /* Default, we don't know if this is a
- keystroke yet */
- fKeyCode = 0; /* Default, we don't know if this is a
- keystroke yet */
- fAffectsMenus = TRUE; /* assume going in that this event affects
- the menus */
- }
-
- //--------------------------------------------------------------------------------------------------
- #pragma segment MADebug
-
- pascal void TToolboxEvent::ReportEvent(void) // override
- {
- short ch;
- short cap;
- Str255 aString;
- Str63 mods; //Pascal: STRING[10];
- WindowPtr aWMgrWindow;
- Point localWhere;
-
- fprintf(stderr, "t = %d", fEventRecord.when);
- mods = (Str255) " ---------";
- // 1234567890
-
- if (fControlKey)
- mods[2] = 'C';
- if (fOptionKey)
- mods[3] = 'O';
- if (fAlphaLock)
- mods[4] = 'L';
- if (fShiftKey)
- mods[5] = 'S';
- if (fCmdKey)
- mods[6] = 'C';
- if (fBtnState)
- mods[7] = 'M';
- if (fEventRecord.what == activateEvt)
- if (((fEventRecord.modifiers) & activeFlag) != 0)
- mods[8] = 'A';
- else
- mods[8] = 'D';
- fprintf(stderr, "%s", (char *) mods);
-
- switch (fEventRecord.what)
- {
- case nullEvent:
- fprintf(stderr, "nullEvent\n");
- break;
- case mouseDown:
- case mouseUp:
- if (fEventRecord.what == mouseDown)
- fprintf(stderr, "mouseDown ");
- else
- fprintf(stderr, "mouseUp ");
- localWhere = fEventRecord.where;
- fprintf(stderr, "%s", (char *) &localWhere); // ??? why %s
- switch (FindWindow(fEventRecord.where, aWMgrWindow))
- {
- case inMenuBar:
- aString = "inMenuBar";
- break;
-
- case inSysWindow:
- aString = "inSysWindow";
- break;
-
- case inDrag:
- aString = "inDrag";
- break;
-
- case inGrow:
- aString = "inGrow";
- break;
-
- case inGoAway:
- aString = "inGoAway";
- break;
-
- case inContent:
- aString = "inContent";
- break;
-
- case inZoomIn:
- aString = "inZoomIn";
- break;
-
- case inZoomOut:
- aString = "inZoomOut";
- break;
-
- default:
- aString = "Mouse clicked in an unknown place.";
- break;
- }
-
- fprintf(stderr, "%5s\n", (char *) aString);
- break;
- case keyDown:
- case autoKey:
- case keyUp:
- if (fEventRecord.what == keyDown)
- fprintf(stderr, "keyDown ");
- else if (fEventRecord.what == autoKey)
- fprintf(stderr, "autoKey ");
- else
- fprintf(stderr, "keyUp ");
-
- ch = (short)(fEventRecord.message & charCodeMask);
- cap = (short)(fEventRecord.message >> 8);
-
- if ((ch >= 0x20) && (ch <= 0xD8) && (ch != 0x7F))
- fprintf(stderr, "\"%c\"");
- else
- fprintf(stderr, " ");
-
- fprintf(stderr, "( %1d / %1d )\n", ch, cap);
- break;
-
- case updateEvt:
- case activateEvt:
- if (fEventRecord.what == updateEvt)
- fprintf(stderr, "updateEvt ");
- else
- fprintf(stderr, "activateEvt ");
-
- aString = **( (Str255**) ((WindowPeek)(fEventRecord.message))->titleHandle);
- fprintf(stderr, "\"%s\"\n", (char *) aString);
- break;
-
- case diskEvt:
- fprintf(stderr, "diskEvt d = %1d e = %1d \n", LoWord(fEventRecord.message), HiWord(fEventRecord.message));
- break;
-
- case networkEvt:
- fprintf(stderr, "networkEvt ");
- WritePtr(fEventRecord.message);
- fprintf(stderr, "\n");
- break;
-
- case driverEvt:
- WrLblHexLongint("driverEvt , message", fEventRecord.message);
- fprintf(stderr, "\n");
- break;
-
- case app1Evt:
- WrLblHexLongint("app1Evt , message", fEventRecord.message);
- fprintf(stderr, "\n");
- break;
-
- case app2Evt:
- WrLblHexLongint("app2Evt , message", fEventRecord.message);
- fprintf(stderr, "\n");
- break;
-
- case app3Evt:
- WrLblHexLongint("app3Evt , message", fEventRecord.message);
- fprintf(stderr, "\n");
- break;
-
- case osEvt:
- switch ((((fEventRecord.message) >> osEvtMessageMask)) & 24)
- {
- case suspendResumeMessage:
- if (fEventRecord.message & 1) //!!!Pascal: (Odd(fEventRecord.message))
- fprintf(stderr, "resume ");
- else
- fprintf(stderr, "suspend ");
- break;
-
- case mouseMovedMessage:
- {
- fprintf(stderr, "mouse moved ");
- localWhere = fEventRecord.where;
- fprintf(stderr, "%s", (char *) &localWhere); // ??? why %s
- break;
- }
-
- default:
- fprintf(stderr, "osEvt ");
- break;
- }
- WrLblHexLongint(", message", fEventRecord.message);
- fprintf(stderr, "\n");
- break;
-
- case kHighLevelEvent:
- WrLblHexLongint("kHighLevelEvent , message", fEventRecord.message);
- fprintf(stderr, "\n");
- break;
-
- default:
- fprintf(stderr, "??? unknown = %1d ", fEventRecord.what);
- WriteHexLongint(fEventRecord.message);
- break;
- }
- }
-
-
- //--------------------------------------------------------------------------------------------------
- #pragma segment MAFields
-
- pascal void TToolboxEvent::Fields(TObject* obj) // override
-
- {
-
- obj->DoToField("TToolboxEvent", NULL, bClass);
- inherited::Fields(obj);
-
- }
-
-
-