Esempio n. 1
0
 public Host(IServiceProvider services, IServiceCollection pool, IAppBuilder appBuilder, ITerminationNotifier terminationNotifier, ITray tray, IHotKey hotkey, IQuickWindow window)
 {
     this.services            = services;
     this.pool                = pool;
     this.appBuilder          = appBuilder;
     this.terminationNotifier = terminationNotifier;
     this.tray                = tray;
     this.hotkey              = hotkey;
     this.window              = window;
     actions = new ObservableCollection <ActionBase>();
 }
Esempio n. 2
0
        private void ConfigureInternalServices()
        {
            ITerminationNotifier terminationNotifier = services.CreateInstance <TerminationNotifier>();

            pool.Add(ServiceDescriptor.Singleton <ITerminationNotifier>(terminationNotifier));

            ITray tray = services.CreateInstance <Tray>();

            pool.Add(ServiceDescriptor.Singleton <ITray>(tray));

            IProgramContextFactory programContextFactory = services.CreateInstance <ProgramContextFactory>();

            pool.Add(ServiceDescriptor.Singleton <IProgramContextFactory>(programContextFactory));
            pool.Add(ServiceDescriptor.Scoped <IProgramContext>(services =>
            {
                IProgramContextFactory factory = services.GetService <IProgramContextFactory>();
                return(factory.RebuildContext());
            }));
        }
Esempio n. 3
0
        public Tray(ITerminationNotifier terminationNotifier)
        {
            this.terminationNotifier = terminationNotifier;

            tray = new NotifyIcon();
            Assembly assembly   = Assembly.GetEntryAssembly();
            Stream   iconStream = assembly.LoadStream("HakeQuick.tray.ico");

            tray.Icon = new Icon(iconStream);
            iconStream.Close();
            iconStream.Dispose();
            tray.Visible = true;
            MenuItem closeMenu = new MenuItem("关闭", (sender, e) =>
            {
                this.terminationNotifier.NotifyTerminate();
            });

            MenuItem[] menuitems = new MenuItem[] { closeMenu };
            tray.ContextMenu = new ContextMenu(menuitems);
        }