/// <summary> /// Edits the given value. /// </summary> /// <param name="context">Context infromation.</param> /// <param name="provider">Service provider.</param> /// <param name="value">Value to be edited.</param> /// <returns>An edited value.</returns> public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { if (provider != null) { var service = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if (service == null) { return(value); } if (_colorUi == null) { _colorUi = new ColorUiWrapper(this); } var xnaColor = (Color)value; _colorUi.Start(service, System.Drawing.Color.FromArgb(xnaColor.A, xnaColor.R, xnaColor.G, xnaColor.B)); service.DropDownControl(_colorUi.Control); if ((_colorUi.Value != null)) { var rescolor = (System.Drawing.Color)_colorUi.Value; value = new Color(rescolor.R, rescolor.G, rescolor.B, rescolor.A); } _colorUi.End( ); } return(value); }
/// <summary> /// Edits the given value. /// </summary> /// <param name="context">Context infromation.</param> /// <param name="provider">Service provider.</param> /// <param name="value">Value to be edited.</param> /// <returns>An edited value.</returns> public override object EditValue( ITypeDescriptorContext context, IServiceProvider provider, object value ) { if( provider != null ) { var service = (IWindowsFormsEditorService) provider.GetService( typeof( IWindowsFormsEditorService ) ) ; if( service == null ) { return value ; } if( _colorUi == null ) { _colorUi = new ColorUiWrapper( this ) ; } var xnaColor = (Color) value ; _colorUi.Start( service, System.Drawing.Color.FromArgb( xnaColor.A, xnaColor.R, xnaColor.G, xnaColor.B ) ) ; service.DropDownControl( _colorUi.Control ) ; if( ( _colorUi.Value != null ) ) { var rescolor = (System.Drawing.Color) _colorUi.Value ; value = new Color( rescolor.R, rescolor.G, rescolor.B, rescolor.A ) ; } _colorUi.End( ) ; } return value ; }