home *** CD-ROM | disk | FTP | other *** search
-
- #include <classes/Intuition/IDCMP.h>
-
- #pragma -
- #include <pragma/exec_lib.h>
- #pragma +
-
- IDCMPEventHandlerC::IDCMPEventHandlerC(ULONG IDCMPclass)
- {
- evClass = IDCMPclass;
- }
-
- BOOL IDCMPEventHandlerC::handle(MessageC &msg)
- {
- return _handle((IntuiMessageC &) msg);
- }
-
- BOOL IDCMPEventHandlerC::forMe(MessageC &msg)
- {
- return _forMe((IntuiMessageC &) msg);
- }
-
- BOOL IDCMPEventHandlerC::_handle(IntuiMessageC &msg)
- {
- return FALSE;
- }
-
- BOOL IDCMPEventHandlerC::_forMe(IntuiMessageC &msg)
- {
- return evClass == msg.Class;
- }
-
- // ******************************************************
-
- IDCMPEventHandlerChainC::IDCMPEventHandlerChainC(ULONG IDCMPclass)
- : IDCMPEventHandlerC(IDCMPclass), HandlerChainC()
- {
- }
-
- // ******************************************************
-
- BOOL IDCMPortC::handleMsg(MessageC &msg)
- {
- ListCursorC lc(*this);
- BOOL r = FALSE;
- imsg = (IntuiMessageC &) msg;
- if ((imsg.Class & (IDCMP_SIZEVERIFY|IDCMP_MENUVERIFY|IDCMP_REQVERIFY)) == 0)
- msg.reply();
- while (!lc.isDone()) {
- MessageHandlerC *h = (MessageHandlerC *) lc.item();
- if (h->forMe(imsg))
- {
- if (h->handle(imsg))
- {
- BOOL b = h->exit();
- r = r | b;
- };
- };
- lc.next();
- };
- if ((imsg.Class & (IDCMP_SIZEVERIFY|IDCMP_MENUVERIFY|IDCMP_REQVERIFY)) != 0)
- msg.reply();
- return r;
- }
-
- // ******************************************************
-
- IDCMPQEventHandlerC::IDCMPQEventHandlerC(ULONG IDCMPclass, UWORD IDCMPqualifier)
- : IDCMPEventHandlerC(IDCMPclass)
- {
- qualifier = IDCMPqualifier;
- }
-
- // ******************************************************
-
- IDCMPCEventHandlerC::IDCMPCEventHandlerC(ULONG IDCMPclass, UWORD IDCMPcode)
- : IDCMPEventHandlerC(IDCMPclass)
- {
- code = IDCMPcode;
- }
-
- // ******************************************************
-
- IDCMPQCEventHandlerC::IDCMPQCEventHandlerC(ULONG IDCMPclass,
- UWORD IDCMPqualifier, UWORD IDCMPcode)
- : IDCMPQEventHandlerC(IDCMPclass,IDCMPqualifier),
- IDCMPCEventHandlerC(IDCMPclass,IDCMPcode)
- {
- }
-