///<summary> ///TypeConverter method override. ///</summary> ///<param name="context">ITypeDescriptorContext</param> ///<param name="destinationType">Type to convert to</param> ///<returns>true if conversion is possible</returns> 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); }
/// <summary> /// CanConvertToString() /// </summary> /// <param name="value"></param> /// <param name="context"></param> /// <returns></returns> /// <ExternalAPI/> public override bool CanConvertToString(object value, IValueSerializerContext context) { bool result = false; MouseGesture mouseGesture = value as MouseGesture; if (mouseGesture != null) { if (ModifierKeysConverter.IsDefinedModifierKeys(mouseGesture.Modifiers) && MouseActionConverter.IsDefinedMouseAction(mouseGesture.MouseAction)) { result = true; } } return(result); }
/// <summary> /// ConvertTo() /// </summary> /// <param name="context">Serialization Context</param> /// <param name="culture">Culture Info</param> /// <param name="value">MouseAction value </param> /// <param name="destinationType">Type to Convert</param> /// <returns>string if parameter is a MouseAction</returns> 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); }
/// <summary> /// CanConvertToString() /// </summary> /// <param name="value"></param> /// <param name="context"></param> /// <returns></returns> /// <ExternalAPI/> public override bool CanConvertToString(object value, IValueSerializerContext context) { return(value is MouseAction && MouseActionConverter.IsDefinedMouseAction((MouseAction)value)); }