protected internal override void OnLayout() { if (IsScrollOverride) { RenderRule.BuildBars(m_ScrollAreaOverride.Value); } else { // Pixel size of panel to contain child widgets Rectangle outerArea; Point scroll; BuildContainerRenderArea(out outerArea, out scroll); // scroll isn't used. Scroll should always be positive. RenderRule.BuildBars(outerArea); if (Children != null) { foreach (Widget widget in Children) { widget.ScreenArea = new Rectangle( widget.Area.X + InputArea.X - (int)(RenderRule.Horizontal.ChildOffset), widget.Area.Y + InputArea.Y - (int)(RenderRule.Vertical.ChildOffset), widget.Area.Width, widget.Area.Height); widget.ClipArea = RenderRule.SafeArea; } } } ClipArea = RenderRule.SafeArea; }
internal override void Layout() { // Pixel size of panel to contain child widgets var outerArea = BuildContainerRenderArea(); RenderRule.BuildBars(outerArea); foreach (var widget in Children) { widget.AbsoluteArea = new Rectangle( widget.Area.X + AbsoluteInputArea.X - (int)(RenderRule.Horizontal.ChildOffset), widget.Area.Y + AbsoluteInputArea.Y - (int)(RenderRule.Vertical.ChildOffset), widget.Area.Width, widget.Area.Height); widget.SissorArea = AbsoluteInputArea; if (Parent != null) { widget.SissorArea = Rectangle.Intersect(widget.SissorArea, SissorArea); } } base.Layout(); }
public void OverrideScrollArea(Rectangle area) { m_ScrollAreaOverride = area; RenderRule.BuildBars(m_ScrollAreaOverride.Value); }