Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 internal Setup(ITeaTimerRepository repository)
 {
     Repository = repository;
     Handles    = new Dictionary <IEntry <TeaTimerDefinition>, ITeaTimerProcessingHandle>();
 }