private void btnAdd_Click(object sender, EventArgs e) { if (cfgKey.SelectedKey == Keys.None) { return; } var key = new KeyReplacement() { Key = cfgKey.SelectedKey, Replacement = cfgReplacement.SelectedKey, AltActive = cfgAlt.Checked, ControlActive = cfgCtrl.Checked, ShiftActive = cfgShift.Checked }; try { Program.Manager.AddReplacement(key); } catch (Exception ex) { MessageBox.Show($"Failed to register replacement:\n{ex.Message}", "KWAKF"); return; } AddReplacement(key); }
public void AddReplacement(KeyReplacement key) { var item = new ListViewItem(); item.Tag = key; item.Text = key.GetKeyString(); item.SubItems.Add(key.GetReplacementString()); item.SubItems.Add("0"); item.SubItems.Add("0"); ltvKeyConfiguration.Items.Add(item); }
public static string BindKey(this Command command, DataSet.Define define, DataSet.Key key, string sql) { KeyReplacement replacement = Pool <KeyReplacement> .Default.Acquire(); replacement.define = define; replacement.key = key; string result = KeyPattern.Replace(sql, replacement.Execute); replacement.define = null; replacement.key = null; Pool <KeyReplacement> .Default.Release(replacement); var keys = define.Keys; for (int i = 0; i < keys.Count; ++i) { var type = keys[i]; if (type == DataSet.Type.String) { string str = null; if (!key.Read(i, ref str)) { throw new DataSet.TypeMismatchException(); } str = str ?? ""; command.AddParam(str); } else if (type == DataSet.Type.Blob) { byte[] bytes = null; if (!key.Read(i, ref bytes)) { throw new DataSet.TypeMismatchException(); } command.AddParam(bytes); } } return(result); }