Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / DesignerContextDescriptor.cs / 1 / DesignerContextDescriptor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Windows.Forms.Design { using System; using System.Design; using System.ComponentModel; using System.Windows.Forms; using System.ComponentModel.Design; using System.Drawing; using System.Windows.Forms.Design.Behavior; using System.Drawing.Design; using System.Diagnostics; using System.Collections; using System.Runtime.InteropServices; using System.Diagnostics.CodeAnalysis; ////// // --------------------------------------------------------------------------------- // Class Implemented for opening the ImageEditor ... // // This class is replaces the ContextDescriptor in ToolStripItem designer. // // DesignerContextDescriptor implements the IWindowsFormsEditorService which is required // to open the ImageEditor .. Hence the need for this Implementation //----------------------------------------------------------------------------------- /// internal class DesignerContextDescriptor : IWindowsFormsEditorService, ITypeDescriptorContext { private Component _component; private PropertyDescriptor _propertyDescriptor; private IDesignerHost _host; // // Constructor // ///[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] public DesignerContextDescriptor(Component component, PropertyDescriptor imageProperty, IDesignerHost host) { _component = component; _propertyDescriptor = imageProperty; _host = host; } /// /// /// Gets called thru the TemplateNode to open the ImageEditor. /// ///// Called through reflection [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] public Image OpenImageCollection() { object propertyValue = _propertyDescriptor.GetValue(_component); if (_propertyDescriptor != null) { Image image = null; UITypeEditor itemsEditor = _propertyDescriptor.GetEditor(typeof(UITypeEditor)) as UITypeEditor; Debug.Assert(itemsEditor != null, "Didn't get a collection editor for type '" + _propertyDescriptor.PropertyType.FullName + "'"); if (itemsEditor != null) { image = (Image)itemsEditor.EditValue(this, (IServiceProvider)this, propertyValue); } if (image != null) { return image; } } // Always Return old Image if Image is not changed... return (Image)propertyValue; } IContainer ITypeDescriptorContext.Container { get { return null; } } object ITypeDescriptorContext.Instance { get { return _component; } } PropertyDescriptor ITypeDescriptorContext.PropertyDescriptor { get { return _propertyDescriptor; } } void ITypeDescriptorContext.OnComponentChanged() { } bool ITypeDescriptorContext.OnComponentChanging() { return false; } /// /// Self-explanitory interface impl. /// object IServiceProvider.GetService(Type serviceType) { if (serviceType == typeof(IWindowsFormsEditorService)) { return this; } else { return _host.GetService(serviceType); } } ////// Self-explanitory interface impl. /// void IWindowsFormsEditorService.CloseDropDown() { // we'll never be called to do this. // Debug.Fail("NOTIMPL"); return; } ////// Self-explanitory interface impl. /// void IWindowsFormsEditorService.DropDownControl(Control control) { // nope, sorry // Debug.Fail("NOTIMPL"); return; } ////// Self-explanitory interface impl. /// System.Windows.Forms.DialogResult IWindowsFormsEditorService.ShowDialog(Form dialog) { IntPtr priorFocus = UnsafeNativeMethods.GetFocus(); DialogResult result; IUIService uiSvc = (IUIService)((IServiceProvider)this).GetService(typeof(IUIService)); if (uiSvc != null) { result = uiSvc.ShowDialog(dialog); } else { result = dialog.ShowDialog(_component as IWin32Window); } if (priorFocus != IntPtr.Zero) { UnsafeNativeMethods.SetFocus(new HandleRef(null, priorFocus)); } return result; } } } // 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
- ComplexObject.cs
- EditorZoneBase.cs
- XmlCodeExporter.cs
- ScalarOps.cs
- StrongName.cs
- AbandonedMutexException.cs
- UInt16.cs
- HorizontalAlignConverter.cs
- HttpHandler.cs
- ClientTarget.cs
- DataGridColumnCollection.cs
- ItemPager.cs
- XsltException.cs
- SamlAssertion.cs
- FrameworkName.cs
- UserInitiatedNavigationPermission.cs
- WorkflowApplicationAbortedEventArgs.cs
- UpdateException.cs
- ProcessThreadCollection.cs
- WebPartTransformer.cs
- ParameterCollectionEditor.cs
- PinnedBufferMemoryStream.cs
- DataFieldEditor.cs
- ErrorTolerantObjectWriter.cs
- DateTimeOffset.cs
- SpeechSeg.cs
- DefaultTraceListener.cs
- Rule.cs
- ComponentResourceManager.cs
- PolicyManager.cs
- ISFClipboardData.cs
- ArraySortHelper.cs
- PreservationFileWriter.cs
- SimplePropertyEntry.cs
- __Error.cs
- Token.cs
- WebReferenceCollection.cs
- TextEditorTables.cs
- AudioFormatConverter.cs
- EtwTrace.cs
- SignedInfo.cs
- UseManagedPresentationElement.cs
- HyperLink.cs
- CapabilitiesState.cs
- ScrollViewerAutomationPeer.cs
- RangeValueProviderWrapper.cs
- CompositeKey.cs
- XamlToRtfParser.cs
- ApplicationHost.cs
- Message.cs
- DialogResultConverter.cs
- UserNamePasswordValidator.cs
- ChannelSinkStacks.cs
- Grant.cs
- LambdaCompiler.Unary.cs
- PaintValueEventArgs.cs
- PersonalizablePropertyEntry.cs
- IsolatedStoragePermission.cs
- ConfigDefinitionUpdates.cs
- ReadOnlyDictionary.cs
- AdCreatedEventArgs.cs
- CommentEmitter.cs
- TokenizerHelper.cs
- RectAnimation.cs
- SettingsPropertyNotFoundException.cs
- StringReader.cs
- xamlnodes.cs
- HttpRuntime.cs
- UserMapPath.cs
- WebConfigurationHost.cs
- SignedPkcs7.cs
- embossbitmapeffect.cs
- DesignerDataStoredProcedure.cs
- ProtocolsConfigurationHandler.cs
- validationstate.cs
- DecoderFallback.cs
- DataGridCellEditEndingEventArgs.cs
- WebPartEditorApplyVerb.cs
- TextEffectResolver.cs
- GeneralTransform3D.cs
- SingleKeyFrameCollection.cs
- GridItemPattern.cs
- QilNode.cs
- DrawingServices.cs
- SmiConnection.cs
- SevenBitStream.cs
- XmlDataDocument.cs
- DbLambda.cs
- Viewport3DVisual.cs
- HandlerFactoryCache.cs
- ControlEvent.cs
- FixedLineResult.cs
- TransformConverter.cs
- ListViewGroup.cs
- HorizontalAlignConverter.cs
- SerializationAttributes.cs
- ServiceOperationParameter.cs
- CategoryEditor.cs
- Ticks.cs
- TextElementEnumerator.cs