コード例 #1
0
 private protected virtual void InitializeProperties()
 {
     ControllerView.SetCommentDisplayMode(CommentDisplayMode);
     ControllerView.SetShowUnfocusedComments(ShowUnfocusedComments);
     ControllerView.SetShowBlockGeometry(ShowBlockGeometry);
     ControllerView.SetShowLineNumber(ShowLineNumber);
 }
コード例 #2
0
        public void Initialize()
        {
            LanguageManager languageManager = LanguageManager.Instance;

            try
            {
                LoadSettings(SettingsFilePath);
                logger.Info("Loading settings was successful.");
                log(string.Format(Translate("LoadSettingsSuccess"), SettingsFilePath));
            }
            catch (Exception ex)
            {
                logger.Warning("Loading settings was unsuccessful.");
                string error = string.Format(Translate("LoadSettingsError"), SettingsFilePath) + Environment.NewLine + ex.Message;
                log(error);
                MessageBox.Show(error, Translate("Warning"));
            }
            bool vigem = VigemDevice.IsAvailable();
            bool scp   = ScpDevice.IsAvailable();

            if (vigem)
            {
                if (scp)
                {
                    logger.Info("SCPToolkit is installed only.");
                    log(Translate("ScpInstalled"));
                }
                installed = true;
            }
            else
            {
                if (scp)
                {
                    logger.Info("ViGEm is installed.");
                    log(Translate("VigemNotInstalled"));
                    installed = true;
                }
                else
                {
                    logger.Error("Neither ViGEm nor SCPToolkit is installed.");
                    string error = Translate("VigemAndScpNotInstalled");
                    log(error);
                    installed = false;
                    MessageBox.Show(error, Translate("Error"));
                }
            }
            Model.Settings = settings;
            RefreshGameControllers();

            var keyboardGameController = new GameController(new Devices.Input.Keyboard.Keyboard(), settings.GetMapper("Keyboard"));
            var controllerView         = new ControllerView(new ControllerViewModel(new ControllerModel(), keyboardGameController, log));

            controllerView.ViewModel.Model.CanStart = installed;
            Model.Controllers.Add(controllerView);
            log(string.Format(LanguageModel.Instance.Translate("ControllerConnected"), LanguageModel.Instance.Translate("Keyboard")));

            HandleArgs();
        }
コード例 #3
0
        private protected virtual void OnShowLineNumberPropertyChanged(DependencyPropertyChangedEventArgs e)
        {
            if (ControllerView != null)
            {
                ControllerView.SetShowLineNumber(ShowLineNumber);

                InvalidateMeasure();
                InvalidateVisual();
            }
        }
コード例 #4
0
        private protected virtual void OnShowUnfocusedCommentsPropertyChanged(DependencyPropertyChangedEventArgs e)
        {
            if (ControllerView != null)
            {
                ControllerView.SetShowUnfocusedComments(ShowUnfocusedComments);

                InvalidateMeasure();
                InvalidateVisual();
            }
        }
コード例 #5
0
        private protected virtual void OnShowBlockGeometryPropertyChanged(DependencyPropertyChangedEventArgs e)
        {
            if (ControllerView != null)
            {
                ControllerView.SetShowBlockGeometry(ShowBlockGeometry);

                InvalidateMeasure();
                InvalidateVisual();
            }
        }
コード例 #6
0
        private protected virtual void OnCommentDisplayModePropertyChanged(DependencyPropertyChangedEventArgs e)
        {
            if (ControllerView != null)
            {
                ControllerView.SetCommentDisplayMode(CommentDisplayMode);

                InvalidateMeasure();
                InvalidateVisual();
            }
        }
コード例 #7
0
        public void RemoveController(ControllerView controllerView)
        {
            var controller = controllerView.ViewModel.Model.Controller;

            controllerView.ViewModel.Dispose();
            controller.Dispose();
            Model.Controllers.Remove(controllerView);
            logger.Info($"{controller.ToString()} is disconnected.");
            log(string.Format(LanguageModel.Instance.Translate("ControllerDisconnected"), controller.DisplayName));
            Controllers.Instance.Remove(controller);
            settings.Mapping.RemoveAll(m => m.Id == controller.Mapper.Id);
        }
コード例 #8
0
        internal static void OpenSelectedNodeController()
        {
            view = ControllerView.Lock;

            nodeController = new NodeController(Properties.Settings.Default.VaultPath);
            nodeController.StartRemainingTask();
            GlobalClass.ChangeNodecontroller(Properties.Settings.Default.VaultPath);
            copycontroller = null;
            copycontroller = new CopyController();
            controllers    = new List <NodeController>();
            controllers.Add(nodeController);
            GlobalClass.TextChanged += LockDesign.TextChanged;
        }
