home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Libraries / Aidan's Class Libraries / Source / Action / NullHandler.cpp < prev   
Encoding:
Text File  |  1997-05-24  |  1.5 KB  |  80 lines  |  [TEXT/CWIE]

  1. //Copyright (c) 1997 Aidan Cully
  2. //All rights reserved
  3.  
  4. #include "CLNullHandler.h"
  5.  
  6. TNullHandler *TNullHandler::sNullHandler=0;
  7.  
  8. TNullHandler::TNullHandler()
  9. {
  10.     sNullHandler= this;
  11. }
  12.  
  13. void TNullHandler::NewDispatcher()
  14. {
  15.     TList<MPulsar*> *newlev= new TList<MPulsar*>;
  16.     mhPulsars.AddNext( newlev );
  17. }
  18.  
  19. void TNullHandler::OldDispatcher()
  20. {
  21.     if( !mhPulsars.MoveLast() )
  22.         return;
  23.     TList<MPulsar*> *dellev;
  24.     mhPulsars.GetData( dellev );
  25.     delete dellev;
  26. }
  27.  
  28. void TNullHandler::AddPulsar( MPulsar *puls )
  29. {
  30.     TList<MPulsar*> *pulList;
  31.     if( !mhPulsars.MoveLast() )
  32.         return;
  33.     mhPulsars.GetData( pulList );
  34.     if( pulList->MoveFirst() ) {
  35.         MPulsar *temp;
  36.         do {
  37.             pulList->GetData( temp );
  38.         } while( (temp!=puls)&&pulList->MoveNext() );
  39.         if( temp==puls )
  40.             return;
  41.     }
  42.     pulList->MoveLast();
  43.     pulList->AddNext( puls );
  44. }
  45.  
  46. void TNullHandler::RemovePulsar( MPulsar *puls )
  47. {
  48.     TList<MPulsar*> *pulList;
  49.     if( !mhPulsars.MoveLast() )
  50.         return;
  51.     mhPulsars.GetData( pulList );
  52.     if( !pulList->MoveFirst() )
  53.         return;
  54.     SInt16 index= pulList->FindIndex( puls );
  55.     if( index==-1 )
  56.         return;
  57.     pulList->GoToElem( index );
  58.     pulList->Remove();
  59. }
  60.  
  61. void TNullHandler::DispatchEvent( const EventRecord &ev )
  62. {
  63.     BuildEvent( ev );
  64. }
  65.  
  66. void TNullHandler::BuildEvent( const EventRecord &ev )
  67. {
  68.     if( !mhPulsars.MoveLast() )
  69.         return;
  70.     TList<MPulsar*> *pulList;
  71.     mhPulsars.GetData( pulList );
  72.     MPulsar *puls;
  73.     if( !pulList->GetData( puls ) )
  74.         return;
  75.     TEvent nev;
  76.     nev.when= ev.when;
  77.     puls->Pulse( &nev );
  78.     if( !pulList->MoveNext() )
  79.         pulList->MoveFirst();
  80. }