public App(ITeaTimerRepository timerRepository, ITeaTimerProcessor timerProcessor) { var version = Assembly.GetExecutingAssembly().GetName().Version; _setup = new Setup(timerRepository); _timerProcessor = timerProcessor; _idleIcon = new Icon(GetType(), "idle.ico"); _activeIcon = new Icon(GetType(), "active.ico"); _setupForm = new SetupForm(_setup); _aboutForm = new AboutForm(_activeIcon); _notifyIcon = new NotifyIcon(); var cm = new ContextMenu(); cm.Popup += (s, e) => { cm.MenuItems.Clear(); cm.MenuItems.Add("About", (s1, e1) => _aboutForm.Show()); cm.MenuItems.Add("-"); cm.MenuItems.AddRange(GetTeaMenuItemsWithHandlers()); cm.MenuItems.Add("-"); cm.MenuItems.Add("Setup", (s1, e1) => _setupForm.Show()); cm.MenuItems.Add("Exit", (s1, e1) => OnExit()); }; _notifyIcon.ContextMenu = cm; _notifyIcon.Text = "DnTeaTime v" + version.ToString(2); _notifyIcon.MouseUp += (s, e) => { if (e.Button == MouseButtons.Left) { MethodInfo mi = typeof(NotifyIcon).GetMethod("ShowContextMenu", BindingFlags.Instance | BindingFlags.NonPublic); mi.Invoke(_notifyIcon, null); } }; _notification = new Notification(_notifyIcon, _activeIcon); SetIcon(_idleIcon); }
internal Setup(ITeaTimerRepository repository) { Repository = repository; Handles = new Dictionary <IEntry <TeaTimerDefinition>, ITeaTimerProcessingHandle>(); }