public override void ArrangeOverride() { foreach (Widget child in Children) { ContainerWidget.ArrangeChildWidgetInCell(Vector2.Zero, base.ActualSize, child); } }
public override void ArrangeOverride() { foreach (Widget child in Children) { if (child.IsVisible) { Vector2?widgetPosition = GetWidgetPosition(child); if (widgetPosition.HasValue) { Vector2 zero = Vector2.Zero; if (!float.IsPositiveInfinity(child.ParentDesiredSize.X)) { zero.X = child.ParentDesiredSize.X; } else { zero.X = MathUtils.Max(base.ActualSize.X - widgetPosition.Value.X, 0f); } if (!float.IsPositiveInfinity(child.ParentDesiredSize.Y)) { zero.Y = child.ParentDesiredSize.Y; } else { zero.Y = MathUtils.Max(base.ActualSize.Y - widgetPosition.Value.Y, 0f); } child.Arrange(widgetPosition.Value, zero); } else { ContainerWidget.ArrangeChildWidgetInCell(Vector2.Zero, base.ActualSize, child); } } } }
public override void ArrangeOverride() { float num = 0f; foreach (Widget child in Children) { if (child.IsVisible) { if (Direction == LayoutDirection.Horizontal) { float num2 = (child.ParentDesiredSize.X == float.PositiveInfinity) ? ((m_fillCount > 0) ? (MathUtils.Max(base.ActualSize.X - m_fixedSize, 0f) / (float)m_fillCount) : 0f) : (child.ParentDesiredSize.X + 2f * child.Margin.X); Vector2 c; Vector2 c2; if (!IsInverted) { c = new Vector2(num, 0f); c2 = new Vector2(num + num2, base.ActualSize.Y); } else { c = new Vector2(base.ActualSize.X - (num + num2), 0f); c2 = new Vector2(base.ActualSize.X - num, base.ActualSize.Y); } ContainerWidget.ArrangeChildWidgetInCell(c, c2, child); num += num2; } else { float num3 = (child.ParentDesiredSize.Y == float.PositiveInfinity) ? ((m_fillCount > 0) ? (MathUtils.Max(base.ActualSize.Y - m_fixedSize, 0f) / (float)m_fillCount) : 0f) : (child.ParentDesiredSize.Y + 2f * child.Margin.Y); Vector2 c3; Vector2 c4; if (!IsInverted) { c3 = new Vector2(0f, num); c4 = new Vector2(base.ActualSize.X, num + num3); } else { c3 = new Vector2(0f, base.ActualSize.Y - (num + num3)); c4 = new Vector2(base.ActualSize.X, base.ActualSize.Y - num); } ContainerWidget.ArrangeChildWidgetInCell(c3, c4, child); num += num3; } } } }
public override void ArrangeOverride() { foreach (Widget child in Children) { Point2 widgetCell = GetWidgetCell(child); if (IsCellValid(widgetCell)) { Column column = m_columns[widgetCell.X]; Row row = m_rows[widgetCell.Y]; ContainerWidget.ArrangeChildWidgetInCell(new Vector2(column.Position, row.Position), new Vector2(column.Position + column.ActualWidth, row.Position + row.ActualHeight), child); } else { ContainerWidget.ArrangeChildWidgetInCell(Vector2.Zero, base.ActualSize, child); } } }
public override void ArrangeOverride() { foreach (Widget child in Children) { Vector2 zero = Vector2.Zero; Vector2 actualSize = base.ActualSize; if (Direction == LayoutDirection.Horizontal) { zero.X -= ScrollPosition; actualSize.X = zero.X + child.ParentDesiredSize.X; } else { zero.Y -= ScrollPosition; actualSize.Y = zero.Y + child.ParentDesiredSize.Y; } ContainerWidget.ArrangeChildWidgetInCell(zero, actualSize, child); } }
public override void ArrangeOverride() { Vector2 zero = Vector2.Zero; foreach (Widget child in Children) { if (child.IsVisible) { if (m_direction == LayoutDirection.Horizontal) { float num = (m_count > 0) ? (base.ActualSize.X / (float)m_count) : 0f; ContainerWidget.ArrangeChildWidgetInCell(zero, new Vector2(zero.X + num, zero.Y + base.ActualSize.Y), child); zero.X += num; } else { float num2 = (m_count > 0) ? (base.ActualSize.Y / (float)m_count) : 0f; ContainerWidget.ArrangeChildWidgetInCell(zero, new Vector2(zero.X + base.ActualSize.X, zero.Y + num2), child); zero.Y += num2; } } } }
public override void ArrangeOverride() { if (base.ActualSize != lastActualSize) { m_widgetsDirty = true; } lastActualSize = base.ActualSize; int num = m_firstVisibleIndex; foreach (Widget child in Children) { if (Direction == LayoutDirection.Horizontal) { Vector2 vector = new Vector2((float)num * ItemSize - ScrollPosition, 0f); ContainerWidget.ArrangeChildWidgetInCell(vector, vector + new Vector2(ItemSize, base.ActualSize.Y), child); } else { Vector2 vector2 = new Vector2(0f, (float)num * ItemSize - ScrollPosition); ContainerWidget.ArrangeChildWidgetInCell(vector2, vector2 + new Vector2(base.ActualSize.X, ItemSize), child); } num++; } }
public override void ArrangeOverride() { if (Children.Count == 1) { ContainerWidget.ArrangeChildWidgetInCell(Vector2.Zero, base.ActualSize, Children[0]); if (SettingsManager.ScreenLayout1 == ScreenLayout.Single) { Children[0].LayoutTransform = Matrix.Identity; } } else if (Children.Count == 2) { if (SettingsManager.ScreenLayout2 == ScreenLayout.DoubleVertical) { m_spacing = 12f; m_bevel = 3f; float x = 0f; float y = 0f; float x2 = base.ActualSize.X / 2f + m_spacing / 2f; float y2 = 0f; float x3 = base.ActualSize.X / 2f - m_spacing / 2f; float y3 = base.ActualSize.Y; float num = 0.5f; ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x, y), new Vector2(x, y) + new Vector2(x3, y3) / num, Children[0]); Children[0].LayoutTransform = Matrix.CreateScale(num, num, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x2, y2), new Vector2(x2, y2) + new Vector2(x3, y3) / num, Children[1]); Children[1].LayoutTransform = Matrix.CreateScale(num, num, 1f); } if (SettingsManager.ScreenLayout2 == ScreenLayout.DoubleHorizontal) { m_spacing = 12f; m_bevel = 3f; float x4 = 0f; float y4 = 0f; float x5 = 0f; float y5 = base.ActualSize.Y / 2f + m_spacing / 2f; float x6 = base.ActualSize.X; float y6 = base.ActualSize.Y / 2f - m_spacing / 2f; float num2 = 0.48f; ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x4, y4), new Vector2(x4, y4) + new Vector2(x6, y6) / num2, Children[0]); Children[0].LayoutTransform = Matrix.CreateScale(num2, num2, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x5, y5), new Vector2(x5, y5) + new Vector2(x6, y6) / num2, Children[1]); Children[1].LayoutTransform = Matrix.CreateScale(num2, num2, 1f); } if (SettingsManager.ScreenLayout2 == ScreenLayout.DoubleOpposite) { m_spacing = 20f; m_bevel = 4f; float x7 = 0f; float y7 = 0f; float x8 = base.ActualSize.X / 2f + m_spacing / 2f; float y8 = 0f; float x9 = base.ActualSize.X / 2f - m_spacing / 2f; float y9 = base.ActualSize.Y; float num3 = (float)Window.Size.Y / (float)Window.Size.X; ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x7, y7), new Vector2(x7, y7) + new Vector2(x9, y9) / num3, Children[0]); Children[0].LayoutTransform = new Matrix(0f, num3, 0f, 0f, 0f - num3, 0f, 0f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 0f, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x8, y8), new Vector2(x8, y8) + new Vector2(x9, y9) / num3, Children[1]); Children[1].LayoutTransform = new Matrix(0f, 0f - num3, 0f, 0f, num3, 0f, 0f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 0f, 1f); } } else if (Children.Count == 3) { m_spacing = 12f; m_bevel = 3f; if (SettingsManager.ScreenLayout3 == ScreenLayout.TripleVertical) { float x10 = 0f; float y10 = 0f; float x11 = base.ActualSize.X / 2f + m_spacing / 2f; float y11 = 0f; float x12 = base.ActualSize.X / 2f + m_spacing / 2f; float y12 = base.ActualSize.Y / 2f + m_spacing / 2f; float x13 = base.ActualSize.X / 2f - m_spacing / 2f; float y13 = base.ActualSize.Y; float y14 = base.ActualSize.Y / 2f - m_spacing / 2f; float num4 = 0.5f; ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x10, y10), new Vector2(x10, y10) + new Vector2(x13, y13) / num4, Children[0]); Children[0].LayoutTransform = Matrix.CreateScale(num4, num4, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x11, y11), new Vector2(x11, y11) + new Vector2(x13, y14) / num4, Children[1]); Children[1].LayoutTransform = Matrix.CreateScale(num4, num4, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x12, y12), new Vector2(x12, y12) + new Vector2(x13, y14) / num4, Children[2]); Children[2].LayoutTransform = Matrix.CreateScale(num4, num4, 1f); } if (SettingsManager.ScreenLayout3 == ScreenLayout.TripleHorizontal) { float x14 = 0f; float y15 = 0f; float x15 = 0f; float y16 = base.ActualSize.Y / 2f + m_spacing / 2f; float x16 = base.ActualSize.X / 2f + m_spacing / 2f; float y17 = base.ActualSize.Y / 2f + m_spacing / 2f; float x17 = base.ActualSize.X; float x18 = base.ActualSize.X / 2f - m_spacing / 2f; float y18 = base.ActualSize.Y / 2f - m_spacing / 2f; float num5 = 0.5f; ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x14, y15), new Vector2(x14, y15) + new Vector2(x17, y18) / num5, Children[0]); Children[0].LayoutTransform = Matrix.CreateScale(num5, num5, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x15, y16), new Vector2(x15, y16) + new Vector2(x18, y18) / num5, Children[1]); Children[1].LayoutTransform = Matrix.CreateScale(num5, num5, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x16, y17), new Vector2(x16, y17) + new Vector2(x18, y18) / num5, Children[2]); Children[2].LayoutTransform = Matrix.CreateScale(num5, num5, 1f); } if (SettingsManager.ScreenLayout3 == ScreenLayout.TripleEven) { float x19 = 0f; float y19 = 0f; float x20 = base.ActualSize.X / 2f + m_spacing / 2f; float y20 = 0f; float x21 = base.ActualSize.X / 4f + m_spacing / 4f; float y21 = base.ActualSize.Y / 2f + m_spacing / 2f; float x22 = base.ActualSize.X / 2f - m_spacing / 2f; float y22 = base.ActualSize.Y / 2f - m_spacing / 2f; float num6 = 0.5f; ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x19, y19), new Vector2(x19, y19) + new Vector2(x22, y22) / num6, Children[0]); Children[0].LayoutTransform = Matrix.CreateScale(num6, num6, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x20, y20), new Vector2(x20, y20) + new Vector2(x22, y22) / num6, Children[1]); Children[1].LayoutTransform = Matrix.CreateScale(num6, num6, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x21, y21), new Vector2(x21, y21) + new Vector2(x22, y22) / num6, Children[2]); Children[2].LayoutTransform = Matrix.CreateScale(num6, num6, 1f); } if (SettingsManager.ScreenLayout3 == ScreenLayout.TripleOpposite) { float x23 = 0f; float y23 = 0f; float x24 = base.ActualSize.X / 2f + m_spacing / 2f; float y24 = 0f; float x25 = base.ActualSize.X / 2f + m_spacing / 2f; float y25 = base.ActualSize.Y / 2f + m_spacing / 2f; float x26 = base.ActualSize.X / 2f - m_spacing / 2f; float y26 = base.ActualSize.Y; float y27 = base.ActualSize.Y / 2f - m_spacing / 2f; float num7 = 0.5f; ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x23, y23), new Vector2(x23, y23) + new Vector2(x26, y26) / num7, Children[0]); Children[0].LayoutTransform = new Matrix(0f, num7, 0f, 0f, 0f - num7, 0f, 0f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 0f, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x24, y24), new Vector2(x24, y24) + new Vector2(x26, y27) / num7, Children[1]); Children[1].LayoutTransform = new Matrix(0f - num7, 0f, 0f, 0f, 0f, 0f - num7, 0f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 0f, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x25, y25), new Vector2(x25, y25) + new Vector2(x26, y27) / num7, Children[2]); Children[2].LayoutTransform = new Matrix(num7, 0f, 0f, 0f, 0f, num7, 0f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 0f, 1f); } } else if (Children.Count == 4) { if (SettingsManager.ScreenLayout4 == ScreenLayout.Quadruple) { m_spacing = 12f; m_bevel = 3f; float x27 = 0f; float y28 = 0f; float x28 = base.ActualSize.X / 2f + m_spacing / 2f; float y29 = 0f; float x29 = 0f; float y30 = base.ActualSize.Y / 2f + m_spacing / 2f; float x30 = base.ActualSize.X / 2f + m_spacing / 2f; float y31 = base.ActualSize.Y / 2f + m_spacing / 2f; float x31 = base.ActualSize.X / 2f - m_spacing / 2f; float y32 = base.ActualSize.Y / 2f - m_spacing / 2f; float num8 = 0.5f; ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x27, y28), new Vector2(x27, y28) + new Vector2(x31, y32) / num8, Children[0]); Children[0].LayoutTransform = Matrix.CreateScale(num8, num8, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x28, y29), new Vector2(x28, y29) + new Vector2(x31, y32) / num8, Children[1]); Children[1].LayoutTransform = Matrix.CreateScale(num8, num8, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x29, y30), new Vector2(x29, y30) + new Vector2(x31, y32) / num8, Children[2]); Children[2].LayoutTransform = Matrix.CreateScale(num8, num8, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x30, y31), new Vector2(x30, y31) + new Vector2(x31, y32) / num8, Children[3]); Children[3].LayoutTransform = Matrix.CreateScale(num8, num8, 1f); } if (SettingsManager.ScreenLayout4 == ScreenLayout.QuadrupleOpposite) { m_spacing = 12f; m_bevel = 3f; float x32 = 0f; float y33 = 0f; float x33 = base.ActualSize.X / 2f + m_spacing / 2f; float y34 = 0f; float x34 = 0f; float y35 = base.ActualSize.Y / 2f + m_spacing / 2f; float x35 = base.ActualSize.X / 2f + m_spacing / 2f; float y36 = base.ActualSize.Y / 2f + m_spacing / 2f; float x36 = base.ActualSize.X / 2f - m_spacing / 2f; float y37 = base.ActualSize.Y / 2f - m_spacing / 2f; float num9 = 0.5f; ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x32, y33), new Vector2(x32, y33) + new Vector2(x36, y37) / num9, Children[0]); Children[0].LayoutTransform = new Matrix(0f - num9, 0f, 0f, 0f, 0f, 0f - num9, 0f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 0f, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x33, y34), new Vector2(x33, y34) + new Vector2(x36, y37) / num9, Children[1]); Children[1].LayoutTransform = new Matrix(0f - num9, 0f, 0f, 0f, 0f, 0f - num9, 0f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 0f, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x34, y35), new Vector2(x34, y35) + new Vector2(x36, y37) / num9, Children[2]); Children[2].LayoutTransform = new Matrix(num9, 0f, 0f, 0f, 0f, num9, 0f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 0f, 1f); ContainerWidget.ArrangeChildWidgetInCell(new Vector2(x35, y36), new Vector2(x35, y36) + new Vector2(x36, y37) / num9, Children[3]); Children[3].LayoutTransform = new Matrix(num9, 0f, 0f, 0f, 0f, num9, 0f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 0f, 1f); } } else if (Children.Count > 4) { throw new InvalidOperationException("Too many GameWidgets."); } }