Beispiel #1
0
        private void OnDrop(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                // Note that you can have more than one file.
                string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);

                foreach (string file in files)
                {
                    FileAuthenticationView      fav  = new FileAuthenticationView();
                    FileAuthenticationViewModel favm = (FileAuthenticationViewModel)fav.DataContext;
                    favm.Path    = file;
                    favm.Encrypt = !string.Equals(Path.GetExtension(file), ".ivy", StringComparison.InvariantCultureIgnoreCase);
                    fav.Show();
                }
            }
        }
Beispiel #2
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            if (e.Args.Length > 0)
            {
                XmlSettingsService.Init(true);

                IEnumerable <string> args = e.Args;

                if (e.Args[0].Equals("-encrypt", StringComparison.InvariantCultureIgnoreCase))
                {
                    args = args.Skip(1);

                    foreach (string arg in args)
                    {
                        FileAuthenticationView      fav  = new FileAuthenticationView();
                        FileAuthenticationViewModel favm = (FileAuthenticationViewModel)fav.DataContext;
                        favm.Path = arg;
                        fav.ShowDialog();
                    }

                    Shutdown();
                }
                else
                {
                    if (e.Args[0].Equals("-decrypt", StringComparison.InvariantCultureIgnoreCase))
                    {
                        args = args.Skip(1);
                    }

                    foreach (string arg in args)
                    {
                        if (!File.Exists(arg))
                        {
                            continue;
                        }

                        FileAuthenticationView      fav  = new FileAuthenticationView();
                        FileAuthenticationViewModel favm = (FileAuthenticationViewModel)fav.DataContext;
                        favm.Path = arg;
                        fav.ShowDialog();
                    }

                    Shutdown();
                }

                return;
            }

            if (!IsDesigner)
            {
                ips = ManagedProcessService.Default;
                XmlSettingsService.Init(false);
                iss = XmlSettingsService.Default;

                IvyLockSettings ils = iss.OfType <IvyLockSettings>().First();
                switch (ils.Theme)
                {
                case Theme.Light:
                    Resources.MergedDictionaries.Clear();
                    Resources.MergedDictionaries.Add(new ResourceDictionary()
                    {
                        Source = new Uri("pack://application:,,,/IvyLock;component/Content/Theme.Light.xaml")
                    });
                    break;
                }

                ips.ProcessChanged += ProcessChanged;

                MainWindow = new SettingsView();
                MainWindow.Show();
                MainWindow.Activate();

                ni        = new WF.NotifyIcon();
                ni.Click += (s, e1) =>
                {
                    MainWindow?.Show();
                    MainWindow?.Activate();
                };

                ni.Icon        = System.Drawing.Icon.ExtractAssociatedIcon(Assembly.GetEntryAssembly().Location);
                ni.ContextMenu = new WF.ContextMenu();
                ni.ContextMenu.MenuItems.Add("Exit", (s, e2) =>
                {
                    SettingsViewModel svm = MainWindow.DataContext as SettingsViewModel;

                    svm.PropertyChanged += (s2, e3) =>
                    {
                        if (e3.PropertyName == "CurrentScreen" && svm.CurrentScreen == ViewModel.Screen.Main)
                        {
                            Shutdown();
                        }
                    };

                    svm.CurrentScreen = ViewModel.Screen.EnterPassword;

                    MainWindow.Show();
                    MainWindow.Activate();
                });
                ni.Visible = true;
            }
        }