/** * The move constructor may only be used on inactive timers. This * shall only be used by derived classes to pass inactive instances * around. */ Timer(Timer &&other) #ifdef USE_GDI :WindowTimer(*(Window *)this) #endif { assert(!IsActive()); assert(!other.IsActive()); }
~Timer() { /* timer must be cleaned up explicitly */ assert(!IsActive()); #ifdef USE_EGL assert(!queued.load(std::memory_order_relaxed)); assert(!enabled.load(std::memory_order_relaxed)); #endif }
~TestWindow() { timer.Cancel(); }
TestWindow(const FinalGlideBarLook &look, const TaskLook &task_look) :final_glide(look, task_look), step(fixed(10)), mc_mc0_step(fixed(100)), timer(*this) { timer.Schedule(100); }
virtual void OnDestroy() { timer.Cancel(); SingleWindow::OnDestroy(); }
virtual void OnCreate() { SingleWindow::OnCreate(); timer.Schedule(10); }
TestWindow(const HorizonLook &look):horizon(look), timer(*this) { timer.Schedule(250); }
TestWindow(const WindArrowLook &look):wind(look), timer(*this) { timer.Schedule(250); }