Beispiel #1
0
 protected IntervalTimer(string name, uint minutes, uint seconds)
 {
     this.name = name;
     SetTime(minutes, seconds);
     _secondsRemaining = _totalSeconds;
     _state            = IntervalTimerState.Waiting;
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 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);
             }
         }
     }
 }
Beispiel #4
0
 public void Stop()
 {
     if (_state == IntervalTimerState.Running)
     {
         _enabled = false;
         _state   = IntervalTimerState.Paused;
         GLib.Source.Remove(timerId);
         if (TimerStopEvent != null)
         {
             TimerStopEvent(this);
         }
     }
 }
Beispiel #5
0
 public void Reset()
 {
     Stop();
     _state = IntervalTimerState.Waiting;
 }