home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-05-24 | 1.5 KB | 80 lines | [TEXT/CWIE] |
- //Copyright (c) 1997 Aidan Cully
- //All rights reserved
-
- #include "CLNullHandler.h"
-
- TNullHandler *TNullHandler::sNullHandler=0;
-
- TNullHandler::TNullHandler()
- {
- sNullHandler= this;
- }
-
- void TNullHandler::NewDispatcher()
- {
- TList<MPulsar*> *newlev= new TList<MPulsar*>;
- mhPulsars.AddNext( newlev );
- }
-
- void TNullHandler::OldDispatcher()
- {
- if( !mhPulsars.MoveLast() )
- return;
- TList<MPulsar*> *dellev;
- mhPulsars.GetData( dellev );
- delete dellev;
- }
-
- void TNullHandler::AddPulsar( MPulsar *puls )
- {
- TList<MPulsar*> *pulList;
- if( !mhPulsars.MoveLast() )
- return;
- mhPulsars.GetData( pulList );
- if( pulList->MoveFirst() ) {
- MPulsar *temp;
- do {
- pulList->GetData( temp );
- } while( (temp!=puls)&&pulList->MoveNext() );
- if( temp==puls )
- return;
- }
- pulList->MoveLast();
- pulList->AddNext( puls );
- }
-
- void TNullHandler::RemovePulsar( MPulsar *puls )
- {
- TList<MPulsar*> *pulList;
- if( !mhPulsars.MoveLast() )
- return;
- mhPulsars.GetData( pulList );
- if( !pulList->MoveFirst() )
- return;
- SInt16 index= pulList->FindIndex( puls );
- if( index==-1 )
- return;
- pulList->GoToElem( index );
- pulList->Remove();
- }
-
- void TNullHandler::DispatchEvent( const EventRecord &ev )
- {
- BuildEvent( ev );
- }
-
- void TNullHandler::BuildEvent( const EventRecord &ev )
- {
- if( !mhPulsars.MoveLast() )
- return;
- TList<MPulsar*> *pulList;
- mhPulsars.GetData( pulList );
- MPulsar *puls;
- if( !pulList->GetData( puls ) )
- return;
- TEvent nev;
- nev.when= ev.when;
- puls->Pulse( &nev );
- if( !pulList->MoveNext() )
- pulList->MoveFirst();
- }