/// <summary> /// Attempts to convert a RibbonControlLength instance to the given type. /// </summary> public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == null) { throw new ArgumentNullException("destinationType"); } if (value != null && value is RibbonControlLength) { RibbonControlLength length = (RibbonControlLength)value; if (destinationType == typeof(string)) { return(ToString(length, culture)); } if (destinationType == typeof(InstanceDescriptor)) { ConstructorInfo ci = typeof(RibbonControlLength).GetConstructor(new Type[] { typeof(double), typeof(RibbonControlLengthUnitType) }); return(new InstanceDescriptor(ci, new object[] { length.Value, length.RibbonControlLengthUnitType })); } } throw GetConvertToException(value, destinationType); }
private static bool ValidateMaxWidth(object maxWidth) { RibbonControlLength length = (RibbonControlLength)maxWidth; if (length.IsAuto || length.IsStar || DoubleUtil.LessThan(length.Value, 0)) { return(false); } return(true); }
private static bool ValidateWidth(object width) { RibbonControlLength length = (RibbonControlLength)width; if (double.IsInfinity(length.Value) || DoubleUtil.LessThanOrClose(length.Value, 0)) { return(false); } return(true); }
// Converts RibbonControlLength when specified in terms of Items (items of Contained _firstGallery) to // actual pixel value by using Item's width in pixels. private double GetPixelValueFromRibbonControlLength(RibbonControlLength cl) { if (_firstGallery != null) { double itemWidth = _firstGallery.MaxColumnWidth; if (cl.RibbonControlLengthUnitType == RibbonControlLengthUnitType.Item) { return(cl.Value * itemWidth); } } if (cl.IsAuto || cl.IsStar) { return(Double.NaN); } return(cl.Value); }
/// <summary> /// Converts a RibbonControlLength instance to a String given the CultureInfo. /// </summary> internal static string ToString(RibbonControlLength length, CultureInfo cultureInfo) { switch (length.RibbonControlLengthUnitType) { // for Auto print out "Auto". value is always "1.0" case RibbonControlLengthUnitType.Auto: return("Auto"); case RibbonControlLengthUnitType.Item: return(Convert.ToString(length.Value, cultureInfo) + "items"); // Star has one special case when value is "1.0". // in this case drop value part and print only "Star" case RibbonControlLengthUnitType.Star: return(DoubleUtil.IsOne(length.Value) ? "*" : Convert.ToString(length.Value, cultureInfo) + "*"); // for Pixel print out the numeric value. "px" can be omitted. default: return(Convert.ToString(length.Value, cultureInfo)); } }
/// <summary> /// Converts a RibbonControlLength instance to a String given the CultureInfo. /// </summary> internal static string ToString(RibbonControlLength length, CultureInfo cultureInfo) { switch (length.RibbonControlLengthUnitType) { // for Auto print out "Auto". value is always "1.0" case RibbonControlLengthUnitType.Auto: return "Auto"; case RibbonControlLengthUnitType.Item: return Convert.ToString(length.Value, cultureInfo) + "items"; // Star has one special case when value is "1.0". // in this case drop value part and print only "Star" case RibbonControlLengthUnitType.Star: return (DoubleUtil.IsOne(length.Value) ? "*" : Convert.ToString(length.Value, cultureInfo) + "*"); // for Pixel print out the numeric value. "px" can be omitted. default: return Convert.ToString(length.Value, cultureInfo); } }