public virtual void OnDraw() { for (int i = 0; i < m_Children.Count; i++) { GUIWidget <T> child = m_Children[i]; if (child.Visible) { GetRenderer().PushTransform(); //Affine transform = GetRenderer().GetTransform(); //transform *= child.GetTransform(); IAffineTransformMatrix <T> transform = GetRenderer().GetTransform(); transform = MatrixFactory <T> .CreateAffine(transform.Multiply(child.GetTransform())); //transform *= child.GetTransform(); GetRenderer().SetTransform(transform); child.OnDraw(); #if false if (Focused) { RoundedRect rect = new RoundedRect(-5, -5, 5, 5, 0); GetRenderer().Render(rect, new RGBA_Bytes(1.0, 0, 0, .5)); } #endif GetRenderer().PopTransform(); } } }
public virtual void OnKeyUp(KeyEventArgs keyEvent) { GUIWidget <T> childWithFocus = GetChildContainingFocus(); if (childWithFocus != null && childWithFocus.Visible) { childWithFocus.OnKeyUp(keyEvent); } }
public void RectToScreen(ref RectDouble <T> clientRect) { GUIWidget <T> prevGUIWidget = this; while (prevGUIWidget != null) { prevGUIWidget.GetTransform().Transform(ref clientRect); prevGUIWidget = prevGUIWidget.Parrent; } }
public void PointToScreen(ref IVector <T> clientPoint) { GUIWidget <T> prevGUIWidget = this; while (prevGUIWidget != null) { prevGUIWidget.GetTransform().Transform(ref clientPoint); prevGUIWidget = prevGUIWidget.Parrent; } }
public void PointToClient(ref T screenPointX, ref T screenPointY) { GUIWidget <T> curGUIWidget = this; while (curGUIWidget != null) { curGUIWidget.GetTransform().Inverse.Transform(ref screenPointX, ref screenPointY); curGUIWidget = curGUIWidget.Parrent; } }
protected void FocusNext() { GUIWidget <T> childWithFocus = GetChildContainingFocus(); for (int i = 0; i < m_Children.Count; i++) { GUIWidget <T> child = m_Children[i]; if (child.Visible) { } } }
public virtual void OnKeyDown(KeyEventArgs keyEvent) { GUIWidget <T> childWithFocus = GetChildContainingFocus(); if (childWithFocus != null && childWithFocus.Visible) { childWithFocus.OnKeyDown(keyEvent); } if (!keyEvent.Handled && keyEvent.KeyCode == Keys.Tab) { if (keyEvent.Shift) { FocusPrevious(); } else { FocusNext(); } } }
public bool SetChildCurrent(T x, T y) { for (int i = 0; i < m_Children.Count; i++) { GUIWidget <T> child = m_Children[i]; if (child.Visible) { if (child.InRect(x, y)) { if (!child.Focused) { child.Focus(); return(true); } return(false); } } } return(false); }
public void RemoveChild(GUIWidget <T> child) { child.m_Parrent = null; m_Children.Remove(child); child.OnParentChanged(); }
public void AddChild(GUIWidget <T> child) { child.m_Parrent = this; m_Children.Add(child); child.OnParentChanged(); }