public override void ArrangeOverride()
 {
     foreach (Widget child in Children)
     {
         ContainerWidget.ArrangeChildWidgetInCell(Vector2.Zero, base.ActualSize, child);
     }
 }
예제 #2
0
 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);
             }
         }
     }
 }
예제 #3
0
        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;
                    }
                }
            }
        }
예제 #4
0
 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);
         }
     }
 }
예제 #5
0
 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);
     }
 }
예제 #6
0
        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;
                    }
                }
            }
        }
예제 #7
0
        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++;
            }
        }
예제 #8
0
 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.");
     }
 }