コード例 #9
0
        public void AddController(InputMapper mapper)
        {
            var gameController = new GameController(mapper == null ? settings.CreateMapper(Guid.NewGuid().ToString()) : mapper);

            Controllers.Instance.Add(gameController);

            var controllerView = new ControllerView(new ControllerViewModel(new ControllerModel(), gameController, Model.IsAdmin, log));

            controllerView.ViewModel.Model.CanStart = installed;
            controllerView.RemoveClicked           += RemoveController;
            Model.Controllers.Add(controllerView);
            log(string.Format(LanguageModel.Instance.Translate("ControllerConnected"), gameController.DisplayName));
            if (mapper?.StartWhenConnected == true)
            {
                controllerView.ViewModel.Start();
                logger.Info($"{mapper.Name} controller is started automatically.");
            }
        }
コード例 #10
0
        public void RefreshGameControllers()
        {
            IEnumerable <SharpDX.DirectInput.DeviceInstance> instances = directInputDevices.GetInputDevices(Model.AllDevices);

            foreach (var controllerView in Model.Controllers.ToList())
            {
                var controller = controllerView.ViewModel.Model.Controller;
                if (controller.InputDevice is DirectDevice && (!instances.Any(x => x.InstanceGuid == ((DirectDevice)controller.InputDevice).Id) || !controller.InputDevice.Connected))
                {
                    controllerView.ViewModel.Dispose();
                    controller.Dispose();
                    Model.Controllers.Remove(controllerView);
                    logger.Info($"{controller.ToString()} is disconnected.");
                    log(string.Format(LanguageModel.Instance.Translate("ControllerDisconnected"), controller.DisplayName));
                }
            }
            foreach (var instance in instances)
            {
                if (!Model.Controllers.Select(c => c.ViewModel.Model.Controller.InputDevice).OfType <DirectDevice>().Any(d => d.Id == instance.InstanceGuid))
                {
                    var device = directInputDevices.CreateDirectDevice(instance);
                    if (device == null)
                    {
                        continue;
                    }
                    InputMapperBase mapper         = settings.GetMapper(device.ToString());
                    GameController  controller     = new GameController(device, mapper);
                    var             controllerView = new ControllerView(new ControllerViewModel(new ControllerModel(), controller, log));
                    controllerView.ViewModel.Model.CanStart = installed;
                    Model.Controllers.Add(controllerView);
                    device.Disconnected -= DispatchRefreshGameControllers;
                    device.Disconnected += DispatchRefreshGameControllers;
                    logger.Info($"{controller.ToString()} is connected.");
                    log(string.Format(LanguageModel.Instance.Translate("ControllerConnected"), controller.DisplayName));
                    if (controller.Mapper.StartWhenConnected)
                    {
                        controllerView.ViewModel.Start();
                        logger.Info($"{controller.ToString()} controller is started automatically.");
                    }
                }
            }
        }
