private void  InitializeDataGridView()
        {
            dgv_Definitions.RowHeadersVisible                   = false;
            dgv_Definitions.AllowUserToAddRows                  = false;
            dgv_Definitions.AllowUserToResizeColumns            = false;
            dgv_Definitions.AllowUserToResizeRows               = false;
            dgv_Definitions.DefaultCellStyle.SelectionBackColor = dgv_Definitions.DefaultCellStyle.BackColor;
            dgv_Definitions.DefaultCellStyle.SelectionForeColor = dgv_Definitions.DefaultCellStyle.ForeColor;

            var columns = DgvFormUtil.GetDefinitionGroupEditorColumns();

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

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

            dgv_Definitions.CellContentClick += (sender, args) =>
            {
                if (args.ColumnIndex == dgv_Definitions.Columns["active"]?.Index)
                {
                    var val       = (DataGridViewCheckBoxCell)dgv_Definitions.Rows[args.RowIndex].Cells["active"];
                    var isChecked = Convert.ToBoolean(val.Value);
                    parentDefinitionGroup.definitions[args.RowIndex].active = isChecked;
                    modified = true;
                }

                else if (args.ColumnIndex == dgv_Definitions.Columns["inverted"]?.Index)
                {
                    var val       = (DataGridViewCheckBoxCell)dgv_Definitions.Rows[args.RowIndex].Cells["inverted"];
                    var isChecked = Convert.ToBoolean(val.Value);
                    parentDefinitionGroup.definitions[args.RowIndex].inverted = isChecked;
                    modified = true;
                }
            };

            dgv_Definitions.CellClick += (sender, args) =>
            {
                if (args.ColumnIndex == dgv_Definitions.Columns["edit"]?.Index)
                {
                    modified |= DefinitionEditor.EditExistingDefinition(hud, parentDefinitionGroup.definitions[args.RowIndex]);
                }

                else if (args.ColumnIndex == dgv_Definitions.Columns["delete"]?.Index)
                {
                    parentDefinitionGroup.definitions.RemoveAt(args.RowIndex);
                    modified = true;
                }

                if (modified)
                {
                    ReloadDefinitions();
                }
            };
        }
Ejemplo n.º 2
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.º 3
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);
        }