Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / localization.cs / 1305600 / localization.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Localization.Comments & Localization.Attributes attached properties // // History: // 12/4/2004: Garyyang Created the file // 3/11/2005: garyyang rename Loc to Localization class // //--------------------------------------------------------------------------- using System.Collections; using System.Diagnostics; using MS.Internal.Globalization; namespace System.Windows { // // Note: the class name and property name must be kept in [....]'ed with // Framework\MS\Internal\Globalization\LocalizationComments.cs file. // Compiler checks for them by literal string comparisons. // ////// Class defines attached properties for Comments and Localizability /// public static class Localization { ////// DependencyProperty for Comments property. /// public static readonly DependencyProperty CommentsProperty = DependencyProperty.RegisterAttached( "Comments", typeof(string), typeof(Localization) ); ////// DependencyProperty for Localizability property. /// public static readonly DependencyProperty AttributesProperty = DependencyProperty.RegisterAttached( "Attributes", typeof(string), typeof(Localization) ); ////// Reads the attached property Comments from given element. /// /// The element from which to read the attached property. ///The property's value. [AttachedPropertyBrowsableForType(typeof(object))] public static string GetComments(object element) { if (element == null) { throw new ArgumentNullException("element"); } return GetValue(element, CommentsProperty); } ////// Writes the attached property Comments to the given element. /// /// The element to which to write the attached property. /// The property value to set public static void SetComments(object element, string comments) { if (element == null) { throw new ArgumentNullException("element"); } LocComments.ParsePropertyComments(comments); SetValue(element, CommentsProperty, comments); } ////// Reads the attached property Localizability from given element. /// /// The element from which to read the attached property. ///The property's value. [AttachedPropertyBrowsableForType(typeof(object))] public static string GetAttributes(object element) { if (element == null) { throw new ArgumentNullException("element"); } return GetValue(element, AttributesProperty); } ////// Writes the attached property Localizability to the given element. /// /// The element to which to write the attached property. /// The property value to set public static void SetAttributes(object element, string attributes) { if (element == null) { throw new ArgumentNullException("element"); } LocComments.ParsePropertyLocalizabilityAttributes(attributes); SetValue(element, AttributesProperty, attributes); } private static string GetValue(object element, DependencyProperty property) { DependencyObject dependencyObject = element as DependencyObject; if (dependencyObject != null) { // For DO, get the value from the property system return (string) dependencyObject.GetValue(property); } // For objects, get the value from our own hashtable if (property == CommentsProperty) { lock(_commentsOnObjects.SyncRoot) { return (string) _commentsOnObjects[element]; } } else { Debug.Assert(property == AttributesProperty); lock(_attributesOnObjects.SyncRoot) { return (string) _attributesOnObjects[element]; } } } private static void SetValue(object element, DependencyProperty property, string value) { DependencyObject dependencyObject = element as DependencyObject; if (dependencyObject != null) { // For DO, store the value in the property system dependencyObject.SetValue(property, value); return; } // For other objects, store the value in our own hashtable if (property == CommentsProperty) { lock(_commentsOnObjects.SyncRoot) { _commentsOnObjects[element] = value; } } else { Debug.Assert(property == AttributesProperty); lock(_attributesOnObjects.SyncRoot) { _attributesOnObjects[element] = value; } } } /// /// private storage for values set on objects /// private static Hashtable _commentsOnObjects = new Hashtable(); private static Hashtable _attributesOnObjects = new Hashtable(); } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Localization.Comments & Localization.Attributes attached properties // // History: // 12/4/2004: Garyyang Created the file // 3/11/2005: garyyang rename Loc to Localization class // //--------------------------------------------------------------------------- using System.Collections; using System.Diagnostics; using MS.Internal.Globalization; namespace System.Windows { // // Note: the class name and property name must be kept in [....]'ed with // Framework\MS\Internal\Globalization\LocalizationComments.cs file. // Compiler checks for them by literal string comparisons. // ////// Class defines attached properties for Comments and Localizability /// public static class Localization { ////// DependencyProperty for Comments property. /// public static readonly DependencyProperty CommentsProperty = DependencyProperty.RegisterAttached( "Comments", typeof(string), typeof(Localization) ); ////// DependencyProperty for Localizability property. /// public static readonly DependencyProperty AttributesProperty = DependencyProperty.RegisterAttached( "Attributes", typeof(string), typeof(Localization) ); ////// Reads the attached property Comments from given element. /// /// The element from which to read the attached property. ///The property's value. [AttachedPropertyBrowsableForType(typeof(object))] public static string GetComments(object element) { if (element == null) { throw new ArgumentNullException("element"); } return GetValue(element, CommentsProperty); } ////// Writes the attached property Comments to the given element. /// /// The element to which to write the attached property. /// The property value to set public static void SetComments(object element, string comments) { if (element == null) { throw new ArgumentNullException("element"); } LocComments.ParsePropertyComments(comments); SetValue(element, CommentsProperty, comments); } ////// Reads the attached property Localizability from given element. /// /// The element from which to read the attached property. ///The property's value. [AttachedPropertyBrowsableForType(typeof(object))] public static string GetAttributes(object element) { if (element == null) { throw new ArgumentNullException("element"); } return GetValue(element, AttributesProperty); } ////// Writes the attached property Localizability to the given element. /// /// The element to which to write the attached property. /// The property value to set public static void SetAttributes(object element, string attributes) { if (element == null) { throw new ArgumentNullException("element"); } LocComments.ParsePropertyLocalizabilityAttributes(attributes); SetValue(element, AttributesProperty, attributes); } private static string GetValue(object element, DependencyProperty property) { DependencyObject dependencyObject = element as DependencyObject; if (dependencyObject != null) { // For DO, get the value from the property system return (string) dependencyObject.GetValue(property); } // For objects, get the value from our own hashtable if (property == CommentsProperty) { lock(_commentsOnObjects.SyncRoot) { return (string) _commentsOnObjects[element]; } } else { Debug.Assert(property == AttributesProperty); lock(_attributesOnObjects.SyncRoot) { return (string) _attributesOnObjects[element]; } } } private static void SetValue(object element, DependencyProperty property, string value) { DependencyObject dependencyObject = element as DependencyObject; if (dependencyObject != null) { // For DO, store the value in the property system dependencyObject.SetValue(property, value); return; } // For other objects, store the value in our own hashtable if (property == CommentsProperty) { lock(_commentsOnObjects.SyncRoot) { _commentsOnObjects[element] = value; } } else { Debug.Assert(property == AttributesProperty); lock(_attributesOnObjects.SyncRoot) { _attributesOnObjects[element] = value; } } } /// /// private storage for values set on objects /// private static Hashtable _commentsOnObjects = new Hashtable(); private static Hashtable _attributesOnObjects = new Hashtable(); } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AttributeInfo.cs
- XmlMembersMapping.cs
- LineBreak.cs
- ComponentResourceKey.cs
- GeneralTransform3DCollection.cs
- TiffBitmapDecoder.cs
- DocumentViewerAutomationPeer.cs
- Label.cs
- HTTPRemotingHandler.cs
- FlowNode.cs
- UInt32.cs
- SmtpCommands.cs
- ExtensionSimplifierMarkupObject.cs
- ObjectDataSourceMethodEventArgs.cs
- DnsPermission.cs
- DataPagerFieldItem.cs
- NativeMethods.cs
- MasterPageParser.cs
- EpmContentDeSerializer.cs
- RoutedEventConverter.cs
- GacUtil.cs
- Operators.cs
- EmissiveMaterial.cs
- SelectionService.cs
- InvalidPrinterException.cs
- ExpandableObjectConverter.cs
- ErrorStyle.cs
- DecimalKeyFrameCollection.cs
- DeobfuscatingStream.cs
- DeleteBookmarkScope.cs
- NullableBoolConverter.cs
- ConnectionConsumerAttribute.cs
- ChangeTracker.cs
- MeasureItemEvent.cs
- AmbientLight.cs
- AncestorChangedEventArgs.cs
- UniqueID.cs
- HeaderedItemsControl.cs
- HttpRequest.cs
- SiteMapProvider.cs
- MethodRental.cs
- Size.cs
- DebugView.cs
- ColumnTypeConverter.cs
- MarkerProperties.cs
- GlobalizationSection.cs
- WebPartHeaderCloseVerb.cs
- SchemaTableColumn.cs
- ApplicationManager.cs
- SqlBuilder.cs
- GroupBoxAutomationPeer.cs
- Transform3DCollection.cs
- CodeChecksumPragma.cs
- FormClosingEvent.cs
- DeploymentSection.cs
- ServicePointManager.cs
- StaticFileHandler.cs
- ReflectionHelper.cs
- LinkedDataMemberFieldEditor.cs
- OpenTypeMethods.cs
- PropertyGrid.cs
- QilUnary.cs
- mediapermission.cs
- ClonableStack.cs
- ObjectDataSource.cs
- HitTestParameters.cs
- ConfigurationPropertyAttribute.cs
- OverrideMode.cs
- PrivilegedConfigurationManager.cs
- EventLogPropertySelector.cs
- ExitEventArgs.cs
- SqlDataSourceStatusEventArgs.cs
- FileUtil.cs
- LinkedResourceCollection.cs
- CssClassPropertyAttribute.cs
- BindingBase.cs
- AnnouncementSendsAsyncResult.cs
- OracleCommand.cs
- IntSecurity.cs
- ServiceModelSecurityTokenTypes.cs
- EditableRegion.cs
- PackageRelationshipSelector.cs
- PartialTrustValidationBehavior.cs
- ProfileManager.cs
- AddressingProperty.cs
- FilterException.cs
- HandleExceptionArgs.cs
- MSHTMLHost.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- CodeConditionStatement.cs
- Pair.cs
- CompiledRegexRunner.cs
- NumericUpDownAcceleration.cs
- ExpressionConverter.cs
- TraceProvider.cs
- ComponentCommands.cs
- X509UI.cs
- XamlSerializerUtil.cs
- SqlDelegatedTransaction.cs
- WindowsFormsHost.cs