Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / System / Windows / Input / Command / MouseGestureConverter.cs / 1 / MouseGestureConverter.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: MouseGestureConverter - Converts a MouseGesture 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; namespace System.Windows.Input { ////// MouseGesture - Converter class for converting between a string and the Type of a MouseGesture /// public class MouseGestureConverter : TypeConverter { private const char MODIFIERS_DELIMITER = '+' ; ////// CanConvertFrom() /// ///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; } } ////// ConvertFrom /// /// Parser Context /// Culture Info /// MouseGesture String ///public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object source) { if (source is string && source != null) { string fullName = ((string)source).Trim(); string mouseActionToken; string modifiersToken; if (fullName == String.Empty) return new MouseGesture(MouseAction.None, ModifierKeys.None); ; // break apart LocalName and Prefix int Offset = fullName.LastIndexOf(MODIFIERS_DELIMITER); if (Offset >= 0) { // modifiers exists modifiersToken = fullName.Substring(0,Offset); mouseActionToken = fullName.Substring(Offset + 1); } else { modifiersToken = String.Empty; mouseActionToken = fullName; } TypeConverter mouseActionConverter = TypeDescriptor.GetConverter(typeof(System.Windows.Input.MouseAction)); if (null != mouseActionConverter ) { object mouseAction = mouseActionConverter.ConvertFrom(context, culture, mouseActionToken); // mouseAction Converter will throw Exception, if it fails, // so we don't need to check once more for bogus // MouseAction values if (mouseAction != null) { if (modifiersToken != String.Empty) { TypeConverter modifierKeysConverter = TypeDescriptor.GetConverter(typeof(System.Windows.Input.ModifierKeys)); if (null != modifierKeysConverter) { object modifierKeys = modifierKeysConverter.ConvertFrom(context, culture, modifiersToken); if (modifierKeys != null && modifierKeys is ModifierKeys) { return new MouseGesture((MouseAction)mouseAction, (ModifierKeys)modifierKeys); } } } else { return new MouseGesture((MouseAction)mouseAction); } } } } throw GetConvertFromException(source); } /// ///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) { MouseGesture mouseGesture = context.Instance as MouseGesture; if (mouseGesture != null) { return (ModifierKeysConverter.IsDefinedModifierKeys(mouseGesture.Modifiers) && MouseActionConverter.IsDefinedMouseAction(mouseGesture.MouseAction)); } } } return false; } ////// ConvertTo() /// /// Serialization Context /// Culture Info /// MouseGesture value /// Type to Convert ///string if parameter is a MouseGesture public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == null) throw new ArgumentNullException("destinationType"); if (destinationType == typeof(string)) { if (value == null) return String.Empty; MouseGesture mouseGesture = value as MouseGesture; if (mouseGesture != null) { string strGesture = ""; TypeConverter modifierKeysConverter = TypeDescriptor.GetConverter(typeof(System.Windows.Input.ModifierKeys)); if (null != modifierKeysConverter) { strGesture += modifierKeysConverter.ConvertTo(context, culture, mouseGesture.Modifiers, destinationType) as string; if (strGesture != String.Empty) { strGesture += MODIFIERS_DELIMITER ; } } TypeConverter mouseActionConverter = TypeDescriptor.GetConverter(typeof(System.Windows.Input.MouseAction)); if (null != mouseActionConverter) { strGesture += mouseActionConverter.ConvertTo(context, culture, mouseGesture.MouseAction, destinationType) as string; } return strGesture; } } throw GetConvertToException(value,destinationType); } } } // 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: MouseGestureConverter - Converts a MouseGesture 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; namespace System.Windows.Input { ////// MouseGesture - Converter class for converting between a string and the Type of a MouseGesture /// public class MouseGestureConverter : TypeConverter { private const char MODIFIERS_DELIMITER = '+' ; ////// CanConvertFrom() /// ///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; } } ////// ConvertFrom /// /// Parser Context /// Culture Info /// MouseGesture String ///public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object source) { if (source is string && source != null) { string fullName = ((string)source).Trim(); string mouseActionToken; string modifiersToken; if (fullName == String.Empty) return new MouseGesture(MouseAction.None, ModifierKeys.None); ; // break apart LocalName and Prefix int Offset = fullName.LastIndexOf(MODIFIERS_DELIMITER); if (Offset >= 0) { // modifiers exists modifiersToken = fullName.Substring(0,Offset); mouseActionToken = fullName.Substring(Offset + 1); } else { modifiersToken = String.Empty; mouseActionToken = fullName; } TypeConverter mouseActionConverter = TypeDescriptor.GetConverter(typeof(System.Windows.Input.MouseAction)); if (null != mouseActionConverter ) { object mouseAction = mouseActionConverter.ConvertFrom(context, culture, mouseActionToken); // mouseAction Converter will throw Exception, if it fails, // so we don't need to check once more for bogus // MouseAction values if (mouseAction != null) { if (modifiersToken != String.Empty) { TypeConverter modifierKeysConverter = TypeDescriptor.GetConverter(typeof(System.Windows.Input.ModifierKeys)); if (null != modifierKeysConverter) { object modifierKeys = modifierKeysConverter.ConvertFrom(context, culture, modifiersToken); if (modifierKeys != null && modifierKeys is ModifierKeys) { return new MouseGesture((MouseAction)mouseAction, (ModifierKeys)modifierKeys); } } } else { return new MouseGesture((MouseAction)mouseAction); } } } } throw GetConvertFromException(source); } /// ///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) { MouseGesture mouseGesture = context.Instance as MouseGesture; if (mouseGesture != null) { return (ModifierKeysConverter.IsDefinedModifierKeys(mouseGesture.Modifiers) && MouseActionConverter.IsDefinedMouseAction(mouseGesture.MouseAction)); } } } return false; } ////// ConvertTo() /// /// Serialization Context /// Culture Info /// MouseGesture value /// Type to Convert ///string if parameter is a MouseGesture public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == null) throw new ArgumentNullException("destinationType"); if (destinationType == typeof(string)) { if (value == null) return String.Empty; MouseGesture mouseGesture = value as MouseGesture; if (mouseGesture != null) { string strGesture = ""; TypeConverter modifierKeysConverter = TypeDescriptor.GetConverter(typeof(System.Windows.Input.ModifierKeys)); if (null != modifierKeysConverter) { strGesture += modifierKeysConverter.ConvertTo(context, culture, mouseGesture.Modifiers, destinationType) as string; if (strGesture != String.Empty) { strGesture += MODIFIERS_DELIMITER ; } } TypeConverter mouseActionConverter = TypeDescriptor.GetConverter(typeof(System.Windows.Input.MouseAction)); if (null != mouseActionConverter) { strGesture += mouseActionConverter.ConvertTo(context, culture, mouseGesture.MouseAction, destinationType) as string; } return strGesture; } } throw GetConvertToException(value,destinationType); } } } // 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
- TraceListeners.cs
- Int32RectValueSerializer.cs
- XmlElement.cs
- DataServiceHost.cs
- GridErrorDlg.cs
- SwitchAttribute.cs
- TextEmbeddedObject.cs
- WpfXamlType.cs
- CapabilitiesAssignment.cs
- XmlSchemaObject.cs
- TableLayoutRowStyleCollection.cs
- NodeFunctions.cs
- IndexingContentUnit.cs
- Messages.cs
- ServiceMetadataContractBehavior.cs
- DependencyObjectProvider.cs
- PageCatalogPart.cs
- DateTimeOffsetConverter.cs
- SiteIdentityPermission.cs
- ScalarType.cs
- UdpRetransmissionSettings.cs
- GiveFeedbackEventArgs.cs
- ActivitySurrogate.cs
- TimeStampChecker.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- PropertyEntry.cs
- ParagraphVisual.cs
- AttachedPropertyBrowsableAttribute.cs
- ObjectPersistData.cs
- XmlSchemaParticle.cs
- Errors.cs
- AnnotationAuthorChangedEventArgs.cs
- CryptographicAttribute.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- SourceElementsCollection.cs
- _UriSyntax.cs
- UICuesEvent.cs
- ProcessInputEventArgs.cs
- IdentitySection.cs
- XsdDuration.cs
- DataSourceControl.cs
- ConfigurationSectionGroup.cs
- X509CertificateValidator.cs
- SubMenuStyleCollection.cs
- ListItemCollection.cs
- SpecialFolderEnumConverter.cs
- SatelliteContractVersionAttribute.cs
- IRCollection.cs
- FormView.cs
- ElementInit.cs
- Condition.cs
- GridToolTip.cs
- CommandLibraryHelper.cs
- storepermissionattribute.cs
- CollectionBase.cs
- FilterQuery.cs
- SystemIPAddressInformation.cs
- ProtocolElement.cs
- CalendarDesigner.cs
- Axis.cs
- AttributeCallbackBuilder.cs
- BooleanAnimationBase.cs
- JsonStringDataContract.cs
- FileReservationCollection.cs
- Literal.cs
- RealProxy.cs
- TypeToArgumentTypeConverter.cs
- DictionarySectionHandler.cs
- ComAwareEventInfo.cs
- DataGridCaption.cs
- TraceHwndHost.cs
- DbProviderManifest.cs
- XamlSerializerUtil.cs
- DoubleMinMaxAggregationOperator.cs
- SyndicationDeserializer.cs
- UInt32Storage.cs
- FontCacheUtil.cs
- DataGridViewImageColumn.cs
- FlowDocumentReaderAutomationPeer.cs
- PrinterResolution.cs
- AssertFilter.cs
- WebConfigurationFileMap.cs
- SecureConversationVersion.cs
- SyntaxCheck.cs
- SqlDataSourceQueryEditorForm.cs
- ImageCodecInfo.cs
- EmbeddedMailObject.cs
- XmlBinaryReader.cs
- BitmapEffectInput.cs
- RectConverter.cs
- HttpGetProtocolImporter.cs
- CachedPathData.cs
- Line.cs
- RtfToXamlLexer.cs
- EntityViewGenerator.cs
- AvTrace.cs
- UdpReplyToBehavior.cs
- SerializeAbsoluteContext.cs
- Html32TextWriter.cs
- ErrorProvider.cs