Example #1
0
        public Form1()
        {
            InitializeComponent();

            var contextMenu = new ContextMenuStrip();
            contextMenu.Items.Add("Pause", null, PauseClicked);
            contextMenu.Items.Add("Open config", null, OpenConfigClicked);
            contextMenu.Items.Add("Exit", null, ExitClicked);
            _TrayIcon.ContextMenuStrip = contextMenu;

            //Logger.Clear();

            Config.Initialize();

            IconState = new IconState();
            Visible = false;
            TopMost = true;
        }
Example #2
0
        private void _Heartbeat_Tick(object sender, EventArgs e)
        {
            bool wasVisible = Visible;
            if (Visible)
                Visible = false;

            DateTime now = DateTime.Now;
            TimeSpan lastInput = Win32.GetLastInputTime();

            if (lastInput.TotalSeconds > Config.Instance.BigBreakLengthInSeconds)
            {
                _LastMiniBreak = now;
                _LastBigBreak = _LastMiniBreak;
                IconState = new IconState();

                return;
            }

            if (lastInput.TotalSeconds > Config.Instance.MiniBreakLengthInSeconds)
            {
                _LastMiniBreak = now;
                IconState = new IconState { BigBreakProgress = IconState.BigBreakProgress };
                ResetNotifier();

                return;
            }

            double miniBreakElapsedSeconds = (now - _LastMiniBreak).TotalSeconds;
            double bigBreakElapsedSeconds = (now - _LastBigBreak).TotalSeconds;
            //Logger.Log("ElapsedSeconds: {0}", elapsedSeconds);

            IconState = new IconState
            {
                MiniBreakProgress = (int)(miniBreakElapsedSeconds / ((double)Config.Instance.MiniBreakIntervalInMinutes * 60 / ICON_DIMENSIONS)),
                BigBreakProgress = (int)(bigBreakElapsedSeconds / ((double)Config.Instance.BigBreakIntervalInMinutes * 60 / ICON_DIMENSIONS)),
                Paused = _Paused
            };

            if (!wasVisible &&
                miniBreakElapsedSeconds > Config.Instance.MiniBreakIntervalInMinutes * 60 &&
                lastInput.TotalSeconds < 2)
                Notify();
        }