Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebControls / FontUnit.cs / 1 / FontUnit.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System;
using System.ComponentModel;
using System.Globalization;
using System.Security.Permissions;
using System.Web.Util;
///
/// Respresent the font unit.
///
[
TypeConverterAttribute(typeof(FontUnitConverter))
]
[Serializable]
public struct FontUnit {
///
/// Specifies an empty . This field is read only.
///
public static readonly FontUnit Empty = new FontUnit();
///
/// Specifies a with
/// font. This field is read only.
///
public static readonly FontUnit Smaller = new FontUnit(FontSize.Smaller);
///
/// Specifies a with
/// font. This field is read only.
///
public static readonly FontUnit Larger = new FontUnit(FontSize.Larger);
///
/// Specifies a with
/// font. This field is read only.
///
public static readonly FontUnit XXSmall = new FontUnit(FontSize.XXSmall);
///
/// Specifies a with
/// font. This field is read only.
///
public static readonly FontUnit XSmall = new FontUnit(FontSize.XSmall);
///
/// Specifies a with
/// font. This field is read only.
///
public static readonly FontUnit Small = new FontUnit(FontSize.Small);
///
/// Specifies a with
/// font. This field is read only.
///
public static readonly FontUnit Medium = new FontUnit(FontSize.Medium);
///
/// Specifies a with
/// font. This field is read only.
///
public static readonly FontUnit Large = new FontUnit(FontSize.Large);
///
/// Specifies a with
/// font. This field is read only.
///
public static readonly FontUnit XLarge = new FontUnit(FontSize.XLarge);
///
/// Specifies a with
/// font. This field is read only.
///
public static readonly FontUnit XXLarge = new FontUnit(FontSize.XXLarge);
private readonly FontSize type;
private readonly Unit value;
///
/// Initializes a new instance of the class with a .
///
public FontUnit(FontSize type) {
if (type < FontSize.NotSet || type > FontSize.XXLarge) {
throw new ArgumentOutOfRangeException("type");
}
this.type = type;
if (this.type == FontSize.AsUnit) {
value = Unit.Point(10);
}
else {
value = Unit.Empty;
}
}
///
/// Initializes a new instance of the class with a .
///
public FontUnit(Unit value) {
this.type = FontSize.NotSet;
if (value.IsEmpty == false) {
this.type = FontSize.AsUnit;
this.value = value;
}
else {
this.value = Unit.Empty;
}
}
///
/// Initializes a new instance of the class with an integer value.
///
public FontUnit(int value) {
this.type = FontSize.AsUnit;
this.value = Unit.Point(value);
}
///
/// Initializes a new instance of the class with a double value.
///
public FontUnit(double value) : this(new Unit(value, UnitType.Point)) {
}
///
/// Initializes a new instance of the class with a double value.
///
public FontUnit(double value, UnitType type) : this(new Unit(value, type)) {
}
///
/// Initializes a new instance of the class with a string.
///
public FontUnit(string value) : this(value, CultureInfo.CurrentCulture) {
}
///
/// [To be supplied.]
///
public FontUnit(string value, CultureInfo culture) {
this.type = FontSize.NotSet;
this.value = Unit.Empty;
if (!String.IsNullOrEmpty(value)) {
// 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') {
if (String.Equals(value, "xx-small", StringComparison.OrdinalIgnoreCase) ||
String.Equals(value, "xxsmall", StringComparison.OrdinalIgnoreCase)) {
this.type = FontSize.XXSmall;
return;
}
else if (String.Equals(value, "x-small", StringComparison.OrdinalIgnoreCase) ||
String.Equals(value, "xsmall", StringComparison.OrdinalIgnoreCase)) {
this.type = FontSize.XSmall;
return;
}
else if (String.Equals(value, "x-large", StringComparison.OrdinalIgnoreCase) ||
String.Equals(value, "xlarge", StringComparison.OrdinalIgnoreCase)) {
this.type = FontSize.XLarge;
return;
}
else if (String.Equals(value, "xx-large", StringComparison.OrdinalIgnoreCase) ||
String.Equals(value, "xxlarge", StringComparison.OrdinalIgnoreCase)) {
this.type = FontSize.XXLarge;
return;
}
}
else if (firstChar == 's') {
if (String.Equals(value, "small", StringComparison.OrdinalIgnoreCase)) {
this.type = FontSize.Small;
return;
}
else if (String.Equals(value, "smaller", StringComparison.OrdinalIgnoreCase)) {
this.type = FontSize.Smaller;
return;
}
}
else if (firstChar == 'l') {
if (String.Equals(value, "large", StringComparison.OrdinalIgnoreCase)) {
this.type = FontSize.Large;
return;
}
if (String.Equals(value, "larger", StringComparison.OrdinalIgnoreCase)) {
this.type = FontSize.Larger;
return;
}
}
else if ((firstChar == 'm') && String.Equals(value, "medium", StringComparison.OrdinalIgnoreCase)) {
this.type = FontSize.Medium;
return;
}
this.value = new Unit(value, culture, UnitType.Point);
this.type = FontSize.AsUnit;
}
}
///
/// Indicates whether the font size has been set.
///
public bool IsEmpty {
get {
return type == FontSize.NotSet;
}
}
///
/// Indicates the font size by type.
///
public FontSize Type {
get {
return type;
}
}
///
/// Indicates the font size by .
///
public Unit Unit {
get {
return value;
}
}
///
/// [To be supplied.]
///
public override int GetHashCode() {
return HashCodeCombiner.CombineHashCodes(type.GetHashCode(), value.GetHashCode());
}
///
/// Determines if the specified is equivilent to the represented by this instance.
///
public override bool Equals(object obj) {
if (obj == null || !(obj is FontUnit))
return false;
FontUnit f = (FontUnit)obj;
if ((f.type == type) && (f.value == value)) {
return true;
}
return false;
}
///
/// Compares two objects for equality.
///
public static bool operator ==(FontUnit left, FontUnit right) {
return ((left.type == right.type) && (left.value == right.value));
}
///
/// Compares two objects
/// for inequality.
///
public static bool operator !=(FontUnit left, FontUnit right) {
return ((left.type != right.type) || (left.value != right.value));
}
///
/// [To be supplied.]
///
public static FontUnit Parse(string s) {
return new FontUnit(s, CultureInfo.InvariantCulture);
}
///
/// [To be supplied.]
///
public static FontUnit Parse(string s, CultureInfo culture) {
return new FontUnit(s, culture);
}
///
/// Creates a of type Point from an integer value.
///
public static FontUnit Point(int n) {
return new FontUnit(n);
}
///
/// Convert a to a string.
///
public override string ToString() {
return ToString((IFormatProvider)CultureInfo.CurrentCulture);
}
public string ToString(CultureInfo culture) {
return ToString((IFormatProvider)culture);
}
public string ToString(IFormatProvider formatProvider) {
string s = String.Empty;
if (IsEmpty)
return s;
switch (type) {
case FontSize.AsUnit:
s = value.ToString(formatProvider);
break;
case FontSize.XXSmall:
s = "XX-Small";
break;
case FontSize.XSmall:
s = "X-Small";
break;
case FontSize.XLarge:
s = "X-Large";
break;
case FontSize.XXLarge:
s = "XX-Large";
break;
default:
s = PropertyConverter.EnumToString(typeof(FontSize), type);
break;
}
return s;
}
///
/// Implicitly creates a of type Point from an integer value.
///
public static implicit operator FontUnit(int n) {
return FontUnit.Point(n);
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EventRecordWrittenEventArgs.cs
- PartitionedDataSource.cs
- Select.cs
- EventInfo.cs
- XmlUrlEditor.cs
- GeneralTransform3D.cs
- PartialTrustVisibleAssembliesSection.cs
- RequestStatusBarUpdateEventArgs.cs
- DesignUtil.cs
- QueryAsyncResult.cs
- MessageSecurityOverHttpElement.cs
- ItemList.cs
- Exceptions.cs
- ActivityInterfaces.cs
- Identifier.cs
- MenuAdapter.cs
- EdmPropertyAttribute.cs
- ImageDrawing.cs
- TextEditor.cs
- ComponentManagerBroker.cs
- Registry.cs
- XmlNodeChangedEventManager.cs
- DataGridViewBand.cs
- DeadLetterQueue.cs
- DataExpression.cs
- SimpleTextLine.cs
- QilGeneratorEnv.cs
- ViewStateException.cs
- AsymmetricKeyExchangeFormatter.cs
- Triplet.cs
- ClientUtils.cs
- HttpApplicationFactory.cs
- TrackingAnnotationCollection.cs
- Size.cs
- PageTheme.cs
- EncryptedType.cs
- ToolboxDataAttribute.cs
- ContentElementAutomationPeer.cs
- DependencyPropertyValueSerializer.cs
- Filter.cs
- PixelShader.cs
- GcHandle.cs
- DataGridViewRow.cs
- PropertyGroupDescription.cs
- ISessionStateStore.cs
- DocumentSchemaValidator.cs
- SequenceDesigner.cs
- ScriptBehaviorDescriptor.cs
- BuilderInfo.cs
- TreeNode.cs
- CollectionConverter.cs
- SQLMoney.cs
- Guid.cs
- HideDisabledControlAdapter.cs
- PagedDataSource.cs
- FamilyCollection.cs
- AlternateView.cs
- Pointer.cs
- Codec.cs
- TriState.cs
- CharacterBuffer.cs
- Events.cs
- DataSourceCacheDurationConverter.cs
- SerialReceived.cs
- AttachedPropertyDescriptor.cs
- __ConsoleStream.cs
- EntityCommandCompilationException.cs
- DataGridViewLinkCell.cs
- DirectoryInfo.cs
- CodeGroup.cs
- BitmapEffectInputData.cs
- AdapterDictionary.cs
- InitialServerConnectionReader.cs
- DataListItemCollection.cs
- ListViewCommandEventArgs.cs
- MailMessage.cs
- SignedInfo.cs
- DateRangeEvent.cs
- ObjectDataSourceSelectingEventArgs.cs
- DataControlLinkButton.cs
- Int64.cs
- FunctionUpdateCommand.cs
- XmlObjectSerializer.cs
- EFTableProvider.cs
- RC2CryptoServiceProvider.cs
- HtmlInputReset.cs
- SizeConverter.cs
- SafeBuffer.cs
- FontWeightConverter.cs
- DependencyPropertyAttribute.cs
- fixedPageContentExtractor.cs
- HandledEventArgs.cs
- MenuItemAutomationPeer.cs
- XmlStreamedByteStreamReader.cs
- ArrangedElement.cs
- TextOptions.cs
- QilGeneratorEnv.cs
- EditingMode.cs
- ListControl.cs
- PriorityChain.cs