Ejemplo n.º 1
0
        public void ProcessCmdKey(object sender, ProcessCmdKeyEventArgs args)
        {
            Keys   keyData = args.KeyData;
            Action act;
            bool   ret = false;

            if (editBox == null)
            {
                if (canvasController.Canvas.Focused && keyActions.TryGetValue(keyData, out act))
                {
                    act();
                    ret = true;
                }
                else
                {
                    if (canvasController.Canvas.Focused &&
                        canvasController.SelectedElements.Count == 1 &&
                        !canvasController.SelectedElements[0].IsConnector &&
                        CanStartEditing(keyData))
                    {
                        EditText();
                        // TODO: THIS IS SUCH A MESS!

                        // Will return upper case letter always, regardless of shift key....
                        string firstKey = ((char)keyData).ToString();

                        // ... so we have to fix it.  Sigh.
                        if ((keyData & Keys.Shift) != Keys.Shift)
                        {
                            firstKey = firstKey.ToLower();
                        }
                        else
                        {
                            // Handle shift of number keys on main keyboard
                            if (char.IsDigit(firstKey[0]))
                            {
                                // TODO: Probably doesn't handle non-American keyboards!
                                // Note index 0 is ")"
                                string key = ")!@#$%^&*(";
                                int    n;

                                if (int.TryParse(firstKey, out n))
                                {
                                    firstKey = key[n].ToString();
                                }
                            }
                            // TODO: This is such a PITA.  Other symbols and shift combinations do not produce the correct first character!
                        }

                        editBox.Text            = firstKey;
                        editBox.SelectionStart  = 1;
                        editBox.SelectionLength = 0;
                        ret = true;
                    }
                }
            }

            args.Handled = ret;
        }
Ejemplo n.º 2
0
        public bool RelayProcessCmdKey(Keys keyData)
        {
            bool handled = false;

            if (ProcessCmdKeyRelay != null)
            {
                ProcessCmdKeyEventArgs e = new ProcessCmdKeyEventArgs(keyData, false);
                ProcessCmdKeyRelay(this, e);
                handled = e.Handled;
            }

            return(handled);
        }
Ejemplo n.º 3
0
        public bool RelayProcessCmdKey(Keys keyData)
        {
            bool handled = false;

            if (ProcessCmdKeyRelay != null)
            {
                ProcessCmdKeyEventArgs e = new ProcessCmdKeyEventArgs(keyData, false);
                ProcessCmdKeyRelay(this, e);
                handled = e.Handled;
            }

            return handled;
        }
Ejemplo n.º 4
0
 protected void OnProcessCmdKeyEvent(object sender, ProcessCmdKeyEventArgs e)
 {
     e.Handled = ServiceManager.Get <IFlowSharpEditService>().ProcessCmdKey(e.KeyData);
 }