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); }
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); }