void Update()
        {
            if (!Active)
            {
                return;
            }

            if (!CameraControler.IsInputFieldFocused())
            {
                if (AllowRemove && Input.GetKeyDown(KeyCode.Delete))
                {
                    DestroySelectedObjects();
                }

                if (Input.GetKeyDown(KeyCode.C) && Input.GetKey(KeyCode.LeftControl))
                {
                    //Copy
                    CopyAction?.Invoke();
                }
                else if (Input.GetKeyDown(KeyCode.V) && Input.GetKey(KeyCode.LeftControl))
                {
                    //Paste
                    PasteAction?.Invoke();
                }
                else if (Input.GetKeyDown(KeyCode.D) && Input.GetKey(KeyCode.LeftControl))
                {
                    //Duplicate
                    DuplicateAction?.Invoke();
                }
            }
        }
 public static void ExecutePasteAction()
 {
     if (Current.Active && !CameraControler.IsInputFieldFocused())
     {
         PasteAction?.Invoke();
     }
 }
Example #3
0
 public frm_ActionEditor()
 {
     InitializeComponent();
     this.isNew       = true;
     this.PasteAction = new PasteAction();
     updateControls();
 }
        public override void Execute(object parameter)
        {
            PasteAction pasteAction = new PasteAction(GlobalManagement.Instance.Clipboard, _context);

            pasteAction.PasteLocation = _context.MousePosition.PxToMeter();
            pasteAction.Do();
            GlobalManagement.Instance.UndoStack.Push(pasteAction);
        }
Example #5
0
        public frm_ActionEditor(PasteAction PasteAction)
        {
            InitializeComponent();
            this.isNew          = false;
            this.ExistingAction = PasteAction;
            this.PasteAction    = PasteAction.Clone(); // Make a clone to change and validate before overwriting the reference object

            SetControlsFromPasteAction();
            updateControls();
        }
Example #6
0
        private void dgv_Actions_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dgv_Actions.SelectedRows.Count >= 1)
            {
                selectedPasteAction = dgv_Actions.SelectedRows[0].DataBoundItem as PasteAction;
            }
            else
            {
                selectedPasteAction = null;
            }

            UpdateControls();
        }
Example #7
0
        private void dgv_Actions_SelectionChanged(object sender, EventArgs e)
        {
            if (dgv_Actions.SelectedRows.Count >= 1)
            {
                selectedPasteAction = dgv_Actions.SelectedRows[0].DataBoundItem as PasteAction;
            }
            else
            {
                selectedPasteAction = null;
            }

            UpdateControls();
        }
Example #8
0
        // Handle global hotkeys
        protected override void WndProc(ref Message m)
        {
            base.WndProc(ref m);

            if (m.Msg == 0x0312)
            {
                Keys key = (Keys)(((int)m.LParam >> 16) & 0xFFFF);
                WindowsHelper.KeyModifier modifier = (WindowsHelper.KeyModifier)((int)m.LParam & 0xFFFF);
                int id = m.WParam.ToInt32();

                PasteAction matchedAction = new PasteAction();
                foreach (PasteAction action in Global.Actions)
                {
                    if (action.HotKeyRegistrationID == id)
                    {
                        matchedAction = action;
                    }
                }

                if (string.IsNullOrEmpty(matchedAction.Name))
                {
                    MessageBox.Show("No action is matched to that hotkey");
                    this.Close();
                    return;
                }

                if (matchedAction.ID == "{00000000-0000-0000-0000-000000000000}")
                {
                    openActionPicker();
                }
                else if (matchedAction.ID == "{00000000-0000-0000-0000-000000000001}")
                {
                    WindowsHelper.SetForegroundWindow(this.Handle);
                    WindowsHelper.ShowWindowAsync(this.Handle, 1);
                }
                else
                {
                    matchedAction.Paste(Global.LastApplications[0].WindowHandle, Global.LastApplications[0].LastActiveWindowMode);
                }
            }
        }
