protected IntervalTimer(string name, uint minutes, uint seconds) { this.name = name; SetTime(minutes, seconds); _secondsRemaining = _totalSeconds; _state = IntervalTimerState.Waiting; }
protected bool OnTimeout() { if (_enabled) { --_secondsRemaining; if (TimerInterumEvent != null) { TimerInterumEvent(this); } if (_secondsRemaining <= 0) { _enabled = false; _secondsRemaining = _totalSeconds; _state = IntervalTimerState.Waiting; // We want any user code to execute first before the dialog screen is shown if (TimerElapsedEvent != null) { TimerElapsedEvent(this, new TimerElapsedEventArgs()); } } } return(_enabled); }
public void Start() { if (_state == IntervalTimerState.Waiting) { if (_totalSeconds > 0) { _secondsRemaining = _totalSeconds; _enabled = true; _state = IntervalTimerState.Running; timerId = GLib.Timeout.Add(1000, OnTimeout); if (TimerStartEvent != null) { TimerStartEvent(this); } } } else if (_state == IntervalTimerState.Paused) { if (_secondsRemaining > 0) { _enabled = true; _state = IntervalTimerState.Running; timerId = GLib.Timeout.Add(1000, OnTimeout); if (TimerStartEvent != null) { TimerStartEvent(this); } } } }
public void Stop() { if (_state == IntervalTimerState.Running) { _enabled = false; _state = IntervalTimerState.Paused; GLib.Source.Remove(timerId); if (TimerStopEvent != null) { TimerStopEvent(this); } } }
public void Reset() { Stop(); _state = IntervalTimerState.Waiting; }