ToolStripMenuItem InitializeWatcherMenu(TogglWatcher watcher) { var menu = new ToolStripMenuItem(watcher.Name); menu.DropDownItems.AddRange(new ToolStripMenuItem[] { new ToolStripMenuItem("View", null, async(object sender, EventArgs e) => { new DayEntriesForm(await watcher.GetTodayEntries()).Show(); }), new ToolStripMenuItem("Refresh", null, (object sender, EventArgs e) => watcher.Refresh()), new ToolStripMenuItem("Edit", null, (object sender, EventArgs e) => { WatcherForm.GetWatcher(watcher); SaveWatchers(); }), new ToolStripMenuItem("Remove", null, (object sender, EventArgs e) => { var result = MessageBox.Show($"Remove watcher '{watcher.Name}'?", "Remove watcher", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { _watchers.Remove(watcher); SaveWatchers(); } }) }); return(menu); }
public static TogglWatcher GetWatcher(TogglWatcher watcher = null) { var form = new WatcherForm(watcher); form.ShowDialog(); return(form._watcher); }
void ShowNotification(TogglWatcher watcher, TogglTimeEntry entry) { if (entry == null) { _icon.ShowBalloonTip(2000, watcher.Name, "Timer stopped", ToolTipIcon.Info); } else { var text = $"Timer started: {Helpers.TruncateString(entry.Description, 30)} ({Helpers.StringifySecondsDuration(entry.Duration)})"; _icon.ShowBalloonTip(2000, watcher.Name, text, ToolTipIcon.Info); } }
private void CreateWatcher(object sender, EventArgs e) { if (!ValidateFields()) { return; } var apiToken = textBox_apiToken.Text; var name = textBox_name.Text; var checkIntervalSeconds = (int)numericUpDown_seconds.Value; var notificationEnabled = checkBox_notification.Checked; _watcher = new TogglWatcher(apiToken, name, checkIntervalSeconds, notificationEnabled); Close(); }
private WatcherForm(TogglWatcher watcher = null) { InitializeComponent(); Icon = Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location); if (watcher != null) { _watcher = watcher; textBox_apiToken.Text = new string('*', 32); textBox_name.Text = watcher.Name; numericUpDown_seconds.Value = watcher.CheckIntervalSeconds; checkBox_notification.Checked = watcher.NotificationEnabled; button_submit.Text = "Update"; textBox_apiToken.Enabled = false; button_submit.Click += UpdateWatcher; } else { button_submit.Text = "Create"; button_submit.Click += CreateWatcher; } }