/// <summary> /// 解除注册调试器窗口。 /// </summary> /// <param name="path">调试器窗口路径。</param> /// <returns>是否解除注册调试器窗口成功。</returns> public bool UnregisterDebuggerWindow(string path) { if (string.IsNullOrEmpty(path)) { return(false); } int pos = path.IndexOf('/'); if (pos < 0 || pos >= path.Length - 1) { IDebuggerWindow debuggerWindow = InternalGetDebuggerWindow(path); bool result = m_DebuggerWindows.Remove(new KeyValuePair <string, IDebuggerWindow>(path, debuggerWindow)); debuggerWindow.Shutdown(); RefreshDebuggerWindowNames(); return(result); } string debuggerWindowGroupName = path.Substring(0, pos); string leftPath = path.Substring(pos + 1); DebuggerWindowGroup debuggerWindowGroup = (DebuggerWindowGroup)InternalGetDebuggerWindow(debuggerWindowGroupName); if (debuggerWindowGroup == null) { return(false); } return(debuggerWindowGroup.UnregisterDebuggerWindow(leftPath)); }
/// <summary> /// 选中调试器窗口。 /// </summary> /// <param name="path">调试器窗口路径。</param> /// <returns>是否成功选中调试器窗口。</returns> public bool SelectDebuggerWindow(string path) { if (string.IsNullOrEmpty(path)) { return(false); } int pos = path.IndexOf('/'); if (pos < 0 || pos >= path.Length - 1) { return(InternalSelectDebuggerWindow(path)); } string debuggerWindowGroupName = path.Substring(0, pos); string leftPath = path.Substring(pos + 1); DebuggerWindowGroup debuggerWindowGroup = (DebuggerWindowGroup)InternalGetDebuggerWindow(debuggerWindowGroupName); if (debuggerWindowGroup == null || !InternalSelectDebuggerWindow(debuggerWindowGroupName)) { return(false); } return(debuggerWindowGroup.SelectDebuggerWindow(leftPath)); }
/// <summary> /// 获取调试窗口。 /// </summary> /// <param name="path">调试窗口路径。</param> /// <returns>要获取的调试窗口。</returns> public IDebuggerWindow GetDebuggerWindow(string path) { if (string.IsNullOrEmpty(path)) { return(null); } int pos = path.IndexOf('/'); if (pos < 0 || pos >= path.Length - 1) { return(InternalGetDebuggerWindow(path)); } else { string debuggerWindowGroupName = path.Substring(0, pos); string leftPath = path.Substring(pos + 1); DebuggerWindowGroup debuggerWindowGroup = InternalGetDebuggerWindow(debuggerWindowGroupName) as DebuggerWindowGroup; if (debuggerWindowGroup == null) { return(null); } return(debuggerWindowGroup.GetDebuggerWindow(leftPath)); } }
/// <summary> /// 注册调试器窗口。 /// </summary> /// <param name="path">调试器窗口路径。</param> /// <param name="debuggerWindow">要注册的调试器窗口。</param> public void RegisterDebuggerWindow(string path, IDebuggerWindow debuggerWindow) { if (string.IsNullOrEmpty(path)) { throw new GameFrameworkException("Path is invalid."); } int pos = path.IndexOf('/'); if (pos < 0 || pos >= path.Length - 1) { if (InternalGetDebuggerWindow(path) != null) { throw new GameFrameworkException("Debugger window has been registered."); } m_DebuggerWindows.Add(new KeyValuePair <string, IDebuggerWindow>(path, debuggerWindow)); RefreshDebuggerWindowNames(); } else { string debuggerWindowGroupName = path.Substring(0, pos); string leftPath = path.Substring(pos + 1); DebuggerWindowGroup debuggerWindowGroup = (DebuggerWindowGroup)InternalGetDebuggerWindow(debuggerWindowGroupName); if (debuggerWindowGroup == null) { if (InternalGetDebuggerWindow(debuggerWindowGroupName) != null) { throw new GameFrameworkException("Debugger window has been registered, can not create debugger window group."); } debuggerWindowGroup = new DebuggerWindowGroup(); m_DebuggerWindows.Add(new KeyValuePair <string, IDebuggerWindow>(debuggerWindowGroupName, debuggerWindowGroup)); RefreshDebuggerWindowNames(); } debuggerWindowGroup.RegisterDebuggerWindow(leftPath, debuggerWindow); } }
/// <summary> /// 初始化调试管理器的新实例。 /// </summary> public DebuggerManager() { m_DebuggerWindowRoot = new DebuggerWindowGroup(); m_ActiveWindow = false; }