Ejemplo n.º 1
0
        private void InitializeAutoActions()
        {
            dgv_AutoActions.RowHeadersVisible                   = false;
            dgv_AutoActions.AllowUserToAddRows                  = false;
            dgv_AutoActions.AllowUserToResizeColumns            = false;
            dgv_AutoActions.AllowUserToResizeRows               = false;
            dgv_AutoActions.DefaultCellStyle.SelectionBackColor = dgv_AutoActions.DefaultCellStyle.BackColor;
            dgv_AutoActions.DefaultCellStyle.SelectionForeColor = dgv_AutoActions.DefaultCellStyle.ForeColor;

            var columns = DgvFormUtil.GetAutoActionsColumns();

            columns.ForEach(column => dgv_AutoActions.Columns.Add(column));

            dgv_AutoActions.CurrentCellDirtyStateChanged += (sender, args) =>
            {
                if (dgv_AutoActions.IsCurrentCellDirty &&
                    dgv_AutoActions.CurrentCell.OwningColumn == dgv_AutoActions.Columns["active"]
                    )
                {
                    dgv_AutoActions.CommitEdit(DataGridViewDataErrorContexts.Commit);
                }
            };

            dgv_AutoActions.CellContentClick += (sender, args) =>
            {
                if (args.RowIndex < 0 || args.ColumnIndex != dgv_AutoActions.Columns["active"]?.Index)
                {
                    return;
                }

                var val       = (DataGridViewCheckBoxCell)dgv_AutoActions.Rows[args.RowIndex].Cells["active"];
                var isChecked = Convert.ToBoolean(val.Value);

                var autoAction = (AbstractAutoAction)dgv_AutoActions.Rows[args.RowIndex].DataBoundItem;
                autoAction.active = isChecked;

                ConfigPersistence.SaveAutoActions(AutoActions);
            };

            dgv_AutoActions.CellClick += (sender, args) =>
            {
                if (args.RowIndex < 0 || args.ColumnIndex != dgv_Hotkeys.Columns["edit"]?.Index)
                {
                    return;
                }

                var autoAction = (AbstractAutoAction)dgv_AutoActions.Rows[args.RowIndex].DataBoundItem;
                if (string.IsNullOrWhiteSpace(autoAction?.attributes))
                {
                    return;
                }
                if (AutoActionEditor.EditAutoAction(autoAction))
                {
                    ConfigPersistence.SaveAutoActions(AutoActions);
                }

                dgv_AutoActions.Refresh();
            };

            dgv_AutoActions.CellMouseEnter += (sender, args) =>
            {
                if (args.RowIndex < 0)
                {
                    return;
                }

                var row = dgv_AutoActions.Rows[args.RowIndex];
                row.Cells[args.ColumnIndex].ToolTipText = ((AbstractAutoAction)row.DataBoundItem).tooltip;
            };

            autoActionBinding          = new BindingSource(AutoActions.autoActions, null);
            dgv_AutoActions.DataSource = autoActionBinding;

            DgvFormUtil.AdjustDataGridViewColumns(dgv_AutoActions);
        }
Ejemplo n.º 2
0
        private void InitializeHotkeys()
        {
            dgv_Hotkeys.RowHeadersVisible                   = false;
            dgv_Hotkeys.AllowUserToAddRows                  = false;
            dgv_Hotkeys.AllowUserToResizeColumns            = false;
            dgv_Hotkeys.AllowUserToResizeRows               = false;
            dgv_Hotkeys.DefaultCellStyle.SelectionBackColor = dgv_Hotkeys.DefaultCellStyle.BackColor;
            dgv_Hotkeys.DefaultCellStyle.SelectionForeColor = dgv_Hotkeys.DefaultCellStyle.ForeColor;

            var columns = DgvFormUtil.GetHotkeysColumns();

            columns.ForEach(column => dgv_Hotkeys.Columns.Add(column));

            dgv_Hotkeys.CurrentCellDirtyStateChanged += (sender, args) =>
            {
                if (dgv_Hotkeys.IsCurrentCellDirty &&
                    dgv_Hotkeys.CurrentCell.OwningColumn == dgv_Hotkeys.Columns["active"]
                    )
                {
                    dgv_Hotkeys.CommitEdit(DataGridViewDataErrorContexts.Commit);
                }
            };

            dgv_Hotkeys.CellContentClick += (sender, args) =>
            {
                if (args.RowIndex < 0 || args.ColumnIndex != dgv_Hotkeys.Columns["active"]?.Index)
                {
                    return;
                }

                var val       = (DataGridViewCheckBoxCell)dgv_Hotkeys.Rows[args.RowIndex].Cells["active"];
                var isChecked = Convert.ToBoolean(val.Value);

                var hotkey = (AbstractHotkeyAction)dgv_Hotkeys.Rows[args.RowIndex].DataBoundItem;
                hotkey.active = isChecked;

                Config.SaveHotkeys(Hotkeys);
            };

            dgv_Hotkeys.CellClick += (sender, args) =>
            {
                if (args.RowIndex < 0)
                {
                    return;
                }

                if (args.ColumnIndex == dgv_Hotkeys.Columns["hotkey"]?.Index)
                {
                    var keyEvent = HotkeyPopup.getHotkey();
                    var hotkey   = (AbstractHotkeyAction)dgv_Hotkeys.Rows[args.RowIndex].DataBoundItem;
                    updateHotkey(keyEvent, hotkey);
                }
                else if (args.ColumnIndex == dgv_Hotkeys.Columns["remove"]?.Index)
                {
                    var hotkey = (AbstractHotkeyAction)dgv_Hotkeys.Rows[args.RowIndex].DataBoundItem;
                    hotkey.RemoveKeybind();
                    Config.SaveHotkeys(Hotkeys);
                }
                else if (args.ColumnIndex == dgv_Hotkeys.Columns["edit"]?.Index)
                {
                    var hotkey = (AbstractHotkeyAction)dgv_Hotkeys.Rows[args.RowIndex].DataBoundItem;
                    if (string.IsNullOrWhiteSpace(hotkey.attributes))
                    {
                        return;
                    }

                    if (HotkeyEditor.EditHotkeyAction(hotkey))
                    {
                        Config.SaveHotkeys(Hotkeys);
                    }
                }
                else
                {
                    return;
                }

                dgv_Hotkeys.Refresh();
            };

            dgv_Hotkeys.CellMouseEnter += (sender, args) =>
            {
                if (args.RowIndex < 0)
                {
                    return;
                }

                var row = dgv_Hotkeys.Rows[args.RowIndex];
                row.Cells[args.ColumnIndex].ToolTipText = ((AbstractHotkeyAction)row.DataBoundItem).tooltip;
            };

            hotkeyBinding          = new BindingSource(Hotkeys.hotkeyActions, null);
            dgv_Hotkeys.DataSource = hotkeyBinding;

            DgvFormUtil.AdjustDataGridViewColumns(dgv_Hotkeys);
        }