private void DrawListView() { listView1.Items.Clear(); if (Data.SelectedActionList != null) { foreach (IKeyAction keyAction in Data.SelectedActionList.OrderBy(ka => ka.Pinned == false).ThenBy(ka => ka.KeyCombo)) { var keyCombo = DefaultKeyAction.GetKeyCombo(keyAction.Keys, true); keyCombo = string.IsNullOrWhiteSpace(keyCombo) ? "None" : keyCombo; ListViewItem newItem = listView1.Items.Add(keyCombo); if (keyAction.Enabled == false) { Font fnt = new Font(newItem.Font, FontStyle.Strikeout); newItem.ForeColor = Color.FromArgb(100, 100, 100); newItem.Font = fnt; } if (keyAction.Pinned) { newItem.BackColor = Color.FromArgb(230, 230, 230); } newItem.SubItems.Add($"{(keyAction.Pinned ? "> " : string.Empty)}{keyAction}"); newItem.Tag = keyAction.GUID; } listView1.AutoResizeColumn(0, ColumnHeaderAutoResizeStyle.ColumnContent); listView1.AutoResizeColumn(0, ColumnHeaderAutoResizeStyle.HeaderSize); listView1.AutoResizeColumn(1, ColumnHeaderAutoResizeStyle.ColumnContent); if (listView1.Columns[1].Width < (400 - listView1.Columns[0].Width - 2)) { listView1.Columns[1].Width = (400 - listView1.Columns[0].Width - 2); } } }
private void GlobalKeyDown(object sender, KeyEventArgs e) { string[] parts = DefaultKeyAction.GetKeyCombo(Keys, true).Split('+'); if (parts.Where(p => p == PrettyKeys.Convert(e.KeyCode)).Any()) { return; // dont allow duplicate keys in the combo } if (parts.Length < DefaultKeyAction.KEY_COUNT) { for (int i = 0; i < Keys.Length; i++) { if (Keys[i] == System.Windows.Forms.Keys.None) { Keys[i] = e.KeyCode; break; } } } AddForm.DrawKeyDisplay(); }