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
- OdbcConnection.cs
- DataGridViewRowCancelEventArgs.cs
- WindowsGrip.cs
- CompilerHelpers.cs
- DataRow.cs
- FormViewUpdatedEventArgs.cs
- WorkflowApplicationUnloadedException.cs
- Font.cs
- DefaultClaimSet.cs
- CultureTable.cs
- DocumentSequence.cs
- OverflowException.cs
- ObjectReaderCompiler.cs
- OdbcConnectionFactory.cs
- ReadOnlyTernaryTree.cs
- ConnectionProviderAttribute.cs
- RouteUrlExpressionBuilder.cs
- RemoteDebugger.cs
- SQLSingle.cs
- QilScopedVisitor.cs
- DecoderReplacementFallback.cs
- DelegatingConfigHost.cs
- SystemColors.cs
- RIPEMD160Managed.cs
- ExpandoObject.cs
- ScriptComponentDescriptor.cs
- PolyLineSegment.cs
- TextElementEnumerator.cs
- PKCS1MaskGenerationMethod.cs
- InheritanceService.cs
- PlainXmlSerializer.cs
- PersonalizationStateInfo.cs
- XmlReflectionImporter.cs
- InlineCollection.cs
- Binding.cs
- DataBoundControlHelper.cs
- Point3D.cs
- FileRegion.cs
- SafePipeHandle.cs
- EmbeddedMailObject.cs
- SoapSchemaExporter.cs
- externdll.cs
- SingleSelectRootGridEntry.cs
- UnicodeEncoding.cs
- ZipIOLocalFileBlock.cs
- FreezableDefaultValueFactory.cs
- CodeCommentStatement.cs
- StylusButton.cs
- BrowserTree.cs
- ProxyWebPart.cs
- CodeCastExpression.cs
- CellNormalizer.cs
- StringFreezingAttribute.cs
- CatalogZone.cs
- MSAAEventDispatcher.cs
- SamlSerializer.cs
- CacheModeConverter.cs
- PageParserFilter.cs
- ComboBoxDesigner.cs
- RealProxy.cs
- Switch.cs
- GridViewCommandEventArgs.cs
- TreeView.cs
- XmlSecureResolver.cs
- _AutoWebProxyScriptEngine.cs
- TextSelection.cs
- OleDbConnection.cs
- ConfigXmlSignificantWhitespace.cs
- NotifyInputEventArgs.cs
- AnonymousIdentificationSection.cs
- MeasurementDCInfo.cs
- EntityDataSourceContextCreatedEventArgs.cs
- CanonicalFormWriter.cs
- VerificationException.cs
- ToolStripControlHost.cs
- Property.cs
- CapabilitiesState.cs
- WebPartHeaderCloseVerb.cs
- DesignerToolStripControlHost.cs
- RootProfilePropertySettingsCollection.cs
- Pkcs9Attribute.cs
- FixedPageStructure.cs
- Keyboard.cs
- RightsManagementInformation.cs
- DispatcherOperation.cs
- SecurityDescriptor.cs
- TreeView.cs
- PieceDirectory.cs
- Control.cs
- _BasicClient.cs
- ModelPerspective.cs
- smtpconnection.cs
- EditorBrowsableAttribute.cs
- Zone.cs
- DictationGrammar.cs
- XmlDocumentType.cs
- ToggleButtonAutomationPeer.cs
- ZoneButton.cs
- Size.cs
- CustomError.cs