home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-11-26 | 2.5 KB | 89 lines | [TEXT/CWIE] |
- // ===========================================================================
- // CActiveXPeriodical.cpp ©1996 Microsoft Corporation. All rights reserved.
- // ===========================================================================
-
- #include <Platform.h>
- #include "CActiveXPeriodical.h"
- #include "CActiveXScheduler.h"
-
- CActiveXPeriodical* CActiveXPeriodical::sActiveXPeriodical = NULL;
-
- #pragma mark === CActiveXPeriodical::Construction & Destruction ===
-
- // ---------------------------------------------------------------------------
- // • CActiveXPeriodical::CActiveXPeriodical
- // ---------------------------------------------------------------------------
- // Default Constructor
-
- CActiveXPeriodical::CActiveXPeriodical(void)
- {
- mIsIdling = false;
- mIsRepeating = false;
- }
-
-
- #pragma mark === CActiveXPeriodical::LPerodical ===
-
- // ---------------------------------------------------------------------------
- // • CActiveXPeriodical::SpendTime()
- // ---------------------------------------------------------------------------
- //
-
- void
- CActiveXPeriodical::SpendTime(const EventRecord &inMacEvent)
- {
- CActiveXScheduler* Scheduler = CActiveXScheduler::GetActiveXScheduler();
-
- if (Scheduler)
- Scheduler->Idle(inMacEvent.what == nullEvent);
- }
-
-
- #pragma mark === CActiveXPeriodical::CActiveXScheduler ===
-
- // ---------------------------------------------------------------------------
- // • CActiveXPeriodical::UpdatePeriodical() [ static ]
- // ---------------------------------------------------------------------------
- //
-
- void
- CActiveXPeriodical::UpdatePeriodical(void)
- {
- if (!sActiveXPeriodical)
- sActiveXPeriodical = new CActiveXPeriodical;
-
- if (sActiveXPeriodical)
- {
- Boolean8 HasIdlers = false;
- Boolean8 HasRepeaters = false;
- CActiveXScheduler* Scheduler = CActiveXScheduler::GetActiveXScheduler();
-
- if (Scheduler)
- {
- HasIdlers = Scheduler->HasNullEventItems();
- HasRepeaters = Scheduler->HasAllEventItems();
- }
-
- if (sActiveXPeriodical->mIsIdling && !HasIdlers)
- {
- sActiveXPeriodical->mIsIdling = false;
- sActiveXPeriodical->StopIdling();
- }
- else if (!sActiveXPeriodical->mIsIdling && HasIdlers)
- {
- sActiveXPeriodical->mIsIdling = true;
- sActiveXPeriodical->StartIdling();
- }
-
- if (sActiveXPeriodical->mIsRepeating && !HasRepeaters)
- {
- sActiveXPeriodical->mIsRepeating = false;
- sActiveXPeriodical->StopRepeating();
- }
- else if (!sActiveXPeriodical->mIsRepeating && HasRepeaters)
- {
- sActiveXPeriodical->mIsRepeating = true;
- sActiveXPeriodical->StartRepeating();
- }
- }
- }