public void Execute(object parameter)
 {
     var p = GetParameter(parameter).Value;
     DesktopPanelToolService.LoadLayoutSettings();
     if (p && AppSettings.EnableNotifications)
         NotificationBarService.Notify("settings have been loaded");
 }
예제 #2
0
        public void Execute(object parameter)
        {
            var panel = DesktopPanelToolService.AddDesktopPanel(null, DockName.None);

            panel.ViewModel.Title = DesktopPanelToolService.GetNewPanelDefaultTitle();
            panel.Show();
        }
예제 #3
0
        public void Execute(object parameter)
        {
            var p    = GetParameter(parameter).Value;
            var path = AppSettings.SettingsSaveLastPath;

            if (path == null)
            {
                path = Path.Combine(
                    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
                    , AppSettings.AppLocalDataFolderName);
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
            }

            var title = "Save layout settings";
            var dial  = new OpenFileDialog()
            {
                InitialDirectory = path,
                DefaultExt       = AppSettings.SettingsFilesExt,
                Filter           = AppSettings.SettingsFileDialogFilter,
                CheckFileExists  = false,
                CheckPathExists  = true,
                Title            = title
            };

            if (dial.ShowDialog() == DialogResult.OK)
            {
                var fn = dial.FileName;
                if (Path.GetExtension(fn) == string.Empty)
                {
                    fn += AppSettings.SettingsFilesExt;
                }
                if (!File.Exists(fn) ||
                    w.MessageBox.Show(
                        $"File {fn} already exists. Replace it ?",
                        title,
                        MessageBoxButton.OKCancel,
                        MessageBoxImage.Question,
                        MessageBoxResult.OK) == MessageBoxResult.OK)
                {
                    DesktopPanelToolService.SaveSettingsAs(fn);
                    if (p && AppSettings.EnableNotifications)
                    {
                        NotificationBarService.Notify("settings have been saved");
                    }
                }
            }
        }
예제 #4
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            DesktopPanelToolWindow = new DesktopPanelToolWindow();

            bool settingsStorageMissing = false;
            bool reinitializeSettings   = false;

            try
            {
                if (!DesktopPanelToolService.AppSettingsFileExists)
                {
                    DesktopPanelToolService.SaveAppSettings();
                }
                if (DesktopPanelToolService.UserSettingsFileExists)
                {
                    DesktopPanelToolService.LoadSettings();
                    reinitializeSettings = DesktopPanelToolService
                                           .DesktopPanelToolViewModel
                                           .PanelsViewModels.Count == 0;
                }
                else
                {
                    settingsStorageMissing = true;
                    reinitializeSettings   = true;
                }
            } catch (Exception ex)
            {
#if DEBUG
                DesktopPanelTool.Lib.Debug.WriteLine($"{ex}");
#endif

                reinitializeSettings = true;
            }

            if (reinitializeSettings || settingsStorageMissing)
            {
                DesktopPanelToolService.InitializeDefaultSettings();
            }

            InitializeServices();

            DesktopPanelToolService.BootstrapUI();

            //DesktopPanelToolWindow.Show();
        }
        void OnDeserialized(StreamingContext context)
        {
            var widgets = new List <WidgetBaseViewModel>(WidgetsViewModels);

            WidgetsViewModels.Clear();
            foreach (var widget in widgets)
            {
                AddWidget(widget.View);
            }
            DesktopPanelToolService.AddDesktopPanel(
                View,
                _dock,
                _dockScreen,
                _isPined,
                _isCollapsed
                );
        }
예제 #6
0
        protected override void OnExit(ExitEventArgs e)
        {
            try
            {
                base.OnExit(e);
                DesktopPanelToolService.SaveSettings();
            }
#if DEBUG
            catch (Exception ex)
            {
                DesktopPanelTool.Lib.Debug.WriteLine($"{ex}");
#else
            catch (Exception) {
#endif
            }
            NotificationBarService.HideNotifyIcon();
            // fix visual studio designer exception (bug)
            Environment.Exit(0);
        }
예제 #7
0
        public void Execute(object parameter)
        {
            var p = GetParameter(parameter);

            DesktopPanelToolService.DropWidgetOnDesktop((WidgetControl)p.DataObject.GetData(typeof(WidgetControl)), p.Target, p.DragEventArgs);
        }
        public void Execute(object parameter)
        {
            var p = GetParameter(parameter);

            DesktopPanelToolService.CloseDockPanel(p);
        }
예제 #9
0
 void InitializeServices()
 {
     DesktopPanelToolService.Initialize();
     NotificationBarService.Initialize(DesktopPanelToolService.DesktopPanelToolViewModel);
 }
 public void Close()
 {
     DesktopPanelToolService.CloseDockPanel(View);
 }