public void Dispose() { if (m_root != null) { m_root.Dispose(); m_root = null; } }
public void Bind(Window window, RectRegion root) { var state = new WindowState(window, root); m_renderThread.EnqueueWindow(window); state.OnPaint += (commands) => { m_renderThread.EnqueueCommand(window, commands); }; state.WindowSizeChanged += (w, h) => { m_renderThread.EnqueueWindowResize(window, w, h); }; m_windowStateMap.Add(window, state); window.OnDestroy += () => Window_OnDestroy(window); }
public WindowState(Window window, RectRegion root) { m_root = root; UIContext = new UIContext(); window.OnResize += Window_OnResize; window.OnPaint += Invalidate; window.OnMouseLeftDown += Window_OnMouseLeftDown; window.OnMouseLeftUp += Window_OnMouseLeftUp; window.OnMouseRightDown += Window_OnMouseRightDown; window.OnMouseRightUp += Window_OnMouseRightUp; window.OnMouseMiddleDown += Window_OnMouseMiddleDown; window.OnMouseMiddleUp += Window_OnMouseMiddleUp; window.OnMouseMove += Window_OnMouseMove; window.OnMouseWheel += Window_OnMouseWheel; window.OnMouseLeftDoubleClicked += Window_OnMouseLeftDoubleClicked; UIContext.Updated += Invalidate; // Active, Hover changed m_root.Invalidated += Invalidate; // UI Tree changed Window_OnResize(window.Width, window.Height); }