ComponentFactory.Quicksilver.Layout.GridLayout.DefinitionProxy.PreMeasure C# (CSharp) Method

PreMeasure() public method

Find the minimum size allowed for this definition during measuring.
public PreMeasure ( double availableSize ) : double
availableSize double Maximum available size for the definition.
return double
            public double PreMeasure(double availableSize)
            {
                // Reset allocated field each measure cycle
                StarAllocated = false;
                
                // Update cached unit type
                UserGridUnitType = DefUserSize.GridUnitType;

                // If the available size is infinite then any Star type becomes Auto instead
                if (availableSize == double.PositiveInfinity)
                    if (UserGridUnitType == GridUnitType.Star)
                        UserGridUnitType = GridUnitType.Auto;

                double retStars = 0.0;
                switch(UserGridUnitType)
                {
                    case GridUnitType.Pixel:
                        MinSize = Math.Max(DefUserMin, Math.Min(DefUserSize.Value, DefUserMax));
                        MeasureSize = MinSize;
                        break;
                    case GridUnitType.Auto:
                        MinSize = DefUserMin;
                        MeasureSize = double.PositiveInfinity;
                        break;
                    case GridUnitType.Star:
                        retStars = DefUserSize.Value;
                        MinSize = DefUserMin;
                        MeasureSize = availableSize;
                        break;
                }

                DesiredSize = MinSize;
                return retStars;
            }