public void RegisterShortcut(MyDebugSystem system, string category, string name, MyShortcut shortcut, DebugItemHandler action) { MyDebugConsoleItem item = new MyDebugConsoleItem { System = system, Category = category, Name = name, Shortcut = shortcut, Action = action }; //if (m_shortcutMap.ContainsKey(shortcut)) // return false; if (shortcut != null) { m_shortcutMap.Add(shortcut, item); } List <MyDebugConsoleItem> items; m_categoriesMap.TryGetValue(category.ToString(), out items); if (items == null) { items = new List <MyDebugConsoleItem>(); m_categoriesMap.Add(category.ToString(), items); } items.Add(item); }
/// <summary> /// OnKeyDown /// </summary> /// <param name="key"></param> private void OnKeyPressed(MyDebugSystem system, Keys key, short modifier) { MyShortcut shortcut = new MyShortcut(key, modifier); if (m_shortcutMap.ContainsKey(shortcut)) { MyDebugConsoleItem debugItem = m_shortcutMap[shortcut]; if ((debugItem.System == system) || (debugItem.System == MyDebugSystem.Any)) { debugItem.Action(debugItem); } } }
/// <summary> /// UnregisterShortcut /// </summary> /// <param name="system"></param> /// <param name="?"></param> public void UnregisterShortcut(MyShortcut shortcut) { if (shortcut == null) { return; } if (!m_shortcutMap.ContainsKey(shortcut)) { return; } MyDebugConsoleItem item = m_shortcutMap[shortcut]; m_shortcutMap.Remove(shortcut); List <MyDebugConsoleItem> items; m_categoriesMap.TryGetValue(item.Category.ToString(), out items); System.Diagnostics.Debug.Assert(items != null); items.Remove(item); }
public void RegisterShortcut(MyDebugSystem system, string category, string name, MyShortcut shortcut, DebugItemHandler action) { MyDebugConsoleItem item = new MyDebugConsoleItem { System = system, Category = category, Name = name, Shortcut = shortcut, Action = action }; //if (m_shortcutMap.ContainsKey(shortcut)) // return false; if (shortcut != null) { m_shortcutMap.Add(shortcut, item); } List<MyDebugConsoleItem> items; m_categoriesMap.TryGetValue(category.ToString(), out items); if (items == null) { items = new List<MyDebugConsoleItem>(); m_categoriesMap.Add(category.ToString(), items); } items.Add(item); }