예제 #1
0
        public MainWindow(MainViewModel mainViewModel, TaskbarPanel taskbarPanel)
        {
            try
            {
                DataContext = mainViewModel;
                ViewModel = mainViewModel;
            }
            catch (Exception e)
            {
                _log.ErrorException("Error setting context", e);

                MessageBox.Show(e.Message);
            }

            InitializeComponent();

            SetPosition();

            WindowPanels.Add(LoginViewControl);
            WindowPanels.Add(RegistrationViewControl);

            RegisterTaskbarCallbacks(taskbarPanel);

            LoginViewControl.RegistrationClick += Login_OnRegistrationClick;
            LoginViewControl.CloseLogin += Login_Close;
            LoginViewControl.LoginSuccessfulNotifier += ViewModel.LoginSuccessful;

            LoginViewControl.DataContext = ViewModel.LoginViewModel;

            RegistrationViewControl.ClosePanel += Registration_Close;
        }
예제 #2
0
        public MainWindow(MainViewModel mainViewModel, TaskbarPanel taskbarPanel)
        {
            try
            {
                DataContext = mainViewModel;
                ViewModel   = mainViewModel;
            }
            catch (Exception e)
            {
                _log.ErrorException("Error setting context", e);

                MessageBox.Show(e.Message);
            }

            InitializeComponent();

            SetPosition();

            WindowPanels.Add(LoginViewControl);
            WindowPanels.Add(RegistrationViewControl);

            RegisterTaskbarCallbacks(taskbarPanel);

            LoginViewControl.RegistrationClick       += Login_OnRegistrationClick;
            LoginViewControl.CloseLogin              += Login_Close;
            LoginViewControl.LoginSuccessfulNotifier += ViewModel.LoginSuccessful;

            LoginViewControl.DataContext = ViewModel.LoginViewModel;

            RegistrationViewControl.ClosePanel += Registration_Close;
        }
예제 #3
0
 public void RegisterTaskbarCallbacks(TaskbarPanel taskbarPanel)
 {
     ViewModel.ApplicationAddedNotifier += taskbarPanel.AddAppButton;
     ViewModel.ApplicationRemovedNotifier += taskbarPanel.RemoveAppButton;
     ViewModel.LogoutNotifier += taskbarPanel.RemoveAllAppButtons;
     PinToTaskbarClickNotifier += taskbarPanel.PinToTaskbarClickHandler;
     UninstallClickNotifier += taskbarPanel.UninstallAppClickHandler;
 }
예제 #4
0
 public void RegisterTaskbarCallbacks(TaskbarPanel taskbarPanel)
 {
     ViewModel.ApplicationAddedNotifier   += taskbarPanel.AddAppButton;
     ViewModel.ApplicationRemovedNotifier += taskbarPanel.RemoveAppButton;
     ViewModel.LogoutNotifier             += taskbarPanel.RemoveAllAppButtons;
     PinToTaskbarClickNotifier            += taskbarPanel.PinToTaskbarClickHandler;
     UninstallClickNotifier += taskbarPanel.UninstallAppClickHandler;
 }
예제 #5
0
        /// <summary>
        /// Place WPF window on Taskbar
        /// </summary>
        /// <param name="control">WPF window to be placed on taskbar</param>
        /// <param name="initialWidth">Initial width</param>
        public void InsertPanel(TaskbarPanel panel)
        {
            if (_taskBarIcon != null)
            {
                RemovePanel();
            }

            _taskBarIcon = new TaskbarHost(panel);

            _taskBarIcon.SetTaskBarControl(panel);
            panel.SetTaskBarHost(_taskBarIcon);

            _taskBarIcon.Setup();
        }
예제 #6
0
파일: App.xaml.cs 프로젝트: artgo/CefSharp
        private void InitializeMainWindowAndTaskbarPanel()
        {
            _taskbarPanel = CreateTaskbarPanel(_mainViewModel, ServiceLocator.UiHelper);
            _mainWindow = new MainWindow(_mainViewModel, _taskbarPanel);

            _taskbarPanel.ApplicationWindow = _mainWindow;
            _mainWindow.RegisterTaskbarCallbacks(_taskbarPanel);

            UpdateManager.Start(_mainWindow);
            AppSessionRefresher.Start(_mainWindow);

            _mainWindowReadyLatch.Unlock();

            if (!ServiceLocator.LocalStorage.IsLoadedFromFile)
            {
                ServiceLocator.UiHelper.PerformInUiThread(() => _mainWindow.Show());
                ResurrectBrowserWindows();
            }
        }
예제 #7
0
파일: App.xaml.cs 프로젝트: artgo/CefSharp
        private TaskbarPanel CreateTaskbarPanel(MainViewModel mainViewModel, IUiHelper uiHelper)
        {
            try
            {
                var taskbarPanel = new TaskbarPanel(_mainWindowReadyLatch, new NLogLogger("TaskbarPanel"), mainViewModel, uiHelper);
                taskbarPanel.InitializeButtons();

                return taskbarPanel;
            }
            catch (Exception ex)
            {
                _log.ErrorException("Failed to initialize taskbar module", ex);
                uiHelper.ShowMessage(ex.ToString());
                uiHelper.IgnoreException(_instanceMutex.ReleaseMutex);
                _instanceMutex = null;
                Current.Shutdown();
                Environment.Exit(0);
            }

            return null;
        }