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; }
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(); }