Beispiel #1
0
 public void Dispose()
 {
     if (m_root != null)
     {
         m_root.Dispose();
         m_root = null;
     }
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }