Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / CompMod / System / ComponentModel / Design / DesignerActionUIService.cs / 1 / DesignerActionUIService.cs
//#define DEBUGDESIGNERTASKS //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.ComponentModel.Design { using System; using System.Collections; using System.ComponentModel; using System.Timers; using System.Diagnostics.CodeAnalysis; using System.Diagnostics; ////// /// public sealed class DesignerActionUIService : IDisposable { private DesignerActionUIStateChangeEventHandler designerActionUIStateChangedEventHandler; private IServiceProvider serviceProvider;//standard service provider private DesignerActionService designerActionService; internal DesignerActionUIService(IServiceProvider serviceProvider) { this.serviceProvider = serviceProvider; if (serviceProvider != null) { this.serviceProvider = serviceProvider; IDesignerHost host = (IDesignerHost)serviceProvider.GetService(typeof(IDesignerHost)); host.AddService(typeof(DesignerActionUIService), this); designerActionService = serviceProvider.GetService(typeof(DesignerActionService)) as DesignerActionService; Debug.Assert(designerActionService != null, "we should have created and registered the DAService first"); } } ////// /// Disposes all resources and unhooks all events. /// [SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed")] public void Dispose() { if (serviceProvider != null) { IDesignerHost host = (IDesignerHost)serviceProvider.GetService(typeof(IDesignerHost)); if (host != null) { host.RemoveService(typeof(DesignerActionUIService)); } } } ////// /// This event is thrown whenever a request is made to show/hide the ui /// public event DesignerActionUIStateChangeEventHandler DesignerActionUIStateChange { add { designerActionUIStateChangedEventHandler += value; } remove { designerActionUIStateChangedEventHandler -= value; } } public void HideUI(IComponent component) { OnDesignerActionUIStateChange(new DesignerActionUIStateChangeEventArgs(component, DesignerActionUIStateChangeType.Hide)); } public void ShowUI(IComponent component) { OnDesignerActionUIStateChange(new DesignerActionUIStateChangeEventArgs(component, DesignerActionUIStateChangeType.Show)); } ////// /// This is a new Helper Method that the service provides to refresh the DesignerActionGlyph as well as DesignerActionPanels. /// public void Refresh(IComponent component) { OnDesignerActionUIStateChange(new DesignerActionUIStateChangeEventArgs(component, DesignerActionUIStateChangeType.Refresh)); } ////// This fires our DesignerActionsChanged event. /// private void OnDesignerActionUIStateChange(DesignerActionUIStateChangeEventArgs e) { if (designerActionUIStateChangedEventHandler != null) { designerActionUIStateChangedEventHandler(this, e); } } public bool ShouldAutoShow(IComponent component) { // Check the designer options... if (serviceProvider != null) { DesignerOptionService opts = serviceProvider.GetService(typeof(DesignerOptionService)) as DesignerOptionService; if (opts != null) { PropertyDescriptor p = opts.Options.Properties["ObjectBoundSmartTagAutoShow"]; if (p != null && p.PropertyType == typeof(bool) && !(bool)p.GetValue(null)) { return false; } } } if(designerActionService != null) { DesignerActionListCollection coll = designerActionService.GetComponentActions(component); if(coll != null && coll.Count > 0) { for(int i = 0;i
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StylusPoint.cs
- SqlCaseSimplifier.cs
- hwndwrapper.cs
- RichTextBox.cs
- BaseConfigurationRecord.cs
- MenuItemBinding.cs
- PathData.cs
- RepeatInfo.cs
- CompositeActivityTypeDescriptorProvider.cs
- PageHandlerFactory.cs
- EntityDataSourceReferenceGroup.cs
- ValueQuery.cs
- NativeMethods.cs
- NumberFunctions.cs
- WebPartEventArgs.cs
- CommonDialog.cs
- UnsafeNativeMethodsTablet.cs
- TraceFilter.cs
- Padding.cs
- ElasticEase.cs
- SqlTypeConverter.cs
- InputReport.cs
- TrailingSpaceComparer.cs
- PointConverter.cs
- EntityClassGenerator.cs
- UnauthorizedAccessException.cs
- X509Certificate.cs
- WebServiceHostFactory.cs
- HelloMessageApril2005.cs
- DefaultExpressionVisitor.cs
- WebPartHeaderCloseVerb.cs
- IsolatedStoragePermission.cs
- ResourceManagerWrapper.cs
- log.cs
- TypefaceCollection.cs
- RequestCacheValidator.cs
- RC2.cs
- XmlDocumentType.cs
- ExtendedProtectionPolicyElement.cs
- EntityCommandDefinition.cs
- SchemaSetCompiler.cs
- ComponentSerializationService.cs
- FrameSecurityDescriptor.cs
- PreservationFileReader.cs
- Unit.cs
- Compiler.cs
- FilterException.cs
- PathSegment.cs
- XappLauncher.cs
- SecureUICommand.cs
- ColumnResizeUndoUnit.cs
- CapabilitiesPattern.cs
- BinHexEncoding.cs
- VisualStyleElement.cs
- VirtualDirectoryMapping.cs
- WebHttpSecurityElement.cs
- MsmqOutputMessage.cs
- HandledMouseEvent.cs
- TreeNodeCollection.cs
- EnterpriseServicesHelper.cs
- InstanceNameConverter.cs
- Intellisense.cs
- StringFreezingAttribute.cs
- DnsPermission.cs
- FormatterServices.cs
- SecurityManager.cs
- printdlgexmarshaler.cs
- TabControl.cs
- WebBrowserHelper.cs
- StorageFunctionMapping.cs
- NativeWindow.cs
- EditBehavior.cs
- CompositionTarget.cs
- FontConverter.cs
- SignalGate.cs
- SafeCertificateStore.cs
- FragmentQueryProcessor.cs
- PropertyItemInternal.cs
- DocumentXPathNavigator.cs
- Clock.cs
- SessionStateSection.cs
- XmlExtensionFunction.cs
- BindingCompleteEventArgs.cs
- AppDomainManager.cs
- DesignerObject.cs
- IOThreadScheduler.cs
- NamedPipeTransportSecurityElement.cs
- TextTreeTextNode.cs
- DefaultProxySection.cs
- ElementUtil.cs
- CodeObjectCreateExpression.cs
- ExpressionEditorAttribute.cs
- HttpResponse.cs
- StringAnimationUsingKeyFrames.cs
- HtmlInputSubmit.cs
- DataColumnPropertyDescriptor.cs
- HtmlEncodedRawTextWriter.cs
- ListViewGroup.cs
- RowUpdatingEventArgs.cs
- DiscardableAttribute.cs