Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Input / Command / MouseActionConverter.cs / 1305600 / MouseActionConverter.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: MouseActionConverter - Converts a MouseAction string
// to the *Type* that the string represents
//
//
// History:
// 05/01/2003 : Chandrasekhar Rentachintala - Created
//
//---------------------------------------------------------------------------
using System;
using System.ComponentModel; // for TypeConverter
using System.Globalization; // for CultureInfo
using System.Reflection;
using MS.Internal;
using System.Windows;
using System.Windows.Input;
using MS.Utility;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Input
{
///
/// MouseAction - Converter class for converting between a string and the Type of a MouseAction
///
public class MouseActionConverter : TypeConverter
{
///
/// CanConvertFrom - Used to check whether we can convert a string into a MouseAction
///
///ITypeDescriptorContext
///type to convert from
///true if the given type can be converted, false otherwise
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
// We can only handle string.
if (sourceType == typeof(string))
{
return true;
}
else
{
return false;
}
}
///
///TypeConverter method override.
///
///ITypeDescriptorContext
///Type to convert to
///true if conversion is possible
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
// We can convert to an InstanceDescriptor or to a string.
if (destinationType == typeof(string))
{
// When invoked by the serialization engine we can convert to string only for known type
if (context != null && context.Instance != null)
{
return (MouseActionConverter.IsDefinedMouseAction((MouseAction)context.Instance));
}
}
return false;
}
///
/// ConvertFrom()
///
/// Parser Context
/// Culture Info
/// MouseAction String
///
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object source)
{
if (source != null && source is string)
{
string mouseActionToken = ((string)source).Trim();
mouseActionToken = mouseActionToken.ToUpper(CultureInfo.InvariantCulture);
if (mouseActionToken == String.Empty)
return MouseAction.None;
MouseAction mouseAction = MouseAction.None;
switch (mouseActionToken)
{
case "LEFTCLICK" : mouseAction = MouseAction.LeftClick; break;
case "RIGHTCLICK" : mouseAction = MouseAction.RightClick; break;
case "MIDDLECLICK" : mouseAction = MouseAction.MiddleClick; break;
case "WHEELCLICK" : mouseAction = MouseAction.WheelClick; break;
case "LEFTDOUBLECLICK" : mouseAction = MouseAction.LeftDoubleClick; break;
case "RIGHTDOUBLECLICK" : mouseAction = MouseAction.RightDoubleClick; break;
case "MIDDLEDOUBLECLICK": mouseAction = MouseAction.MiddleDoubleClick; break;
default :
throw new NotSupportedException(SR.Get(SRID.Unsupported_MouseAction, mouseActionToken));
}
return mouseAction;
}
throw GetConvertFromException(source);
}
///
/// ConvertTo()
///
/// Serialization Context
/// Culture Info
/// MouseAction value
/// Type to Convert
/// string if parameter is a MouseAction
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
if (destinationType == null)
throw new ArgumentNullException("destinationType");
if (destinationType == typeof(string) && value != null)
{
MouseAction mouseActionValue = (MouseAction)value ;
if (MouseActionConverter.IsDefinedMouseAction(mouseActionValue))
{
string mouseAction = null;
switch (mouseActionValue)
{
case MouseAction.None : mouseAction=String.Empty; break;
case MouseAction.LeftClick : mouseAction="LeftClick"; break;
case MouseAction.RightClick : mouseAction="RightClick"; break;
case MouseAction.MiddleClick : mouseAction="MiddleClick"; break;
case MouseAction.WheelClick : mouseAction="WheelClick"; break;
case MouseAction.LeftDoubleClick : mouseAction="LeftDoubleClick"; break;
case MouseAction.RightDoubleClick : mouseAction="RightDoubleClick"; break;
case MouseAction.MiddleDoubleClick: mouseAction="MiddleDoubleClick"; break;
}
if (mouseAction != null)
return mouseAction;
}
throw new InvalidEnumArgumentException("value", (int)mouseActionValue, typeof(MouseAction));
}
throw GetConvertToException(value,destinationType);
}
// Helper like Enum.IsDefined, for MouseAction.
internal static bool IsDefinedMouseAction(MouseAction mouseAction)
{
return (mouseAction >= MouseAction.None && mouseAction <= MouseAction.MiddleDoubleClick);
}
}
}
// 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
- Quaternion.cs
- TextServicesLoader.cs
- SqlFileStream.cs
- PriorityBindingExpression.cs
- NameSpaceExtractor.cs
- TextRangeEditLists.cs
- ErrorItem.cs
- InternalsVisibleToAttribute.cs
- FtpWebRequest.cs
- DataGridBoundColumn.cs
- ResXBuildProvider.cs
- InternalResources.cs
- PropertyManager.cs
- SystemIcmpV4Statistics.cs
- HtmlWindow.cs
- RelOps.cs
- SearchForVirtualItemEventArgs.cs
- TemplateBaseAction.cs
- XPathArrayIterator.cs
- SplitContainer.cs
- StaticResourceExtension.cs
- StdValidatorsAndConverters.cs
- AdPostCacheSubstitution.cs
- Double.cs
- ConfigurationStrings.cs
- AuthenticatedStream.cs
- EnumBuilder.cs
- CssStyleCollection.cs
- SystemColors.cs
- ProfileService.cs
- DisplayInformation.cs
- DocumentSchemaValidator.cs
- HybridCollection.cs
- DesignBindingEditor.cs
- XmlBoundElement.cs
- ISAPIWorkerRequest.cs
- TextParagraphProperties.cs
- Int32RectConverter.cs
- TraceSource.cs
- SecurityUniqueId.cs
- MergeFailedEvent.cs
- DataPagerField.cs
- EncodedStreamFactory.cs
- ListBoxItem.cs
- FragmentQueryKB.cs
- Serializer.cs
- ProbeMatchesCD1.cs
- AnnotationObservableCollection.cs
- ArcSegment.cs
- Error.cs
- SerializationTrace.cs
- RuleInfoComparer.cs
- StatusBarDrawItemEvent.cs
- AssemblyName.cs
- SecurityState.cs
- SettingsSavedEventArgs.cs
- NonSerializedAttribute.cs
- RoutingSection.cs
- StylusCaptureWithinProperty.cs
- CodeComment.cs
- LineInfo.cs
- ResizeBehavior.cs
- ConfigXmlSignificantWhitespace.cs
- CodeTypeParameter.cs
- SizeFConverter.cs
- DescendantOverDescendantQuery.cs
- LinkedResource.cs
- BrowserDefinitionCollection.cs
- ReceiveContext.cs
- DoubleAnimationUsingPath.cs
- RelatedImageListAttribute.cs
- RankException.cs
- TreeViewHitTestInfo.cs
- PasswordDeriveBytes.cs
- SecurityManager.cs
- ReaderContextStackData.cs
- autovalidator.cs
- MapPathBasedVirtualPathProvider.cs
- AdornerHitTestResult.cs
- PartBasedPackageProperties.cs
- arabicshape.cs
- IImplicitResourceProvider.cs
- DataPager.cs
- PositiveTimeSpanValidatorAttribute.cs
- EditBehavior.cs
- DeploymentSectionCache.cs
- EntityDataReader.cs
- CqlLexerHelpers.cs
- WorkflowDesignerColors.cs
- Font.cs
- InheritanceRules.cs
- DecoderNLS.cs
- XsltFunctions.cs
- TableLayoutStyleCollection.cs
- Triangle.cs
- TaskFileService.cs
- HashJoinQueryOperatorEnumerator.cs
- _IPv4Address.cs
- IIS7WorkerRequest.cs
- PrintDialog.cs