Exemplo n.º 1
0
        public MainWindow()
        {
            ServiceProvider.Register <IRegionProvider>(ServiceName.RegionProvider, new RegionSelector());

            ServiceProvider.Register <IMessageProvider>(ServiceName.Message, new MessageProvider());

            ServiceProvider.Register <IWebCamProvider>(ServiceName.WebCam, new WebCamProvider());

            InitializeComponent();

            if (App.CmdOptions.Tray)
            {
                Hide();
            }

            ServiceProvider.Register <Action <bool> >(ServiceName.Minimize, minimize =>
            {
                WindowState = minimize ? WindowState.Minimized : WindowState.Normal;
            });

            // Register for Windows Messages
            ComponentDispatcher.ThreadPreprocessMessage += (ref MSG Message, ref bool Handled) =>
            {
                const int WmHotkey = 786;

                if (Message.message == WmHotkey)
                {
                    var id = Message.wParam.ToInt32();

                    ServiceProvider.RaiseHotKeyPressed(id);
                }
            };

            ServiceProvider.Register <ISystemTray>(ServiceName.SystemTray, new SystemTray(SystemTray));

            Closing += (s, e) =>
            {
                if (!TryExit())
                {
                    e.Cancel = true;
                }
            };

            (DataContext as MainViewModel).Init(!App.CmdOptions.NoPersist, true, !App.CmdOptions.Reset, !App.CmdOptions.NoHotkeys);
        }