/// <include file='doc\FontUnit.uex' path='docs/doc[@for="FontUnit.FontUnit4"]/*' /> /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public FontUnit(string value, CultureInfo culture) { this.type = FontSize.NotSet; this.value = Unit.Empty; if ((value != null) && (value.Length > 0)) { // This is invariant because it acts like an enum with a number together. // The enum part is invariant, but the number uses current culture. char firstChar = Char.ToLower(value[0], CultureInfo.InvariantCulture); if (firstChar == 'x') { string lcaseValue = value.ToLower(CultureInfo.InvariantCulture); if (lcaseValue.Equals("xx-small") || lcaseValue.Equals("xxsmall")) { this.type = FontSize.XXSmall; return; } else if (lcaseValue.Equals("x-small") || lcaseValue.Equals("xsmall")) { this.type = FontSize.XSmall; return; } else if (lcaseValue.Equals("x-large") || lcaseValue.Equals("xlarge")) { this.type = FontSize.XLarge; return; } else if (lcaseValue.Equals("xx-large") || lcaseValue.Equals("xxlarge")) { this.type = FontSize.XXLarge; return; } } else if (firstChar == 's') { string lcaseValue = value.ToLower(CultureInfo.InvariantCulture); if (lcaseValue.Equals("small")) { this.type = FontSize.Small; return; } else if (lcaseValue.Equals("smaller")) { this.type = FontSize.Smaller; return; } } else if (firstChar == 'l') { string lcaseValue = value.ToLower(CultureInfo.InvariantCulture); if (lcaseValue.Equals("large")) { this.type = FontSize.Large; return; } if (lcaseValue.Equals("larger")) { this.type = FontSize.Larger; return; } } else if ((firstChar == 'm') && (value.ToLower(CultureInfo.InvariantCulture).Equals("medium"))) { this.type = FontSize.Medium; return; } this.value = new Unit(value, culture, UnitType.Point); this.type = FontSize.AsUnit; } }