Code:
/ DotNET / DotNET / 8.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
- ExpressionBindingCollection.cs
- SerTrace.cs
- PropertyGeneratedEventArgs.cs
- WebCategoryAttribute.cs
- ControlParameter.cs
- TextSpan.cs
- RoleExceptions.cs
- DataComponentMethodGenerator.cs
- WinEventWrap.cs
- SerializationTrace.cs
- AddressHeaderCollection.cs
- InternalRelationshipCollection.cs
- TraceListeners.cs
- activationcontext.cs
- SqlCacheDependencySection.cs
- Events.cs
- Translator.cs
- TrackingProfileCache.cs
- CheckoutException.cs
- DataTemplateSelector.cs
- SelectedDatesCollection.cs
- ComponentRenameEvent.cs
- UnsafeCollabNativeMethods.cs
- ADRoleFactory.cs
- MiniLockedBorderGlyph.cs
- UnicastIPAddressInformationCollection.cs
- ComponentEditorPage.cs
- StreamUpgradeBindingElement.cs
- CompilerGeneratedAttribute.cs
- SafeNativeMethods.cs
- SyndicationElementExtensionCollection.cs
- EventPropertyMap.cs
- Trace.cs
- ComponentSerializationService.cs
- TemplateFactory.cs
- DynamicDocumentPaginator.cs
- StringDictionary.cs
- DelimitedListTraceListener.cs
- DebuggerService.cs
- BuilderElements.cs
- WorkflowCompensationBehavior.cs
- figurelength.cs
- ServiceOperationParameter.cs
- ImageAutomationPeer.cs
- XamlReader.cs
- CaseKeyBox.ViewModel.cs
- UnsafeNativeMethods.cs
- StylusTip.cs
- EnumerableCollectionView.cs
- CompositeActivityValidator.cs
- TypeExtensionSerializer.cs
- HandlerFactoryWrapper.cs
- TypographyProperties.cs
- RuntimeDelegateArgument.cs
- DataGridViewCellEventArgs.cs
- MultipleViewPattern.cs
- CharStorage.cs
- IEnumerable.cs
- FixedSOMTableCell.cs
- DesignerActionUIStateChangeEventArgs.cs
- TraceHandler.cs
- RemoteHelper.cs
- DataGridViewCellMouseEventArgs.cs
- MetadataArtifactLoaderResource.cs
- X509ImageLogo.cs
- Decorator.cs
- ValidationHelper.cs
- HtmlEncodedRawTextWriter.cs
- webeventbuffer.cs
- CompressEmulationStream.cs
- HealthMonitoringSection.cs
- RegistrationServices.cs
- DetailsViewDeletedEventArgs.cs
- HTMLTextWriter.cs
- MenuItemBindingCollection.cs
- RestHandler.cs
- TextReturnReader.cs
- storepermissionattribute.cs
- RunClient.cs
- GPRECT.cs
- ResourceCategoryAttribute.cs
- TemplatePartAttribute.cs
- BitmapEffectInputData.cs
- SqlComparer.cs
- MILUtilities.cs
- CornerRadiusConverter.cs
- WizardStepBase.cs
- SetState.cs
- JoinSymbol.cs
- Constraint.cs
- DecimalAnimationUsingKeyFrames.cs
- FormViewInsertEventArgs.cs
- ContractMethodInfo.cs
- ReadOnlyTernaryTree.cs
- ChildChangedEventArgs.cs
- WmpBitmapEncoder.cs
- SplineKeyFrames.cs
- RSATokenProvider.cs
- Transform.cs
- ApplicationServiceManager.cs