public static bool BindKey(Keybindmode kbm, Keys key, KeyCallback callback, bool forceOverride = false) { bool containK = false; if (key_ht.ContainsKey(key)) { containK = true; if (((Hashtable)key_ht[key]).ContainsKey(kbm)) { if (!forceOverride) { return false; } } } if (!containK) { key_ht.Add(key, new Hashtable()); } ((Hashtable)key_ht[key])[kbm] = callback; return true; }
public static bool UnBindKey(Keybindmode kbm, Keys key) { if (key_ht.ContainsKey(key)) { if (((Hashtable)key_ht[key]).ContainsKey(kbm)) { ((Hashtable)key_ht[key]).Remove(kbm); if (((Hashtable)key_ht[key]).Count == 0) { key_ht.Remove(key); } return true; } } return false; }