public void Draw(GUIContainer container, ref Matrix4 projection)
        {
            this.matrix = projection;

            Vector2 _offset       = container.Position;
            Rect    _drawableArea = container.Bounds;

            this.SetSubRectDrawableArea(ref _drawableArea, ref _drawableArea, out _drawableArea);

            container.Draw(ref _drawableArea, this);


            this.batch.Draw(ref this.matrix);
        }
        public GUIEventSystem(GUIContainer root, MouseDevice mouse, KeyboardDevice keyboard, INativeWindow window)
        {
            this.root = root;

            mouse.Move         += new EventHandler <OpenTK.Input.MouseMoveEventArgs>(mouse_Move);
            mouse.ButtonDown   += new EventHandler <OpenTK.Input.MouseButtonEventArgs>(mouse_ButtonDown);
            mouse.ButtonUp     += new EventHandler <OpenTK.Input.MouseButtonEventArgs>(mouse_ButtonUp);
            mouse.WheelChanged += new EventHandler <OpenTK.Input.MouseWheelEventArgs>(mouse_WheelChanged);

            this.keyboard     = keyboard;
            keyboard.KeyDown += new EventHandler <KeyboardKeyEventArgs>(keyboard_KeyDown);
            keyboard.KeyUp   += new EventHandler <KeyboardKeyEventArgs>(keyboard_KeyUp);
            window.KeyPress  += new EventHandler <KeyPressEventArgs>(window_KeyPress);
        }