Example #9
0
        private void btn_Execute_Click(object sender, EventArgs e)
        {
            if (dgv_Actions.SelectedRows.Count <= 0)
            {
                MessageBox.Show("No action is selected", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return;
            }
            if (dgv_LastApplications.SelectedRows.Count <= 0)
            {
                MessageBox.Show("No application is selected", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return;
            }

            selectedPasteAction = dgv_Actions.SelectedRows[0].DataBoundItem as PasteAction;
            Classes.Application selectedApplication = dgv_LastApplications.SelectedRows[0].DataBoundItem as Classes.Application;

            if (selectedApplication.WindowHandle == IntPtr.Zero)
            {
                MessageBox.Show("There is something wrong with the selected application", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return;
            }

            selectedPasteAction.Paste(selectedApplication.WindowHandle, selectedApplication.LastActiveWindowMode);
        }
Example #10
0
        private void SetPasteActionFromControls(PasteAction action)
        {
            action.Name           = txt_Name.Text;
            action.ReplaceNewline = chk_ConvertNLToEntry.Checked;
            action.ClearClipboard = chk_ClearClipboard.Checked;
            action.Split          = txt_Split.Text;
            action.EntryText      = txt_EntryText.Text;
            action.EndText        = txt_EndText.Text;
            action.DelayMS        = (int)num_DelayMS.Value;
            action.Hotkey         = PasteAction.Hotkey;

            if (radio_None.Checked)
            {
                action.PastingAction = PasteAction.Action.None;
            }
            else if (radio_Autotype.Checked)
            {
                action.PastingAction = PasteAction.Action.AutoType;
            }
            else if (radio_Paste.Checked)
            {
                action.PastingAction = PasteAction.Action.Paste;
            }
        }
Example #11
0
        private void UpdateControls()
        {
            if (Clipboard.ContainsText() && dgv_LastApplications.SelectedRows.Count >= 1)
            {
                lbl_ClipboardStatus.Text      = "Contains text";
                lbl_ClipboardStatus.ForeColor = Color.Green;
                btn_Paste.Enabled             = true;
            }
            else if (dgv_Actions.SelectedRows.Count == 0)
            {
                lbl_ClipboardStatus.Text      = "No action is selected";
                lbl_ClipboardStatus.ForeColor = Color.Red;
                btn_Paste.Enabled             = false;
            }
            else if (dgv_LastApplications.SelectedRows.Count == 0)
            {
                lbl_ClipboardStatus.Text      = "No application is selected";
                lbl_ClipboardStatus.ForeColor = Color.Red;
                btn_Paste.Enabled             = false;
            }
            else if (Clipboard.ContainsImage())
            {
                lbl_ClipboardStatus.Text      = "Contains image";
                lbl_ClipboardStatus.ForeColor = Color.Red;
                btn_Paste.Enabled             = false;
            }
            else if (Clipboard.ContainsAudio())
            {
                lbl_ClipboardStatus.Text      = "Contains audio";
                lbl_ClipboardStatus.ForeColor = Color.Red;
                btn_Paste.Enabled             = false;
            }
            else if (Clipboard.ContainsFileDropList())
            {
                lbl_ClipboardStatus.Text      = "Contains files";
                lbl_ClipboardStatus.ForeColor = Color.Red;
                btn_Paste.Enabled             = false;
            }
            else
            {
                lbl_ClipboardStatus.Text      = "Clipboard is empty";
                lbl_ClipboardStatus.ForeColor = Color.Red;
                btn_Paste.Enabled             = false;
            }

            foreach (DataGridViewRow row in dgv_Actions.Rows)
            {
                if (row.DataBoundItem == null)
                {
                    continue;
                }
                try
                {
                    PasteAction pa = row.DataBoundItem as PasteAction;
                    if (PasteAction.ReservedIDs.Contains(pa.ID))
                    {
                        row.Visible = false;
                    }
                }
                catch { }
            }
        }