Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / localization.cs / 1 / 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
- UInt16Storage.cs
- WindowsFont.cs
- SimpleWorkerRequest.cs
- ActivityInstance.cs
- Constraint.cs
- SoapObjectInfo.cs
- SecurityKeyUsage.cs
- CfgParser.cs
- Canvas.cs
- DeliveryStrategy.cs
- RawMouseInputReport.cs
- OperandQuery.cs
- ComboBoxItem.cs
- Stylus.cs
- AutomationAttributeInfo.cs
- TableLayoutStyleCollection.cs
- ZipQueryOperator.cs
- SoapBinding.cs
- FunctionQuery.cs
- PermissionListSet.cs
- CorrelationScope.cs
- MultiSelectRootGridEntry.cs
- UnmanagedBitmapWrapper.cs
- OutputCacheSection.cs
- RawAppCommandInputReport.cs
- RegionInfo.cs
- odbcmetadatacolumnnames.cs
- InternalTypeHelper.cs
- SpeechRecognizer.cs
- ObjectStorage.cs
- SmiEventStream.cs
- PrimaryKeyTypeConverter.cs
- TableItemPattern.cs
- thaishape.cs
- WebScriptServiceHostFactory.cs
- StrongNameKeyPair.cs
- SafeTokenHandle.cs
- UnmanagedMemoryStream.cs
- BamlBinaryReader.cs
- TransportBindingElementImporter.cs
- SimpleBitVector32.cs
- SortQuery.cs
- Point.cs
- Context.cs
- FormViewDeleteEventArgs.cs
- TabControl.cs
- TransformerInfoCollection.cs
- XpsViewerException.cs
- NetSectionGroup.cs
- IISUnsafeMethods.cs
- EngineSite.cs
- DefaultParameterValueAttribute.cs
- DocumentSignatureManager.cs
- CloudCollection.cs
- errorpatternmatcher.cs
- BlobPersonalizationState.cs
- RuleAttributes.cs
- X509CertificateCollection.cs
- SplayTreeNode.cs
- EncryptedPackage.cs
- HostingEnvironmentException.cs
- NotFiniteNumberException.cs
- DictionaryContent.cs
- webproxy.cs
- PropertyBuilder.cs
- EncoderParameters.cs
- WorkflowLayouts.cs
- BmpBitmapEncoder.cs
- IntSecurity.cs
- TypefaceCollection.cs
- recordstatescratchpad.cs
- SqlDataSourceCustomCommandEditor.cs
- FixedSOMTable.cs
- _Connection.cs
- DataTemplateSelector.cs
- CodeTypeDeclarationCollection.cs
- TextCharacters.cs
- HtmlWindow.cs
- OleDbConnectionInternal.cs
- RelatedPropertyManager.cs
- StreamingContext.cs
- StringArrayConverter.cs
- coordinator.cs
- SafeArrayRankMismatchException.cs
- CharStorage.cs
- AxisAngleRotation3D.cs
- XmlDataSourceNodeDescriptor.cs
- XPathParser.cs
- ServiceElement.cs
- FormViewInsertedEventArgs.cs
- PlatformCulture.cs
- UpdateCompiler.cs
- KeyGestureValueSerializer.cs
- TabControl.cs
- ObjectTypeMapping.cs
- AsyncStreamReader.cs
- SynchronizingStream.cs
- grammarelement.cs
- DependencyPropertyDescriptor.cs
- DbConnectionStringCommon.cs