Пример #1
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            using (var app = new TrayApplication())
            {
                app.Display();
                Application.Run();
            }
        }
Пример #2
0
        private void App_OnStartup(object sender, StartupEventArgs e)
        {
            WcfMutexSingleInstanceRunner instanceRunner = new WcfMutexSingleInstanceRunner("8E756836-F0DE-490E-AEA5-EDAADF9C5FF8");

            if (!instanceRunner.Run(e))
            {
                instanceRunner.Dispose();
                Shutdown(0);
            }
            m_dispatcher = new DispatcherWrapper(Dispatcher.CurrentDispatcher);
            instanceRunner.SecondInstanceStarted += CreateSettingsWindow;


            #region Upgrade settings
            if (!HandMeAFile.Properties.Settings.Default.Updated)
            {
                HandMeAFile.Properties.Settings.Default.Updated = true;
                HandMeAFile.Properties.Settings.Default.Upgrade();
                HandMeAFile.Properties.Settings.Default.Save();
            }
            #endregion

            IClipboard clipboard = new ClipboardWrapper();
            m_packsRepository = new ClipboardFilesRepository(new ClipboardNotifier(), clipboard);
            m_settings        = new SettingsStorage(m_packsRepository, new FilePackSerializer(new XDocumentProvider()));
            m_packsRepository.Init(m_settings.FilePacks.Select(p => p.SetCount((p.ClipboardCount + 1) / 2)).ToArray());


            IProvideContextMenu contextMenuProvider = new ContextMenuProvider();

            IContextMenu     contextMenu      = contextMenuProvider.Provide(new IMenuItem[0]);
            IProvideMenuItem menuItemProvider = new MenuItemProvider();
            IMenuItem        settingsMenuItem = menuItemProvider.Provide("Settings");
            IMenuItem        exitMenuItem     = menuItemProvider.Provide("Exit");
            contextMenu.Add(menuItemProvider.Provide("-"));
            contextMenu.Add(settingsMenuItem);
            contextMenu.Add(exitMenuItem);
            settingsMenuItem.Click += CreateSettingsWindow;
            exitMenuItem.Click     += (senderObj, args) => Shutdown(0);
            m_contextUpdater        = new ContextMenuUpdater(m_packsRepository, contextMenu, menuItemProvider, clipboard);


            IRunTheTrayApp trayApplication = new TrayApplication(contextMenu,
                                                                 new ApplicationWrapper(this),
                                                                 new NotifyIconProvider(),
                                                                 new StaticIconProvider(new IconWrapper(HandMeAFile.Properties.Resources.HandMeAFile)),
                                                                 doubleClickAction: CreateSettingsWindow);
            trayApplication.Run();
        }