Пример #1
0
        public override void OnWindowLoaded()
        {
            bool requiresCompiler = false;

            foreach (var snippet in SnippetsAddinConfiguration.Current.Snippets)
            {
                if (!requiresCompiler && !string.IsNullOrEmpty(snippet.SnippetText) &&
                    (snippet.SnippetText.Contains("{{") || snippet.SnippetText.Contains("@")))
                {
                    requiresCompiler = true;
                }


                if (!string.IsNullOrEmpty(snippet.KeyboardShortcut))
                {
                    var        ksc = snippet.KeyboardShortcut.ToLower();
                    KeyBinding kb  = new KeyBinding();

                    if (ksc.Contains("alt"))
                    {
                        kb.Modifiers = ModifierKeys.Alt;
                    }
                    if (ksc.Contains("shift"))
                    {
                        kb.Modifiers |= ModifierKeys.Shift;
                    }
                    if (ksc.Contains("ctrl") || ksc.Contains("ctl"))
                    {
                        kb.Modifiers |= ModifierKeys.Control;
                    }

                    string key =
                        ksc.Replace("+", "")
                        .Replace("-", "")
                        .Replace("_", "")
                        .Replace(" ", "")
                        .Replace("alt", "")
                        .Replace("shift", "")
                        .Replace("ctrl", "")
                        .Replace("ctl", "");

                    key = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(key);
                    if (!string.IsNullOrEmpty(key))
                    {
                        KeyConverter k = new KeyConverter();
                        kb.Key = (Key)k.ConvertFromString(key);
                    }

                    // Whatever command you need to bind to
                    kb.Command = new CommandBase((s, e) => InsertSnippet(snippet),
                                                 (s, e) => Model.IsEditorActive);

                    Model.Window.InputBindings.Add(kb);
                }
            }

            if (requiresCompiler)
            {
                RoslynLifetimeManager.WarmupRoslyn();
            }
        }
        /// <summary>
        /// Creates a keyboard shortcut from a
        /// </summary>
        /// <param name="ksc"></param>
        /// <param name="command"></param>
        /// <returns>KeyBinding - Window.InputBindings.Add(keyBinding)</returns>
        public static KeyBinding CreateKeyboardShortcutBinding(string ksc, ICommand command,
                                                               object commandParameter = null)
        {
            if (string.IsNullOrEmpty(ksc))
            {
                return(null);
            }

            try
            {
                KeyBinding kb = new KeyBinding();
                ksc = ksc.ToLower();

                if (ksc.Contains("alt"))
                {
                    kb.Modifiers = ModifierKeys.Alt;
                }
                if (ksc.Contains("shift"))
                {
                    kb.Modifiers |= ModifierKeys.Shift;
                }
                if (ksc.Contains("ctrl") || ksc.Contains("ctl"))
                {
                    kb.Modifiers |= ModifierKeys.Control;
                }
                if (ksc.Contains("win"))
                {
                    kb.Modifiers |= ModifierKeys.Windows;
                }

                string key =
                    ksc.Replace("+", "")
                    .Replace("-", "")
                    .Replace("_", "")
                    .Replace(" ", "")
                    .Replace("alt", "")
                    .Replace("shift", "")
                    .Replace("ctrl", "")
                    .Replace("ctl", "");

                key = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(key);
                if (!string.IsNullOrEmpty(key))
                {
                    KeyConverter k = new KeyConverter();
                    kb.Key = (Key)k.ConvertFromString(key);
                }

                // Whatever command you need to bind to
                kb.Command = command;
                if (commandParameter != null)
                {
                    kb.CommandParameter = commandParameter;
                }

                return(kb);
            }
            // deal with invalid bindings - ignore them
            catch (Exception ex)
            {
                mmApp.Log("Unable to assign key binding: " + ksc, ex);
                return(null);
            }
        }
        /// <summary>
        /// Spracovanie stlačených tlačítok
        /// </summary>
        /// <param name="sender">Sender object</param>
        /// <param name="e">KeyEventArgs</param>
        private void Window_KeyDown(object sender, KeyEventArgs e)
        {
            bool shiftPressed = (Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift;

            // Vypíš číslo
            if (!shiftPressed && OutputProcessor.IsNumericKey(e.Key))
            {
                KeyConverter keyConverter = new KeyConverter();
                this.outputProcessor.PrintNumber(keyConverter.ConvertToString(e.Key));
            }

            // Vypíš desatinnú čiarku
            if (!shiftPressed && (e.Key == Key.Decimal || e.Key == Key.OemComma || e.Key == Key.OemPeriod))
            {
                this.outputProcessor.PrintComma();
            }

            // Vypočítaj výsledok
            if (e.Key == Key.Enter || e.Key == Key.Return || !shiftPressed && e.Key == Key.OemPlus)
            {
                this.mathProcessor.CalculateResult(this.GetNumericAns(), false, true);
            }

            // Odstráň posledné číslo pomocou backspace
            if (e.Key == Key.Back)
            {
                this.outputProcessor.Backspace();
            }

            // Add
            if (e.Key == Key.Add || shiftPressed && e.Key == Key.OemPlus)
            {
                this.mathProcessor.ProcessAdd(this.GetNumericAns());
            }

            // Substract
            if (e.Key == Key.Subtract || !shiftPressed && e.Key == Key.OemMinus)
            {
                this.mathProcessor.ProcessSubstract(this.GetNumericAns());
            }

            // Multiply
            if (e.Key == Key.Multiply || shiftPressed && e.Key == Key.D8)
            {
                this.mathProcessor.ProcessMultiply(this.GetNumericAns());
            }

            // Divide
            if (e.Key == Key.Divide || !shiftPressed && e.Key == Key.OemQuestion)
            {
                this.mathProcessor.ProcessDivide(this.GetNumericAns());
            }

            // Factorial (Fact)
            if (shiftPressed && e.Key == Key.D1)
            {
                this.mathProcessor.ProcessFact(this.GetNumericAns());
            }

            // Power (Pow)
            if (shiftPressed && e.Key == Key.D6)
            {
                this.mathProcessor.ProcessPow(this.GetNumericAns());
            }
        }
Пример #4
0
        public static Macro LoadMacroFile(string[] file)
        {
            if (file.Length > 0)
            {
                string[] args = file[0].Split(' ');

                if (args.Length <= 1)
                {
                    args = new string[2] {
                        args[0], "ÿ"
                    };
                }
                if (args[0].ToLower().Contains("macro"))
                {
                    Macro macro = new Macro(KeyConverter.Name2WinFormKey(args[1]));

                    if (args[0].ToLower().Contains("mouse"))
                    {
                        macro.Type       = MacroType.Mouse;
                        macro.TriggerKey = KeyConverter.Name2WinFormKey("" + args[1][0]);
                    }
                    else if (args[0].ToLower().Contains("winopen"))
                    {
                        macro.Type = MacroType.WinOpen;
                    }
                    else if (args[0].ToLower().Contains("startup"))
                    {
                        macro.Type = MacroType.Startup;
                    }
                    else if (args[0].ToLower().Contains("idle"))
                    {
                        macro.Type = MacroType.IDLE;
                        try { macro.idletime = Int32.Parse(args[1]); }
                        catch { }
                    }
                    else if (args[0].ToLower().Contains("rewrite"))
                    {
                        macro.Type = MacroType.RewriteKeyboard;
                        string[] tmp = args[1].Split("+".ToCharArray());
                        foreach (string k in tmp)
                        {
                            Keys result = KeyConverter.Name2WinFormKey(k);
                            if (result != Keys.None)
                            {
                                macro.TriggerKeys.Add(result);
                            }
                        }
                    }

                    if (args[0].ToLower().Contains("super"))
                    {
                        macro.Override = true;
                    }

                    if (args.Length >= 3)
                    {
                        macro.targetapp = args[2];
                    }

                    for (int i = 1; i < file.Length; i++)
                    {
                        args = file[i].Split(' ');
                        if (args.Length >= 2)
                        {
                            int   time = 0;
                            byte  code = 0;
                            Point P    = Point.Empty;
                            KeySender.MouseButton button;
                            switch (args[0].ToLower())
                            {
                            case "key":
                                code = KeyConverter.Name2Key(args[1]);
                                if (code != 0)
                                {
                                    macro.Add(new ActionKeyStroke(code));
                                }
                                break;

                            case "keydown":
                                code = KeyConverter.Name2Key(args[1]);
                                if (code != 0)
                                {
                                    macro.Add(new ActionKeyPress(code));
                                }
                                break;

                            case "keyup":
                                code = KeyConverter.Name2Key(args[1]);
                                if (code != 0)
                                {
                                    macro.Add(new ActionKeyRelease(code));
                                }
                                break;

                            case "mouse":
                                button = KeyConverter.Name2MouseKey(args[1]);
                                if (args.Length >= 3 && ParsePoint(args[2], ref P))
                                {
                                    macro.Add(new ActionMouseClick(button, P));
                                }
                                else
                                {
                                    macro.Add(new ActionMouseClick(button));
                                }
                                break;

                            case "mousedown":
                                button = KeyConverter.Name2MouseKey(args[1]);
                                if (args.Length >= 3 && ParsePoint(args[2], ref P))
                                {
                                    macro.Add(new ActionMousePress(button, P));
                                }
                                else
                                {
                                    macro.Add(new ActionMousePress(button));
                                }
                                break;

                            case "mouseup":
                                button = KeyConverter.Name2MouseKey(args[1]);
                                if (args.Length >= 3 && ParsePoint(args[2], ref P))
                                {
                                    macro.Add(new ActionMouseRelease(button, P));
                                }
                                else
                                {
                                    macro.Add(new ActionMouseRelease(button));
                                }
                                break;

                            case "sleep":
                                try { time = Int32.Parse(args[1]); }
                                catch { }
                                if (time != 0)
                                {
                                    macro.Add(new ActionSleep(time));
                                }
                                break;

                            case "run":
                                try { macro.Add(new ActionRun(file[i].Substring(4))); }
                                catch { }
                                break;

                            case "paste":
                                try { macro.Add(new ActionPaste(file[i].Substring(6))); }
                                catch { }
                                break;

                            case "close":
                                try { macro.Add(new ActionClose(file[i].Substring(6))); }
                                catch { }
                                break;

                            case "kill":
                                macro.Add(new ActionKill(args[1]));
                                break;
                            }
                        }
                    }

                    return(macro);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Пример #5
0
        private void visior_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.F6)
            {
                popi.IsOpen = false;
                LookUpSelector contragenSelector = new LookUpSelector(DataContext as SaldoItem);
                contragenSelector.ShowDialog();
                if (contragenSelector.DialogResult.HasValue && contragenSelector.DialogResult.Value)
                {
                    var data = contragenSelector.dg.ItemsSource2D as ObservableCollection <ObservableCollection <string> >;
                    var dat  = DataContext as SaldoItem;
                    if (data != null)
                    {
                        if (contragenSelector.dg.SelectedIndex != -1)
                        {
                            var dat1 = data[contragenSelector.dg.SelectedIndex + 1];
                            if (dat != null)
                            {
                                dat.Value     = dat1[0];
                                dat.Lookupval = dat1[1];
                                if (dat1.Count > 4)
                                {
                                    dat.Bulstad = dat1[3];
                                    dat.Vat     = dat1[4];
                                }
                                dat.LiD = dat.GetLookUpId(0);
                                OnRefreshExecuted(new FastLookupEventArgs(dat));
                            }
                        }
                    }
                }
                e.Handled = true;
                return;
            }


            if (e.Key == Key.Enter)
            {
                var sendy = sender as TextBoxEx;
                if (sendy != null && string.IsNullOrWhiteSpace(sendy.Text))
                {
                    var dat = DataContext as SaldoItem;
                    if (dat != null)
                    {
                        dat.Value     = "";
                        dat.Lookupval = "";
                    }
                }
            }
            var    _keyConv   = new KeyConverter();
            string keyPressed = _keyConv.ConvertToString(e.Key);

            if (keyPressed != null && keyPressed.Length == 1 || keyPressed.Contains("NumPad"))
            {
                if (char.IsLetterOrDigit(keyPressed[0]))
                {
                    {
                        searcher.Visibility = Visibility.Visible;
                        visior.Visibility   = Visibility.Hidden;
                        searcher.Text       = "";
                        searcher.Focus();
                    }
                }
            }
        }
Пример #6
0
 public _MultiKeyGestureConverter()
 {
     _keyConverter          = new KeyConverter();
     _modifierKeysConverter = new ModifierKeysConverter();
 }
Пример #7
0
        /// <summary>
        ///   The Controller is notified about key down events
        /// </summary>
        private void InputKeys(KeyEventArgs e, bool controlDown,
                               bool shiftDown)
        {
            var anyKeyConverter = new KeyConverter();

            Log.Info(anyKeyConverter.ConvertToString(e.Key) + " Pressed");

            if ((controlDown) || (shiftDown) || (!_attachedView.ActiveControlFocused()))
            {
                return;
            }
            var isNumeric = (e.Key >= Key.D0 && e.Key <= Key.D9);
            var isNumPad  = (e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal;
            var value     = string.Empty;

            if (isNumeric)
            {
                var converter = new KeyConverter();
                value = converter.ConvertToString(e.Key);
            }

            if (e.Key == Key.OemComma)
            {
                value = ",";
            }
            if (e.Key == Key.OemPeriod)
            {
                value = ".";
            }
            if (e.Key == Key.R)
            {
                value = "r";
            }
            if (e.Key == Key.OemMinus)
            {
                value = "-";
            }
            if (isNumPad)
            {
                var converter = new KeyConverter();
                var result    = converter.ConvertToString(e.Key);
                if (result != null)
                {
                    var numKey = result[6];
                    value = numKey.ToString();
                }
            }
            _commandLineView.EditTextBox.Text += value;
            if (e.Key == Key.Back)
            {
                if (_commandLineView.EditTextBox.Text != "")
                {
                    _commandLineView.EditTextBox.Text = _commandLineView.EditTextBox.Text.Substring(0,
                                                                                                    _commandLineView.
                                                                                                    EditTextBox.Text
                                                                                                    .Length - 1);
                }
            }
            if (e.Key == Key.Enter)
            {
                _commandLineView.TextBoxKeyDown(this, e);
            }
        }
Пример #8
0
 public void SetKeyAlias(object input, object key)
 {
     KeyConverter.SetKeyAlias(input, key);
 }
Пример #9
0
            public bool IsReleased(object input)
            {
                if (!KeyConverter.ContainsInput(input))
                {
                    return(false);
                }

                return(MouseHardware.CurrentButtonUpEvent(KeyConverter.GetKey(input)) && MouseHardware.OldButtonDownEvent(KeyConverter.GetKey(input)));
            }
Пример #10
0
 public HotkeyConverter()
 {
     _modifierKeyConverter = new ModifierKeysConverter();
     _keyConverter         = new KeyConverter();
 }
Пример #11
0
 public override void Initialize()
 {
     KeyConverter = new KeyConverter();
 }
        public SettingsWindow(HookManager hooks)
        {
            InitializeComponent();

            _hooks = hooks;

            KeybindingsToggle.IsChecked      = hooks.Listening;
            TimerKeybindingsToggle.IsChecked = Settings.Default.TimerKeys;
            DigitsBox.SelectedIndex          = Settings.Default.MiliDigits;
            DelayBox.Text = Settings.Default.UpdateDelay.ToString();

            Startbind.Text = Settings.Default.StartKey;
            Resetbind.Text = Settings.Default.ResetKey;

            KeybindingsToggle.Checked += (sender, e) =>
            {
                Settings.Default.GlobalKeybinds = true;
                _hooks.Listen();
            };

            KeybindingsToggle.Unchecked += (sender, e) =>
            {
                Settings.Default.GlobalKeybinds = false;
                _hooks.StopListening();
            };

            DigitsBox.SelectionChanged += (sender, e) =>
            {
                // Jesus christ this is ugly and smells, but ey, it works
                int digits = int.Parse(((ComboBoxItem)DigitsBox.SelectedItem).Content.ToString());
                Settings.Default.MiliDigits = digits;
                NotifySubscribers();
            };

            DelayBox.TextChanged += (sender, e) =>
            {
                int milli;
                if (int.TryParse(DelayBox.Text, out milli))
                {
                    Settings.Default.UpdateDelay = milli;
                    NotifySubscribers();
                }
            };

            Startbind.KeyUp += (sender, e) =>
            {
                if (Startbind.IsFocused)
                {
                    KeyConverter keyConverter = new KeyConverter();
                    _hooks.DisableHook((Key)keyConverter.ConvertFromString(Settings.Default.StartKey));
                    string startKey = keyConverter.ConvertToString(e.Key);
                    Startbind.Text            = startKey;
                    e.Handled                 = true;
                    Settings.Default.StartKey = startKey;
                    NotifySubscribers();
                }
            };

            Resetbind.KeyUp += (sender, e) =>
            {
                if (Resetbind.IsFocused)
                {
                    KeyConverter keyConverter = new KeyConverter();
                    _hooks.DisableHook((Key)keyConverter.ConvertFromString(Settings.Default.ResetKey));
                    string resetKey = keyConverter.ConvertToString(e.Key);
                    Resetbind.Text            = resetKey;
                    e.Handled                 = true;
                    Settings.Default.ResetKey = resetKey;
                    NotifySubscribers();
                }
            };

            this.Closed += (sender, e) => Settings.Default.Save();

            TimerKeybindingsToggle.Checked += (sender, e) =>
            {
                Settings.Default.TimerKeys = true;
                NotifySubscribers();
            };
            TimerKeybindingsToggle.Unchecked += (sender, e) =>
            {
                Settings.Default.TimerKeys = false;
                NotifySubscribers();
            };
        }
Пример #13
0
        public void read_settings()
        {
            KeyConverter k = new KeyConverter();

            if (File.Exists("ap_settings.txt"))
            {
                string[] settings = File.ReadAllLines("ap_settings.txt");
                string   ahkwhole = "";
                foreach (string st in settings)
                {
                    if (st.Contains("hp_button"))
                    {
                        cmb_hp.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }
                    else if (st.Contains("sp_button"))
                    {
                        cmb_sp.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }
                    else if (st.Contains("hp_percent"))
                    {
                        textBox1.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }
                    else if (st.Contains("sp_percent"))
                    {
                        textBox2.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }
                    else if (st.Contains("status_button"))
                    {
                        // cmb_status.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }
                    else if (st.Contains("hold_button"))
                    {
                        // cmb_hold.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }
                    else if (st.Contains("gloom_button"))
                    {
                        cmb_gloom.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }
                    else if (st.Contains("aspd_button"))
                    {
                        cmb_aspd.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }

                    /*else if (st.Contains("rcx_color"))
                     * {
                     *  tb_rcx.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                     * }*/

                    // foods
                    else if (st.Contains("agiscroll_button"))
                    {
                        cmb_agi.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }
                    else if (st.Contains("blesscroll_button"))
                    {
                        cmb_bless.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }
                    else if (st.Contains("ap_delay"))
                    {
                        tb_apDelay.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }
                    else if (st.Contains("autobuff_delay"))
                    {
                        tb_abuffDelay.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }
                    else if (st.Contains("autobuff_read_delay"))
                    {
                        tb_abuffReadDelay.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }
                    else if (st.Contains("spam_delay"))
                    {
                        tb_spamDelay.Text = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                    }
                    else if (st.Contains("ahk_list"))
                    {
                        all_keys.Clear();
                        all_keysB.Clear();
                        ahkwhole = st.Split(new string[] { " = " }, StringSplitOptions.None)[1];
                        foreach (string a in ahkwhole.Split(','))
                        {
                            if (a.Length != 0)
                            {
                                if (a.Contains("mc"))
                                {
                                    Key _ahk = (Key)k.ConvertFromString(a.Split(':')[0]);
                                    all_keys.Add(_ahk);
                                }
                                else
                                {
                                    Key _ahk = (Key)k.ConvertFromString(a.Split(':')[0]);
                                    all_keysB.Add(_ahk);
                                }
                                lb_ahk.Items.Add(a);
                            }
                        }
                    }
                }
                readSettingsFromUI();
            }
            else
            {
                string allahk = "";
                all_keys.Clear();
                all_keysB.Clear();
                foreach (string ahkl in lb_ahk.Items)
                {
                    allahk += string.Format("{0},", ahkl);

                    if (ahkl.Contains("mc"))
                    {
                        Key _ahk = (Key)k.ConvertFromString(ahkl.Split(':')[0]);
                        all_keys.Add(_ahk);
                    }
                    else
                    {
                        Key _ahk = (Key)k.ConvertFromString(ahkl.Split(':')[0]);
                        all_keysB.Add(_ahk);
                    }
                }

                string[] settings =
                {
                    string.Format("hp_button = {0}",           cmb_hp.Text),
                    string.Format("sp_button = {0}",           cmb_sp.Text),
                    string.Format("ahk_list = {0}",            allahk),
                    string.Format("hp_percent = {0}",          textBox1.Text),
                    string.Format("sp_percent = {0}",          textBox2.Text),
                    string.Format("gloom_button = {0}",        cmb_gloom.Text),
                    string.Format("aspd_button = {0}",         cmb_aspd.Text),
                    string.Format("agiscroll_button = {0}",    cmb_agi.Text),
                    string.Format("blesscroll_button = {0}",   cmb_agi.Text),
                    string.Format("ap_delay = {0}",            tb_apDelay.Text),
                    string.Format("autobuff_delay = {0}",      tb_abuffDelay.Text),
                    string.Format("autobuff_read_delay = {0}", tb_abuffReadDelay.Text),
                    string.Format("spam_delay = {0}",          tb_spamDelay.Text),
                    string.Format("",                          "")
                };

                File.WriteAllLines("ap_settings.txt", settings);
                readSettingsFromUI();
            }
        }
Пример #14
0
        /// <summary>
        /// Internal init function to set up DynaHotkeys hotkeys for the category systems.
        /// </summary>
        private void Init_InitGlobalState_SetUpDynaHotkeyHotkeys()
        {
            List <Category> CategoryList = GlobalState.CategoryManager.CurrentCategorySystem.Categories;

            KeyConverter KConverter = new KeyConverter();

            foreach (Category Cat in CategoryList)
            {
                string CatName = Cat.Name;
                string KeyName = null;

                if (CatName.ContainsNumeric())
                {
                    int KeyPosition = CatName.GetFirstIndexOfNumeric();

                    // should be impossible
                    Debug.Assert(KeyPosition != -1);

                    KeyName = KeyPosition.ToString();

                    Key Key = (Key)KConverter.ConvertFromString(KeyName);

                    DynaHotkey DHotkey = DHotkeyManager.AddNewHotkey(CatName, new List <Key> {
                        Key
                    }, false);
                    Cat.Hotkey = DHotkey;
                    continue;
                }
                else
                {
                    string[] Words = Cat.Name.Split(' ');

                    switch (Words.Length)
                    {
                    case 0:
                        continue;     // do nothing the category name is empty. This code shouldn't even run but just in case.

                    case 1:
                        string FirstWordOfCatName = Words[0];
                        // not a char because of the methods used.
                        string FirstChar = FirstWordOfCatName[0].ToString();

                        KeyName = FirstChar;
                        Key Key = (Key)KConverter.ConvertFromString(KeyName);

                        if (!DHotkeyManager.CheckIfKeyIsDuplicated(Key))
                        {
                            DynaHotkey DHotkey = DHotkeyManager.AddNewHotkey(CatName, new List <Key>()
                            {
                                Key
                            }, false);
                            Cat.Hotkey = DHotkey;
                        }


                        continue;

                    default:
                        string HotkeyName = Cat.GetAbbreviatedCategoryName(CatName, 1, 1, 1);

                        if (HotkeyName.Length != 0)
                        {
                            KeyName = HotkeyName;
                            Key NewHotkey = (Key)KConverter.ConvertFromString(KeyName);

                            // as dynahotkeys can be used for anything, check for duplication and duplicate hotkey to categories
                            // this is spaghettified so i'll probably slim it down to specifically one subclass of IHotkey
                            if (!DHotkeyManager.CheckIfKeyIsDuplicated(NewHotkey))
                            {
                                DynaHotkey DHotkey = DHotkeyManager.AddNewHotkey(CatName, new List <Key>()
                                {
                                    NewHotkey
                                }, false);
                                Cat.Hotkey = DHotkey;
                            }
                        }
                        else
                        {
                            Error.Throw("Warning!", "Error generating abbreviation; skipping this DynaHotkey", ErrorSeverity.Warning, 414);
                            continue;
                        }

                        continue;
                    }
                }
            }
        }
 private void ResetInputBinding(MenuItem menu, Key key) {
     KeyConverter k = new KeyConverter();
     menu.InputGestureText = k.ConvertToString(key);
     foreach (KeyBinding item in InputBindings) {
         if (item.Key == key) {
             item.Modifiers = ModifierKeys.None;
             break;
         }
     }
 }
Пример #16
0
        public static string GetKey(Key key)
        {
            var keyConverter = new KeyConverter();

            // converts it to string representation.  IE. Key.E = "E" and Key.OemComma = "OemComma"
            string character = keyConverter.ConvertToString(key);

            if (!string.IsNullOrEmpty(character) && character.Length == 1)
            {
                if (char.IsLetter(character, 0))
                {
                    return(character);
                }

                if (char.IsNumber(character, 0) && !IsShiftKey())
                {
                    return(character);
                }

                if (char.IsNumber(character, 0) && IsShiftKey())
                {
                    switch (key)
                    {
                    // http://msdn.microsoft.com/en-us/library/system.windows.forms.keys(v=vs.110).aspx
                    case Key.D1:
                        return("!");

                    case Key.D2:
                        return("@");

                    case Key.D3:
                        return("#");

                    case Key.D4:
                        return("$");

                    case Key.D5:
                        return("%");

                    case Key.D6:
                        return("^");

                    case Key.D7:
                        return("&");

                    case Key.D8:
                        return("*");

                    case Key.D9:
                        return("(");

                    case Key.D0:
                        return(")");
                    }
                }
            }

            switch (key)
            {
            // http://msdn.microsoft.com/en-us/library/system.windows.forms.keys(v=vs.110).aspx
            case Key.Oem4: return(IsShiftKey() ? "{" : "[");

            case Key.Oem6: return(IsShiftKey() ? "}" : "]");

            case Key.Oem5: return(IsShiftKey() ? "|" : @"\");

            case Key.OemMinus: return(IsShiftKey() ? "_" : "-");

            case Key.OemPlus: return(IsShiftKey() ? "+" : "=");

            case Key.OemQuestion: return(IsShiftKey() ? "?" : "/");

            case Key.OemSemicolon: return(IsShiftKey() ? ":" : ";");

            case Key.Oem7: return(IsShiftKey() ? "'" : "\"");

            case Key.OemPeriod: return(IsShiftKey() ? ">" : ".");

            case Key.OemComma: return(IsShiftKey() ? "<" : ",");
            }

            return(string.Empty);
        }
Пример #17
0
        public void Handle_PreviewKeyDown(KeyEventArgs currentKey, bool forceSendToMainWindow)
        {
            // Check the arguments for null
            ThrowIf.IsNullArgument(currentKey, nameof(currentKey));

            // First, try to interpret key as a possible valid quickpaste shortcut key.
            // If so, send it to the Quickpaste window and mark the event as handled.
            if ((Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)) &&
                ((currentKey.Key >= Key.D0 && currentKey.Key <= Key.D9) || (currentKey.Key >= Key.NumPad0 && currentKey.Key <= Key.NumPad9)))
            {
                if (this.quickPasteWindow != null && this.quickPasteWindow.Visibility == Visibility.Visible)
                {
                    // The quickpaste window is visible, and thus able to take shortcuts.
                    string key = new KeyConverter().ConvertToString(currentKey.Key);
                    if (key.StartsWith("NumPad"))
                    {
                        key = key.Remove(0, 6);
                    }
                    if (Int32.TryParse(key, out int shortcutIndex) && shortcutIndex != 0)
                    {
                        this.quickPasteWindow.TryQuickPasteShortcut(shortcutIndex);
                        currentKey.Handled = true;
                    }
                }
                return;
            }

            // Next, - but only if forceSendToMainWindow is true,
            // don't interpret keyboard shortcuts if the focus is on a control in the control grid, as the text entered may be directed
            // to the controls within it. That is, if a textbox or combo box has the focus, then take no as this is normal text input
            // and NOT a shortcut key.  Similarly, if a menu is displayed keys should be directed to the menu rather than interpreted as
            // shortcuts.
            if (forceSendToMainWindow == false && this.SendKeyToDataEntryControlOrMenu(currentKey))
            {
                return;
            }

            // Finally, test for other shortcut keys and take the appropriate action as needed
            DirectionEnum direction;
            int           keyRepeatCount = this.State.GetKeyRepeatCount(currentKey);

            switch (currentKey.Key)
            {
            case Key.B:                     // Save a Bookmark of the current pan / zoom level of the image
                this.MarkableCanvas.SetBookmark();
                break;

            case Key.Escape:
                this.TrySetKeyboardFocusToMarkableCanvas(false, currentKey);
                break;

            case Key.OemPlus:               // Restore the zoom level / pan coordinates of the bookmark
                this.MarkableCanvas.ApplyBookmark();
                break;

            case Key.OemMinus:              // Restore the zoom level / pan coordinates of the bookmark
                this.MarkableCanvas.ZoomOutAllTheWay();
                break;

            case Key.M:                     // Toggle the magnifying glass on and off
                this.MenuItemDisplayMagnifyingGlass_Click(this, null);
                break;

            case Key.U:                     // Increase the magnifing glass zoom level
                this.FilePlayer_Stop();     // In case the FilePlayer is going
                this.MarkableCanvas.MagnifierOrOffsetChangeZoomLevel(ZoomDirection.ZoomIn);
                break;

            case Key.D:                     // Decrease the magnifing glass zoom level
                this.FilePlayer_Stop();     // In case the FilePlayer is going
                this.MarkableCanvas.MagnifierOrOffsetChangeZoomLevel(ZoomDirection.ZoomOut);
                break;

            case Key.Right:                 // next /previous image
            case Key.Left:                  // previous image
                int increment = 1;
                this.FilePlayer_Stop();     // In case the FilePlayer is going
                direction = currentKey.Key == Key.Right ? DirectionEnum.Next : DirectionEnum.Previous;
                if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.LeftCtrl))
                {
                    long currentFileID = this.DataHandler.ImageCache.Current.ID;
                    bool result        = Episodes.GetIncrementToNextEpisode(this.DataHandler.FileDatabase.FileTable, this.DataHandler.FileDatabase.GetFileOrNextFileIndex(currentFileID), direction, out increment);
                    if (result == true)
                    {
                        if (Episodes.ShowEpisodes == false)
                        {
                            // turn on Episode display if its not already on
                            this.EpisodeShowHide(true);
                        }
                        // At this point, the episodes should be showing and the increment amount should be reset (see the out parameter above)
                    }
                }
                if (currentKey.IsRepeat == false || (currentKey.IsRepeat == true && keyRepeatCount % this.State.Throttles.RepeatedKeyAcceptanceInterval == 0))
                {
                    this.TryFileShowWithoutSliderCallback(direction, increment);
                }
                break;

            case Key.Up:                    // show visual difference to next image
                if (this.IsDisplayingMultipleImagesInOverview())
                {
                    this.FilePlayer.Direction = DirectionEnum.Previous;
                    this.FilePlayer_ScrollRow();
                }
                else
                {
                    this.FilePlayer_Stop();     // In case the FilePlayer is going
                    this.TryViewPreviousOrNextDifference();
                }
                break;

            case Key.Down:                  // show visual difference to previous image
                if (this.IsDisplayingMultipleImagesInOverview())
                {
                    this.FilePlayer.Direction = DirectionEnum.Next;
                    this.FilePlayer_ScrollRow();
                }
                else
                {
                    this.FilePlayer_Stop();     // In case the FilePlayer is going
                    this.TryViewCombinedDifference();
                }
                break;

            case Key.C:
                if (this.State.IsViewOnly == false)
                {
                    this.CopyPreviousValues_Click();
                }
                break;

            case Key.E:
                this.MenuItemEpisodeShowHide_Click(null, null);
                break;

            case Key.Q:
                // Toggle the QuickPaste window
                if (this.quickPasteWindow == null || (this.quickPasteWindow.Visibility != Visibility.Visible))
                {
                    if (this.State.IsViewOnly == false)
                    {
                        this.QuickPasteWindowShow();
                    }
                }
                else
                {
                    this.QuickPasteWindowHide();
                }
                break;

            case Key.Tab:
                this.FilePlayer_Stop();     // In case the FilePlayer is going
                this.MoveFocusToNextOrPreviousControlOrCopyPreviousButton(Keyboard.Modifiers == ModifierKeys.Shift);
                break;

            case Key.PageDown:
            case Key.PageUp:
                direction = currentKey.Key == Key.PageDown ? DirectionEnum.Next : DirectionEnum.Previous;
                if (this.IsDisplayingMultipleImagesInOverview())
                {
                    this.FilePlayer.Direction = direction;
                    this.FilePlayer_ScrollPage();
                }
                else
                {
                    this.FilePlayer_Stop();          // In case the FilePlayer is going
                    if (currentKey.IsRepeat == false || (currentKey.IsRepeat == true && keyRepeatCount % this.State.Throttles.RepeatedKeyAcceptanceInterval == 0))
                    {
                        this.TryFileShowWithoutSliderCallback(direction);
                    }
                }
                break;

            case Key.Home:
            case Key.End:
            {
                this.DataGridPane.IsActive = true;
                break;
            }

            default:
                return;
            }

            if (currentKey != null)
            {
                currentKey.Handled = true;
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="key"></param>
        /// <param name="isGlobal"></param>
        /// <returns>True if the key down event is handled</returns>
        public bool HandleKeyDown(Key key, bool isGlobal)
        {
            if (MainTextBox.Focusable || !CaptureKeyboard || (isGlobal && !ReceiveGlobalKeystrokes))
            {
                return(false);
            }

            bool handled = true;

            if (key == Key.Down)
            {
                SpeedForward();
            }
            else if (key == Key.Up)
            {
                SpeedReverse();
            }
            else if (key == Key.Tab)
            {
                ToggleTools();
            }

            //Slide forward / page down button To work with Logitech PowerPoint remote
            else if (key == Key.Next)
            {
                //PageDown();
                SpeedForward();
            }
            //Slid back button / page up To work with Logitech PowerPoint remote
            else if (key == Key.Prior)
            {
                //PageUp();
                SpeedReverse();
            }
            //F5 To work with Logitech PowerPoint remote
            else if (key == Key.F5 ||
                     key == Key.MediaStop ||
                     key == Key.MediaPlayPause ||
                     key == Key.Escape ||
                     key == Key.Space)
            {
                PauseScrolling();
            }
            //Period To work with Logitech PowerPoint remote
            else if (key == Key.OemPeriod)
            {
                ScrollToTop();
            }
            else if (key == Key.MediaPreviousTrack)
            {
                PageUp();
            }
            else if (key == Key.MediaNextTrack)
            {
                PageDown();
            }
            else if (key == Key.OemPlus)
            {
                SpeedSliderValue += 0.1;
            }
            else if (key == Key.OemMinus)
            {
                SpeedSliderValue -= 0.1;
            }
            //Numbers 1-9 should jump to the corresponding bookmark
            else if ((key >= Key.D0 && key <= Key.D9) ||
                     (key >= Key.NumPad0 && key <= Key.NumPad9))
            {
                var    converter = new KeyConverter();
                string val       = converter.ConvertToString(key);

                JumpToBookmarkByOrdinal(int.Parse(val));

                //To allow text boxes to get numbers
                handled = false;
            }
            else if (key == Key.F1)
            {
                LoadRandomBibleChapter();
            }
            else if (key == Key.Insert)
            {
                InsertBookmarkAtCurrentEyelineMark();
            }
            else
            {
                handled = false;
            }
            return(handled);
        }
        public UserDocumentView()
        {
            _oKeyConverter = new KeyConverter();

            InitializeComponent();
        }
Пример #20
0
 static ViSDGlobalCount()
 {
     _number = 0;
     KeyConv = new KeyConverter();
 }
Пример #21
0
        private void InitlializeShortucts()
        {
            // shortcuts dictionary
            _shortcuts = new Dictionary <Tuple <Key, ModifierKeys>, Action>();

            // key converters
            var keyConverter          = new KeyConverter();
            var modifiersKeyConverter = new ModifierKeysConverter();

            // open shortcut
            _shortcuts.Add(
                new Tuple <Key, ModifierKeys>(
                    (Key)keyConverter.ConvertFromString("O"),
                    (ModifierKeys)modifiersKeyConverter.ConvertFromString("Control")),
                () => Open());

            // save shortcut
            _shortcuts.Add(
                new Tuple <Key, ModifierKeys>(
                    (Key)keyConverter.ConvertFromString("S"),
                    (ModifierKeys)modifiersKeyConverter.ConvertFromString("Control")),
                () => Save());

            // export shortcut
            _shortcuts.Add(
                new Tuple <Key, ModifierKeys>(
                    (Key)keyConverter.ConvertFromString("E"),
                    (ModifierKeys)modifiersKeyConverter.ConvertFromString("Control")),
                () => Export());

            // undo shortcut
            _shortcuts.Add(
                new Tuple <Key, ModifierKeys>(
                    (Key)keyConverter.ConvertFromString("Z"),
                    (ModifierKeys)modifiersKeyConverter.ConvertFromString("Control")),
                () => _view.Undo());

            // redo shortcut
            _shortcuts.Add(
                new Tuple <Key, ModifierKeys>(
                    (Key)keyConverter.ConvertFromString("Y"),
                    (ModifierKeys)modifiersKeyConverter.ConvertFromString("Control")),
                () => _view.Redo());

            // snap shortcut
            _shortcuts.Add(
                new Tuple <Key, ModifierKeys>(
                    (Key)keyConverter.ConvertFromString("S"),
                    ModifierKeys.None),
                () => _view.ToggleSnap());

            // clear shortcut
            _shortcuts.Add(
                new Tuple <Key, ModifierKeys>(
                    (Key)keyConverter.ConvertFromString("Delete"),
                    (ModifierKeys)modifiersKeyConverter.ConvertFromString("Control")),
                () => _view.Clear());

            // editor shortcuts
            foreach (var editor in _view.Editors)
            {
                var _editor = editor;
                _shortcuts.Add(
                    new Tuple <Key, ModifierKeys>(
                        (Key)keyConverter.ConvertFromString(editor.Key),
                        editor.Modifiers == "" ? ModifierKeys.None : (ModifierKeys)modifiersKeyConverter.ConvertFromString(editor.Modifiers)),
                    () => _view.Enable(_editor));
            }

            // block shortcut
            _shortcuts.Add(
                new Tuple <Key, ModifierKeys>(
                    (Key)keyConverter.ConvertFromString("G"),
                    ModifierKeys.None),
                () => _view.CreateBlock());

            // delete shortcut
            _shortcuts.Add(
                new Tuple <Key, ModifierKeys>(
                    (Key)keyConverter.ConvertFromString("Delete"),
                    ModifierKeys.None),
                () => _view.Delete());
        }
Пример #22
0
        public static string KeyToUniCode(int keyCode)
        {
            KeyConverter kc = new KeyConverter();

            return(kc.ConvertToString(keyCode).ToUpper());
        }
Пример #23
0
        public static void Main(string[] имяФайла)
        {
            var conv = new KeyConverter();
            var cult = CultureInfo.GetCultureInfo("ru");
            var s    = conv.ConvertToString(null, CultureInfo.GetCultureInfo("ru"), Key.A);

            //var sru =
            //var k = conv.ConvertFromString("ф");

            Хранилище.Типы.Add(typeof(Выходное_устройство));
            Хранилище.Типы.Add(typeof(Входное_устройство));
            Хранилище.Типы.Add(typeof(АПереадресация));
            Хранилище.Типы.Add(typeof(АссинхроннаяПереадресация));
            Хранилище.Типы.Add(typeof(ДобавитьВХранилище));
            Хранилище.ПересчитатьКодыТипов();

            //ДисковоеХранилище.Тест();

            if (имяФайла.Length != 0)
            {
                try
                {
                    Хранилище.Восстановить(имяФайла[0]);
                }
                catch
                {
                    MessageBox.Show(" Не удалось восстановить диспетчер");
                }
            }
            else
            {
                //var сервер = new Сервер_хранилища();


                var адресРегистратра = Хранилище.Добавить(new  егистраторАдресов());// регистратор по  0 адресу
                СтрокаЮникода.Создать("место хранения");
                СтрокаЮникода.Создать("Имя");
                Хранилище.Добавить(new АдресВХранилище());

                var словарь = new СловарьПлохой();
                словарь.Добавить(new СтрокаЮникода()
                {
                    Значение = "ключ"
                }, new СтрокаЮникода()
                {
                    Значение = "значение"
                });
                словарь.Добавить(new СтрокаЮникода()
                {
                    Значение = "ключ2"
                }, new СтрокаЮникода()
                {
                    Значение = "значение2"
                });
                Хранилище.Добавить(словарь);

                var группа = new ГруппаОбъектов();
                Хранилище.Добавить(группа);

                группа.Добавить(new АдресВХранилище()
                {
                    НомерВХранилище = 1
                });
                группа.Добавить(new АдресВХранилище()
                {
                    НомерВХранилище = 2
                });
                группа.Добавить(new СтрокаЮникода()
                {
                    Значение = "строка добавленая в группу"
                });

                //var тспсервер = new ТСПСвязьВходящая();
                //тспсервер.Старт();



                var гр = new ГруппаОбъектов();
                Хранилище.Добавить(гр);

                var Группа2 = new ГруппаАдресовИзСловаря();
                Группа2.Перечисление = Клавиатура.ЮНИКОДСимволКодыРусскихБуквПрописные;
                гр.Добавить(Группа2);

                гр.Добавить(new АдресВХранилище()
                {
                    НомерВХранилище = 1
                });
                гр.Добавить(new АдресВГруппе()
                {
                    НомерВГруппе = 12
                });
                гр.Добавить(new СтрокаЮникода()
                {
                    Значение = "строка из группы"
                });
                гр.Добавить(new Пустота());
                var гр2 = new ГруппаОбъектов();
                гр.Добавить(гр2);
                гр2.Добавить(new СтрокаЮникода()
                {
                    Значение = "строка из группы"
                });
                гр2.Добавить(new Пустота());
                гр2.Добавить(new СтрокаЮникода()
                {
                    Значение = "строка из группы"
                });


                Dictionary <Type, Type> видыОбъектов = new Dictionary <Type, Type>()
                {
                    [typeof(ГруппаОбъектов)]         = typeof(ВидГруппаОбъектов),
                    [typeof(СтрокаЮникода)]          = typeof(ВидСтрока),
                    [typeof(Символ)]                 = typeof(ВидСимвола),
                    [typeof(ГруппаАдресовИзСловаря)] = typeof(ВидГруппаГоризонтальная),
                    [typeof(ПроксиОбъекта)]          = typeof(ВидЗначениеАдреса)
                };

                var окноГруппы = new ВидОкно();
                окноГруппы.ВыборВидов = видыОбъектов; // объекты должны иметь свободные слоты, которые добавляются из справочника по мере надобности, ненужные не создаются похоже на список переменных в блоке кода
                окноГруппы.ДобавьСодержание(гр);

                окноГруппы.Показать();



                var вывод = new Выходное_устройство()
                {
                    Имя = new СтрокаЮникода("Окно Вывода полученого текста")
                };
                var адресВывод      = Хранилище.Добавить(вывод);
                var адресСвязиВывод = вывод.ДобавьСвязь(new Связь()
                {
                    ольУдаленного = "поставщик", ТипСвязи = "входящая", ИмяСвязи = "Связь входящая выводного окна"
                });
                вывод.Запуск();

                var переадресация  = new АссинхроннаяПереадресация();
                var адреспере      = Хранилище.Добавить(переадресация);
                var адресСвязиПере = переадресация.ДобавьСвязь(new Связь()
                {
                    ольУдаленного = "поставщик", ТипСвязи = "входящая"
                });
                переадресация.ДобавьСвязь(new Связь()
                {
                    ольУдаленного = "получатель", ТипСвязи = "исходящая",
                });


                var адресдВХ = Хранилище.Добавить(new ДобавитьВХранилище());


                var ввод = new Входное_устройство();

                var адресввода = Хранилище.Добавить(ввод);

                ввод.Запуск();



                var удалЦелое1 = new Активность();
            }



            var a = new Application();

            w = new ОкноХранилища();

            var ff = new DependencyObject();

            ff.SetValue(Control.BackgroundProperty, Brushes.LightBlue);
            var ht = ff.GetValue(Control.BackgroundProperty);

            a.Run(w);

            // после завершение приложеня
        }
Пример #24
0
        private void OnUserKeyboardPress(object sender, KeyEventArgs e)
        {
            idletime = 0;
            if ((int)e.KeyCode == ActivateKey)
            {
                MacroActivate = true;
                if (testing)
                {
                    string name = WindowManager.GetActiveWindowTitle();
                    string exe  = WindowManager.GetActiveWindowExename();
                    TopMostMessageBox.Show(
                        String.Format(Translations.Get("window_info_result_text"), name, exe),
                        Translations.Get("window_info_result_title"));
                    testing = false;
                }
            }

            switch (e.KeyCode)
            {
            case System.Windows.Forms.Keys.LShiftKey:
            case System.Windows.Forms.Keys.RShiftKey:
            case System.Windows.Forms.Keys.Shift:
            case System.Windows.Forms.Keys.ShiftKey:
                shift = true;
                break;
            }

            while (PressedKeys.Contains(e.KeyCode))
            {
                PressedKeys.Remove(e.KeyCode);
            }

            PressedKeys.Add(e.KeyCode);

            if (KeyHelper.Form_Visible)
            {
                KeyHelper.BoxContent += KeyConverter.WinFormKey2Name(e.KeyCode) + "\n";
                e.Handled             = true;
            }
            else if (ProceedRewriteMacros(e.KeyCode))
            {
                e.Handled = true;
            }

            //Handle french ^ and ¨ key modifiers: êâôëü
            if ((int)e.KeyCode == 221 && !circumflex)
            {
                circumflex = true;
                e.Handled  = true;
                if (shift)
                {
                    diaeresis = true;
                }
            }
            else if (circumflex && !circumflexOn)
            {
                circumflexOn = true;
                switch (e.KeyCode)
                {
                case (System.Windows.Forms.Keys) 221:
                    circumflex = false;
                    diaeresis  = false;
                    if (diaeresis)
                    {
                        KeySender.KeyPress(KeyConverter.Name2Key("Shift"));
                        KeySender.KeyStroke(KeySender.VkKeyScan('^'));
                        KeySender.KeyStroke(KeySender.VkKeyScan('^'));
                        KeySender.KeyRelease(KeyConverter.Name2Key("Shift"));
                    }
                    else
                    {
                        KeySender.KeyStroke(KeySender.VkKeyScan('^'));
                        KeySender.KeyStroke(KeySender.VkKeyScan('^'));
                    }
                    break;

                case System.Windows.Forms.Keys.A:
                case System.Windows.Forms.Keys.E:
                case System.Windows.Forms.Keys.I:
                case System.Windows.Forms.Keys.O:
                case System.Windows.Forms.Keys.U:
                case System.Windows.Forms.Keys.Y:
                    if (diaeresis)
                    {
                        KeySender.KeyPress(KeyConverter.Name2Key("Shift"));
                        KeySender.KeyStroke(KeySender.VkKeyScan('^'));
                        KeySender.KeyRelease(KeyConverter.Name2Key("Shift"));
                    }
                    else
                    {
                        KeySender.KeyStroke(KeySender.VkKeyScan('^'));
                    }
                    circumflex = false;
                    diaeresis  = false;
                    break;

                default:
                    circumflex = false;
                    diaeresis  = false;
                    break;
                }
                circumflexOn = false;
            }
        }
Пример #25
0
        /// <summary>
        ///     Process pressed keys.
        /// </summary>
        /// <param name="sender">Sender object.</param>
        /// <param name="e">KeyEventArgs.</param>
        private void Window_KeyDown(object sender, KeyEventArgs e)
        {
            bool shiftPressed = (Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift;

            // print number
            if (!shiftPressed && Utils.IsNumericKey(e.Key))
            {
                KeyConverter keyConverter = new KeyConverter();
                this.outputProcessor.PrintNumber(keyConverter.ConvertToString(e.Key));
            }

            // print decimal separator (comma)
            if (!shiftPressed && (e.Key == Key.Decimal || e.Key == Key.OemComma || e.Key == Key.OemPeriod))
            {
                this.outputProcessor.PrintComma();
            }

            // calculate result
            if (e.Key == Key.Enter || e.Key == Key.Return || !shiftPressed && e.Key == Key.OemPlus)
            {
                this.mathProcessor.CalculateResult(this.GetNumericAns(), false, true);
            }

            // remove last number
            if (e.Key == Key.Back)
            {
                this.outputProcessor.Backspace();
            }

            // sum
            if (e.Key == Key.Add || shiftPressed && e.Key == Key.OemPlus)
            {
                this.mathProcessor.ProcessSum(this.GetNumericAns());
            }

            // sub
            if (e.Key == Key.Subtract || !shiftPressed && e.Key == Key.OemMinus)
            {
                this.mathProcessor.ProcessSub(this.GetNumericAns());
            }

            // mult
            if (e.Key == Key.Multiply || shiftPressed && e.Key == Key.D8)
            {
                this.mathProcessor.ProcessMult(this.GetNumericAns());
            }

            // div
            if (e.Key == Key.Divide || !shiftPressed && e.Key == Key.OemQuestion)
            {
                this.mathProcessor.ProcessDiv(this.GetNumericAns());
            }

            // fact
            if (shiftPressed && e.Key == Key.D1)
            {
                this.mathProcessor.ProcessFact(this.GetNumericAns());
            }

            // pow
            if (shiftPressed && e.Key == Key.D6)
            {
                this.mathProcessor.ProcessPow(this.GetNumericAns());
            }
        }
Пример #26
0
        private void CustomActionTextKeyDown(object sender, KeyEventArgs e)
        {
            string displayVal = null;
            string sendVal    = null;

            switch (e.Key)
            {
            case Key.LeftAlt:
            case Key.RightAlt:
            case Key.System:
                displayVal = "Alt";
                sendVal    = "%";
                break;

            case Key.LeftCtrl:
            case Key.RightCtrl:
                displayVal = "Ctrl";
                sendVal    = "^";
                break;

            case Key.LeftShift:
            case Key.RightShift:
                displayVal = "Shift";
                sendVal    = "+";
                break;

            case Key.Back:
                displayVal = "Backspace";
                sendVal    = "{BACKSPACE}";
                break;

            // There seems to be a bug with caps lock that causes SendWait to enter caps lock twice so it doesn't do anything
            //case Key.Capital:
            //    displayVal = "Caps Lock";
            //    sendVal = "{CAPSLOCK}";
            //    break;
            case Key.Delete:
                displayVal = "Delete";
                sendVal    = "{DELETE}";
                break;

            case Key.End:
                displayVal = "End";
                sendVal    = "{END}";
                break;

            case Key.Escape:
                displayVal = "ESC";
                sendVal    = "{ESC}";
                break;

            case Key k when k >= Key.F1 && k <= Key.F16:
                displayVal = k.ToString();
                sendVal    = "{" + displayVal + "}";
                break;

            case Key.Home:
                displayVal = "Home";
                sendVal    = "{HOME}";
                break;

            case Key.Oem1:
                displayVal = ";";
                sendVal    = ";";
                break;

            case Key.Oem3:
                displayVal = "`";
                sendVal    = "`";
                break;

            case Key.Oem5:
                displayVal = @"\";
                sendVal    = @"\";
                break;

            case Key.Oem6:
                displayVal = "]";
                sendVal    = "{]}";
                break;

            case Key.OemComma:
                displayVal = ",";
                sendVal    = ",";
                break;

            case Key.OemMinus:
                displayVal = "-";
                sendVal    = "-";
                break;

            case Key.OemOpenBrackets:
                displayVal = "[";
                sendVal    = "{[}";
                break;

            case Key.OemPeriod:
                displayVal = ".";
                sendVal    = ".";
                break;

            case Key.OemPlus:
                displayVal = "+";
                sendVal    = "+";
                break;

            case Key.OemQuestion:
                displayVal = "/";
                sendVal    = "/";
                break;

            case Key.OemQuotes:
                displayVal = "'";
                sendVal    = "'";
                break;

            case Key.Pause:
                displayVal = "Break";
                sendVal    = "{BREAK}";
                break;

            case Key.PageDown:
                displayVal = "Page Down";
                sendVal    = "{PGDN}";
                break;

            case Key.PageUp:
                displayVal = "Page Up";
                sendVal    = "{PGUP}";
                break;

            case Key.Return:
                displayVal = "Enter/Return";
                sendVal    = "{ENTER}";
                break;

            // There seems to be a bug with space that causes SendWait to enter space until it stack overflows
            //case Key.Space:
            //    displayVal = "Space";
            //    sendVal = " ";
            //    break;
            case Key.Tab:
                displayVal = "Tab";
                sendVal    = "{TAB}";
                break;

            default:
                if ((e.Key >= Key.A && e.Key <= Key.Z) || (e.Key >= Key.D0 && e.Key <= Key.D9))
                {
                    KeyConverter keyConverter = new KeyConverter();
                    displayVal = keyConverter.ConvertToString(e.Key);
                    sendVal    = keyConverter.ConvertToString(e.Key).ToLower();
                }
                break;
            }
            if (openAppCheckBox.IsChecked == false && displayVal != null && sendVal != null)
            {
                if (customActionText.Text == "Enter Keyboard Shortcut")
                {
                    customActionText.Text         = displayVal;
                    customActionText.Tag          = sendVal;
                    savePermanentButton.IsEnabled = true;
                    saveNewActionButton.IsEnabled = true;
                }
                else if (customActionText.Text.Count(x => x == '+') < 2)
                {
                    customActionText.Text = customActionText.Text + "+" + displayVal;
                    customActionText.Tag  = (string)customActionText.Tag + sendVal;
                }
                e.Handled = true;
            }
        }
Пример #27
0
        private void button1_Click(object sender, EventArgs e)
        {
            //get the key
            if (String.IsNullOrEmpty(textBox1.Text))
            {
                return;
            }
            KeyConverter k   = new KeyConverter();
            Key          key = (Key)k.ConvertFromString(textBox1.Text);

            //hotkey type
            string sType    = comboBox1.SelectedItem.ToString();
            int    count    = bot.GetHotkeys().Count;
            string hotkeyID = Convert.ToString(count + 1);
            Hotkey hotkey;
            string slot;

            switch (sType)
            {
            case "Use item on yourself":
                hotkey        = new Hotkey(hotkeyID, textBox1.Text, HotkeyType.UseOnYourself);
                hotkey.ItemId = BotUtil.Number(textBox2.Text);
                if (hotkey.ItemId < 0)
                {
                    return;
                }

                //add from grid
                this.dataGridView1.Rows.Add(hotkeyID, textBox1.Text, "Use item on yourself", textBox2.Text, "");
                bot.AddHotkey(hotkey);
                break;

            case "Use item on target":
                hotkey        = new Hotkey(hotkeyID, textBox1.Text, HotkeyType.UseOnTarget);
                hotkey.ItemId = BotUtil.Number(textBox2.Text);
                if (hotkey.ItemId < 0)
                {
                    return;
                }
                //add from grid
                this.dataGridView1.Rows.Add(hotkeyID, textBox1.Text, "Use item on target", textBox2.Text, "");
                bot.AddHotkey(hotkey);
                break;

            case "Use with crosshairs":
                hotkey        = new Hotkey(hotkeyID, textBox1.Text, HotkeyType.UseWithCrosshairs);
                hotkey.ItemId = BotUtil.Number(textBox2.Text);
                if (hotkey.ItemId < 0)
                {
                    return;
                }
                //add from grid
                this.dataGridView1.Rows.Add(hotkeyID, textBox1.Text, "Use with crosshairs", textBox2.Text, "");
                bot.AddHotkey(hotkey);
                break;

            case "Use item":
                hotkey        = new Hotkey(hotkeyID, textBox1.Text, HotkeyType.UseItem);
                hotkey.ItemId = BotUtil.Number(textBox2.Text);
                if (hotkey.ItemId < 0)
                {
                    return;
                }
                //add from grid
                this.dataGridView1.Rows.Add(hotkeyID, textBox1.Text, "Use item", textBox2.Text, "");
                bot.AddHotkey(hotkey);
                break;

            case "Equip item":
                hotkey        = new Hotkey(hotkeyID, textBox1.Text, HotkeyType.EquipItem);
                hotkey.ItemId = BotUtil.Number(textBox2.Text);
                if (hotkey.ItemId < 0)
                {
                    return;
                }
                //add from grid
                slot = comboBox2.SelectedItem.ToString();
                this.dataGridView1.Rows.Add(hotkeyID, textBox1.Text, "Equip item", textBox2.Text, slot);
                hotkey.InventoryLocation = getInventoryLocationByString(slot);
                bot.AddHotkey(hotkey);
                break;

            case "Unequip item":
                hotkey = new Hotkey(hotkeyID, textBox1.Text, HotkeyType.UnequipItem);
                //add from grid
                slot = comboBox2.SelectedItem.ToString();
                this.dataGridView1.Rows.Add(hotkeyID, textBox1.Text, "Unequip item", "", slot);
                hotkey.InventoryLocation = getInventoryLocationByString(slot);
                bot.AddHotkey(hotkey);
                break;
            }

            textBox1.Clear();
        }
Пример #28
0
        // 热键注册/响应
        private void RegisterHotKey()
        {
            var kc  = new KeyConverter();
            var mkc = new ModifierKeysConverter();

            try
            {
                if (Settings.Default.hotKeyModQ != "" && Settings.Default.hotKeyQ != "")
                {
                    ModifierKeys mod = (ModifierKeys)mkc.ConvertFromString(Settings.Default.hotKeyModQ);
                    Key          key = (Key)kc.ConvertFromString(Settings.Default.hotKeyQ);

                    HotKeyManage.Register(key, mod);
                }
                else
                {
                    HotKeyManage.Register(Key.Q, ModifierKeys.Control);

                    Settings.Default.hotKeyModQ = mkc.ConvertToString(ModifierKeys.Control);
                    Settings.Default.hotKeyQ    = kc.ConvertToString(Key.Q);
                }
                Mvvm.HotKeyQ = HotKeyManage.ToString();
            }

            catch (Exception err)
            {
                MessageBox.Show(err.ToString());
                Mvvm.HotKeyQ = HotKeyManage.ToString() + "(冲突)";
            }

            //////////////////////////////////////////////////


            try
            {
                if (Settings.Default.hotKeyModW != "" && Settings.Default.hotKeyW != "")
                {
                    ModifierKeys mod = (ModifierKeys)mkc.ConvertFromString(Settings.Default.hotKeyModW);
                    Key          key = (Key)kc.ConvertFromString(Settings.Default.hotKeyW);

                    HotKeyManage.Register(key, mod);
                }
                else
                {
                    HotKeyManage.Register(Key.W, ModifierKeys.Control);

                    Settings.Default.hotKeyModW = mkc.ConvertToString(ModifierKeys.Control);
                    Settings.Default.hotKeyW    = kc.ConvertToString(Key.W);
                }
                Mvvm.HotKeyW = HotKeyManage.ToString();
            }

            catch (Exception err)
            {
                MessageBox.Show(err.ToString());
                Mvvm.HotKeyW = HotKeyManage.ToString() + "(冲突)";
            }

            //////////////////////////////////////////////////

            try
            {
                if (Settings.Default.hotKeyModB != "" && Settings.Default.hotKeyB != "")
                {
                    ModifierKeys mod = (ModifierKeys)mkc.ConvertFromString(Settings.Default.hotKeyModB);
                    Key          key = (Key)kc.ConvertFromString(Settings.Default.hotKeyB);

                    HotKeyManage.Register(key, mod);
                }
                else
                {
                    HotKeyManage.Register(Key.B, ModifierKeys.Control);

                    Settings.Default.hotKeyModB = mkc.ConvertToString(ModifierKeys.Control);
                    Settings.Default.hotKeyB    = kc.ConvertToString(Key.B);
                }
                Mvvm.HotKeyB = HotKeyManage.ToString();
            }

            catch (Exception err)
            {
                MessageBox.Show(err.ToString());
                Mvvm.HotKeyB = HotKeyManage.ToString() + "(冲突)";
            }

            //////////////////////////////////////////////////

            try
            {
                if (Settings.Default.hotKeyModG != "" && Settings.Default.hotKeyG != "")
                {
                    ModifierKeys mod = (ModifierKeys)mkc.ConvertFromString(Settings.Default.hotKeyModG);
                    Key          key = (Key)kc.ConvertFromString(Settings.Default.hotKeyG);

                    HotKeyManage.Register(key, mod);
                }
                else
                {
                    HotKeyManage.Register(Key.G, ModifierKeys.Control);

                    Settings.Default.hotKeyModG = mkc.ConvertToString(ModifierKeys.Control);
                    Settings.Default.hotKeyG    = kc.ConvertToString(Key.G);
                }
                Mvvm.HotKeyG = HotKeyManage.ToString();
            }

            catch (Exception err)
            {
                MessageBox.Show(err.ToString());
                Mvvm.HotKeyG = HotKeyManage.ToString() + "(冲突)";
            }


            Settings.Default.Save();
        }
Пример #29
0
        private void TreeView_Keydown(object sender, KeyEventArgs e)
        {
            var selected = TreeFolderBrowser.SelectedItem as PathItem;

            // this works without a selection
            if (e.Key == Key.F2 && Keyboard.IsKeyDown(Key.LeftShift))
            {
                if (selected == null || !selected.IsEditing)
                {
                    FolderBrowserContextMenu.MenuAddFile_Click(sender, null);
                    e.Handled = true;
                }
                return;
            }

            if (e.Key == Key.F8)
            {
                if (selected == null || !selected.IsEditing)
                {
                    FolderBrowserContextMenu.MenuAddDirectory_Click(sender, null);
                    e.Handled = true;
                }
            }

            if (selected == null)
            {
                return;
            }

            if (e.Key == Key.Enter || e.Key == Key.Tab)
            {
                if (!selected.IsEditing)
                {
                    HandleItemSelection(forceEditorFocus: true);
                }
                else
                {
                    RenameOrCreateFileOrFolder();
                }

                e.Handled = true;
            }
            else if (e.Key == Key.Escape)
            {
                if (selected.IsEditing)
                {
                    selected.IsEditing = false;
                    if (!string.IsNullOrEmpty(selected.OriginalRenamePath))
                    {
                        selected.FullPath           = selected.OriginalRenamePath;
                        selected.OriginalRenamePath = null;
                    }
                    else
                    {
                        selected.Parent?.Files?.Remove(selected);
                    }
                }
            }
            else if (e.Key == Key.F2)
            {
                if (!selected.IsEditing)
                {
                    FolderBrowserContextMenu.MenuRenameFile_Click(sender, null);
                }
            }
            else if (e.Key == Key.Delete)
            {
                if (!selected.IsEditing)
                {
                    FolderBrowserContextMenu.MenuDeleteFile_Click(sender, null);
                }
            }
            else if (e.Key == Key.G && Keyboard.IsKeyDown(Key.LeftCtrl))
            {
                if (!selected.IsEditing)
                {
                    FolderBrowserContextMenu.MenuCommitGit_Click(null, null);
                    e.Handled = true;
                }
            }
            else if (e.Key == Key.Z && Keyboard.IsKeyDown(Key.LeftCtrl))
            {
                if (!selected.IsEditing)
                {
                    FolderBrowserContextMenu.MenuUndoGit_Click(null, null);
                    e.Handled = true;
                }
            }

            if (selected.IsEditing)
            {
                return;
            }

            // search key
            if (e.Key >= Key.A && e.Key <= Key.Z ||
                e.Key >= Key.D0 && e.Key <= Key.D9 ||
                e.Key == Key.OemPeriod ||
                e.Key == Key.Space ||
                e.Key == Key.Separator ||
                e.Key == Key.OemMinus &&
                (!Keyboard.IsKeyDown(Key.LeftCtrl) && !Keyboard.IsKeyDown(Key.LeftAlt)))
            {
                //Debug.WriteLine("Treeview TreeDown: " + e.Key + " shfit: " + Keyboard.IsKeyDown(Key.LeftShift));
                var keyConverter = new KeyConverter();

                string k;

                if (e.Key == Key.OemPeriod)
                {
                    k = ".";
                }
                else if (e.Key == Key.OemMinus && Keyboard.IsKeyDown(Key.LeftShift))
                {
                    k = "_";
                }
                else if (e.Key == Key.OemMinus)
                {
                    k = "-";
                }
                else if (e.Key == Key.Space)
                {
                    k = " ";
                }
                else
                {
                    k = keyConverter.ConvertToString(e.Key);
                }

                if (searchFilterLast > DateTime.Now.AddSeconds(-1.2))
                {
                    searchFilter += k.ToLower();
                }
                else
                {
                    searchFilter = k.ToLower();
                }

                Window.ShowStatus("File search filter: " + searchFilter, 2000);

                var lowerFilter = searchFilter.ToLower();

                var parentPath = selected.Parent;
                if (parentPath == null)
                {
                    parentPath = ActivePathItem; // root
                }
                var item = parentPath.Files.FirstOrDefault(sf => sf.DisplayName.ToLower().StartsWith(lowerFilter));
                if (item != null)
                {
                    item.IsSelected = true;
                }


                searchFilterLast = DateTime.Now;
            }
        }
 public ComplexInputGestureConverter()
 {
     _keyConverter          = new KeyConverter();
     _modifierKeysConverter = new ModifierKeysConverter();
 }
Пример #31
0
        internal bool RunEvents()
        {
            while (SDL.SDL_PollEvent(out var e) != 0)
            {
                Key k;
                // ReSharper disable once SwitchStatementMissingSomeCases
                switch (e.type)
                {
                case SDL.SDL_EventType.SDL_QUIT:
                    return(false);

                case SDL.SDL_EventType.SDL_MOUSEWHEEL:
                    Mouse.ScrollY += e.wheel.y * 120;
                    Mouse.ScrollX += e.wheel.x * 120;
                    break;

                case SDL.SDL_EventType.SDL_MOUSEBUTTONDOWN:
                    if (e.button.button == SDL.SDL_BUTTON_LEFT)
                    {
                        Mouse.LeftButton = true;
                    }
                    else if (e.button.button == SDL.SDL_BUTTON_RIGHT)
                    {
                        Mouse.RightButton = true;
                    }
                    else if (e.button.button == SDL.SDL_BUTTON_MIDDLE)
                    {
                        Mouse.MiddleButton = true;
                    }
                    else if (e.button.button == SDL.SDL_BUTTON_X1)
                    {
                        Mouse.XButton1 = true;
                    }
                    else if (e.button.button == SDL.SDL_BUTTON_X2)
                    {
                        Mouse.XButton2 = true;
                    }
                    break;

                case SDL.SDL_EventType.SDL_MOUSEBUTTONUP:
                    if (e.button.button == SDL.SDL_BUTTON_LEFT)
                    {
                        Mouse.LeftButton = false;
                    }
                    else if (e.button.button == SDL.SDL_BUTTON_RIGHT)
                    {
                        Mouse.RightButton = false;
                    }
                    else if (e.button.button == SDL.SDL_BUTTON_MIDDLE)
                    {
                        Mouse.MiddleButton = false;
                    }
                    else if (e.button.button == SDL.SDL_BUTTON_X1)
                    {
                        Mouse.XButton1 = false;
                    }
                    else if (e.button.button == SDL.SDL_BUTTON_X2)
                    {
                        Mouse.XButton2 = false;
                    }
                    break;

                case SDL.SDL_EventType.SDL_APP_LOWMEMORY:
                    MessageBox.Show("Low Memory", "The program is running low on memory, please close some programs.", MessageBoxType.Warning);
                    break;

                case SDL.SDL_EventType.SDL_WINDOWEVENT:
                    // ReSharper disable once SwitchStatementMissingSomeCases
                    switch (e.window.windowEvent)
                    {
                    case SDL.SDL_WindowEventID.SDL_WINDOWEVENT_FOCUS_GAINED:
                        _parentGame.OnActivated?.Invoke(_parentGame, EventArgs.Empty);
                        break;

                    case SDL.SDL_WindowEventID.SDL_WINDOWEVENT_FOCUS_LOST:
                        _parentGame.OnDeactivated?.Invoke(_parentGame, EventArgs.Empty);
                        break;

                    case SDL.SDL_WindowEventID.SDL_WINDOWEVENT_RESIZED:
                        _parentGame.OnResize?.Invoke(_parentGame,
                                                     new Game.OnResizeEventArgs(_parentGame.Window.Bounds));

                        var width  = _parentGame.Window.Bounds.Width;
                        var height = _parentGame.Window.Bounds.Height;

                        //OpenGL Viewport
                        GL.Viewport(0, 0, width, height);
                        break;
                    }

                    break;

                case SDL.SDL_EventType.SDL_MOUSEMOTION:
                    _parentGame.Window.MouseState.X = e.motion.x;
                    _parentGame.Window.MouseState.Y = e.motion.y;
                    break;

                case SDL.SDL_EventType.SDL_KEYDOWN:
                    k = KeyConverter.ToKey((int)e.key.keysym.sym);
                    if (!_parentGame.Keys.Contains(k))
                    {
                        _parentGame.Keys.Add(k);
                    }
                    Keyboard.KeyPressed.Invoke(_parentGame, new Keyboard.KeyEventArgs(k));
                    break;

                case SDL.SDL_EventType.SDL_KEYUP:
                    k = KeyConverter.ToKey((int)e.key.keysym.sym);
                    while (_parentGame.Keys.Contains(k))
                    {
                        _parentGame.Keys.Remove(k);
                    }
                    Keyboard.KeyReleased.Invoke(_parentGame, new Keyboard.KeyEventArgs(k));
                    break;
                }
            }

            return(true);
        }
 private void EditInputBinding(MenuItem menu, ModifierKeys modifier) {
     KeyConverter k = new KeyConverter();
     Key key = (Key)k.ConvertFromString(menu.InputGestureText);
     InputBindingCollection InputBindingsCopy = new InputBindingCollection(InputBindings);
     foreach (KeyBinding item in InputBindingsCopy) {
         if (item.Key == key) {
             if (modifier == ModifierKeys.None)
                 InputBindings.Remove(item);
             else {
                 item.Modifiers = modifier;
                 if (modifier == ModifierKeys.Control)
                     menu.InputGestureText = "CTRL+" + menu.InputGestureText;
             }
             break;
         }
     }
 }