コード例 #11
0
        public void Initialize(Action <string> log)
        {
            try
            {
                RegistryKey RegKeyDelCH = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\HidGuardian\\Parameters\\Whitelist");
                if (RegKeyDelCH == null)
                {
                    RegKeyDelCH.Close();
                    RegistryKey RegKeyAdd = Registry.LocalMachine.CreateSubKey("SYSTEM\\CurrentControlSet\\Services\\HidGuardian\\Parameters\\Whitelist\\" + pid);
                }
                else
                {
                    RegKeyDelCH.Close();
                    RegistryKey RegKeyDel = Registry.LocalMachine;
                    RegKeyDel.DeleteSubKeyTree("SYSTEM\\CurrentControlSet\\Services\\HidGuardian\\Parameters\\Whitelist");
                    RegKeyDel.Close();
                    RegistryKey RegKeyAdd = Registry.LocalMachine.CreateSubKey("SYSTEM\\CurrentControlSet\\Services\\HidGuardian\\Parameters\\Whitelist\\" + pid);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            this.log = log;
            LanguageManager languageManager = LanguageManager.Instance;

            try
            {
                LoadSettings(SettingsFilePath);
                logger.Info("Loading settings was successful.");
                log(string.Format(Translate("LoadSettingsSuccess"), SettingsFilePath));
            }
            catch (Exception ex)
            {
                logger.Warning("Loading settings was unsuccessful.");
                string error = string.Format(Translate("LoadSettingsError"), SettingsFilePath) + Environment.NewLine + ex.Message;
                log(error);
                MessageBox.Show(error, Translate("Warning"));
            }
            bool vigem = VigemDevice.IsAvailable();
            bool scp   = ScpDevice.IsAvailable();

            if (vigem)
            {
                if (scp)
                {
                    logger.Info("SCPToolkit is installed only.");
                    log(Translate("ScpInstalled"));
                }
                installed = true;
            }
            else
            {
                if (scp)
                {
                    logger.Info("ViGEm is installed.");
                    log(Translate("VigemNotInstalled"));
                    installed = true;
                }
                else
                {
                    logger.Error("Neither ViGEm nor SCPToolkit is installed.");
                    string error = Translate("VigemAndScpNotInstalled");
                    log(error);
                    installed = false;
                    MessageBox.Show(error, Translate("Error"));
                }
            }
            Model.Settings = settings;
            RefreshGameControllers();

            var keyboardGameController = new GameController(new Devices.Input.Keyboard.Keyboard(), settings.GetMapper("Keyboard"));
            var controllerView         = new ControllerView(new ControllerViewModel(new ControllerModel(), keyboardGameController, log));

            controllerView.ViewModel.Model.CanStart = installed;
            Model.Controllers.Add(controllerView);
            log(string.Format(LanguageModel.Instance.Translate("ControllerConnected"), LanguageModel.Instance.Translate("Keyboard")));

            HandleArgs();
        }
コード例 #12
0
 internal static void SetView(ControllerView previousViewState)
 {
     view = previousViewState;
     GlobalClass.Invalidate();
 }
コード例 #13
0
 internal static void ShowMenu()
 {
     view = ControllerView.Menu;
     GlobalClass.Invalidate();
 }
コード例 #14
0
 internal static void Lock()
 {
     view = ControllerView.Lock;
     GlobalClass.Invalidate();
 }
コード例 #15
0
 internal static void KeyDown(object sender, KeyEventArgs e)
 {
     if (view == ControllerView.NodeController)
     {
         if (e.KeyCode == Keys.Control || e.Modifiers == Keys.Control)
         {
             GlobalClass.MultiSelect = true;
             if (e.KeyCode == Keys.I)
             {
                 Controller.AddNewImages();
             }
             else if (e.KeyCode == Keys.N)
             {
                 Controller.AddNewNode();
             }
             else if (e.KeyCode == Keys.D)
             {
                 Controller.AddFolders();
             }
             else if (e.KeyCode == Keys.R)
             {
                 Controller.OpenRecycleBin();
             }
             else if (e.KeyCode == Keys.A)
             {
                 Controller.SelectAll();
             }
             else if (e.KeyCode == Keys.C)
             {
                 Controller.Copy();
             }
             else if (e.KeyCode == Keys.X)
             {
                 Controller.Cut();
             }
             else if (e.KeyCode == Keys.V)
             {
                 Controller.Paste();
             }
             else if (e.KeyCode == Keys.O)
             {
                 Controller.GotoOriginalNodeFromLinkedEntity();
             }
             else if (e.KeyCode == Keys.Q)
             {
                 Controller.ToggleGraphicsQuality();
             }
             else if (e.KeyCode == Keys.T)
             {
                 Controller.SetCoverImage();
             }
             else if (e.KeyCode == Keys.F5)
             {
                 Controller.Refresh(true);
             }
             else if (e.KeyCode == Keys.Right)
             {
                 Controller.Right();
             }
             else if (e.KeyCode == Keys.Left)
             {
                 Controller.Left();
             }
             else if (e.KeyCode == Keys.Up)
             {
                 Controller.Up();
             }
             else if (e.KeyCode == Keys.Down)
             {
                 Controller.Down();
             }
             else if (e.KeyCode == Keys.F)
             {
                 Controller.ShowFavorite();
             }
             else if (e.KeyCode == Keys.Tab)
             {
                 Controller.DeleteCustomFolder();
             }
             else if (e.KeyCode == Keys.W)
             {
                 Controller.OpenWriter();
             }
             else if (e.KeyCode == Keys.P)
             {
                 Controller.OpenPasswords();
             }
             else if (e.KeyCode == Keys.S)
             {
                 Controller.OpenAllImages();
             }
         }
         else if (e.KeyCode == Keys.Alt || e.Modifiers == Keys.Alt)
         {
             if (e.KeyCode == Keys.Enter)
             {
                 Controller.ShowProperties();
             }
         }
         else if (e.KeyCode == Keys.Back)
         {
             Controller.GoBack();
         }
         else if (e.KeyCode == Keys.Enter)
         {
             Controller.EnterDown();
         }
         else if (e.KeyCode == Keys.Right)
         {
             Controller.Right();
         }
         else if (e.KeyCode == Keys.Left)
         {
             Controller.Left();
         }
         else if (e.KeyCode == Keys.F5)
         {
             Controller.Refresh();
         }
         else if (e.KeyCode == Keys.Escape)
         {
             Hide();
         }
         else if (e.KeyCode == Keys.Delete)
         {
             Controller.Delete();
         }
         else if (e.KeyCode == Keys.Home)
         {
             Controller.RestoreFromRecyleBin();
         }
         else if (e.KeyCode == Keys.F2)
         {
             Controller.Rename();
         }
         else if (e.KeyCode == Keys.F6)
         {
             Controller.AddToFavorite();
         }
         else if (e.KeyCode == Keys.Up)
         {
             Controller.Up();
         }
         else if (e.KeyCode == Keys.Down)
         {
             Controller.Down();
         }
         else if (e.KeyCode == Keys.Tab)
         {
             Controller.AddCustomFolder();
         }
         else if (e.KeyCode == Keys.F12)
         {
             OpenNodeControllerSettings();
         }
         else if (e.KeyCode == Keys.PageUp)
         {
             Controller.ChangeOpenedNodeControllers(false);
         }
         else if (e.KeyCode == Keys.PageDown)
         {
             Controller.ChangeOpenedNodeControllers(true);
         }
         else if (e.KeyCode == Keys.Space)
         {
             view = ControllerView.Lock;
         }
     }
     else if (view == ControllerView.Lock)
     {
         LockDesign.KeyDown(e.KeyCode);
     }
     else if (view == ControllerView.Menu)
     {
         Menu.KeyDown(e.KeyCode);
     }
 }
コード例 #16
0
        public void Initialize(Action <string> log)
        {
            this.log = log;
            LanguageManager languageManager = LanguageManager.Instance;

            try
            {
                LoadSettings(SettingsFilePath);
                logger.Info("Loading settings was successful.");
                log(string.Format(Translate("LoadSettingsSuccess"), SettingsFilePath));
            }
            catch (Exception ex)
            {
                logger.Warning("Loading settings was unsuccessful.");
                string error = string.Format(Translate("LoadSettingsError"), SettingsFilePath) + Environment.NewLine + ex.Message;
                log(error);
                MessageBox.Show(error, Translate("Warning"));
            }
            if (settings.HidGuardianEnabled)
            {
                try
                {
                    HidGuardianManager.Instance.ResetPid(pid);
                    Model.IsAdmin = true;
                    logger.Info("HidGuardian registry is set");
                    log(string.Format(Translate("HidGuardianEnabledSuccessfully"), pid.ToString()));
                }
                catch (UnauthorizedAccessException)
                {
                    Model.IsAdmin = false;
                    logger.Warning("Not running in elevated mode.");
                    log(Translate("HidGuardianNotAdmin"));
                }
                catch (Exception ex)
                {
                    logger.Error(ex);
                    MessageBox.Show(ex.ToString());
                }
            }
            bool vigem = VigemDevice.IsAvailable();
            bool scp   = ScpDevice.IsAvailable();

            if (vigem)
            {
                if (scp)
                {
                    logger.Info("SCPToolkit is installed only.");
                    log(Translate("ScpInstalled"));
                }
                installed = true;
            }
            else
            {
                if (scp)
                {
                    logger.Info("ViGEm is installed.");
                    log(Translate("VigemNotInstalled"));
                    installed = true;
                }
                else
                {
                    logger.Error("Neither ViGEm nor SCPToolkit is installed.");
                    string error = Translate("VigemAndScpNotInstalled");
                    log(error);
                    installed = false;
                    MessageBox.Show(error, Translate("Error"));
                }
            }
            Model.Settings = settings;
            RefreshGameControllers();

            logger.Debug("Creating keyboard controller");
            var keyboardGameController = new GameController(new Devices.Input.Keyboard.Keyboard(), settings.GetMapper("Keyboard"));
            var controllerView         = new ControllerView(new ControllerViewModel(new ControllerModel(), keyboardGameController, Model.IsAdmin, log));

            controllerView.ViewModel.Model.CanStart = installed;
            Model.Controllers.Add(controllerView);
            log(string.Format(LanguageModel.Instance.Translate("ControllerConnected"), LanguageModel.Instance.Translate("Keyboard")));
            logger.Info("Keyboard controller is connected");

            HandleArgs();
        }