Code:
/ DotNET / DotNET / 8.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
- GenericIdentity.cs
- ChannelOptions.cs
- DataGridViewCellStateChangedEventArgs.cs
- Material.cs
- ServicesExceptionNotHandledEventArgs.cs
- WinEventHandler.cs
- CompoundFileStreamReference.cs
- WindowsEditBoxRange.cs
- DNS.cs
- References.cs
- Win32SafeHandles.cs
- WebResourceUtil.cs
- XmlCharacterData.cs
- TextElementCollection.cs
- EntityDataSourceChangingEventArgs.cs
- ListenerHandler.cs
- ToolStripSeparatorRenderEventArgs.cs
- TrackingMemoryStream.cs
- OdbcInfoMessageEvent.cs
- ToolboxItemAttribute.cs
- IPAddress.cs
- SourceFilter.cs
- EntityViewGenerationAttribute.cs
- EmptyStringExpandableObjectConverter.cs
- MaterialGroup.cs
- SchemaNames.cs
- GridItemCollection.cs
- SortKey.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- NameValuePair.cs
- EventMappingSettingsCollection.cs
- SharedStatics.cs
- AssemblyResourceLoader.cs
- OneOfElement.cs
- ModelPropertyImpl.cs
- RevocationPoint.cs
- GridPattern.cs
- LazyLoadBehavior.cs
- ColumnMapProcessor.cs
- BooleanFacetDescriptionElement.cs
- ExecutionProperties.cs
- ConfigXmlCDataSection.cs
- KeyNotFoundException.cs
- EntityDataSourceContextDisposingEventArgs.cs
- ResourceDisplayNameAttribute.cs
- ColorConvertedBitmapExtension.cs
- MarkupExtensionSerializer.cs
- DiagnosticsConfigurationHandler.cs
- SystemIPAddressInformation.cs
- ReflectionTypeLoadException.cs
- PlanCompiler.cs
- __Filters.cs
- WmlPageAdapter.cs
- SafePointer.cs
- AmbientProperties.cs
- ActiveXSite.cs
- AuthenticatingEventArgs.cs
- TreeViewImageIndexConverter.cs
- Error.cs
- AsyncStreamReader.cs
- KeyValueSerializer.cs
- Debug.cs
- TimeoutConverter.cs
- EnumMember.cs
- FixedTextContainer.cs
- SqlInternalConnection.cs
- X509CertificateRecipientServiceCredential.cs
- PathSegment.cs
- LayoutEditorPart.cs
- WebPartAddingEventArgs.cs
- RoleGroupCollection.cs
- ResolveCompletedEventArgs.cs
- ClickablePoint.cs
- JoinSymbol.cs
- StateValidator.cs
- Quad.cs
- ListViewTableCell.cs
- TabletDevice.cs
- SmtpNtlmAuthenticationModule.cs
- _TimerThread.cs
- SortedList.cs
- XmlReturnReader.cs
- _ShellExpression.cs
- SqlResolver.cs
- HandlerWithFactory.cs
- Renderer.cs
- DBBindings.cs
- EventLogPermissionEntry.cs
- DesignerDataParameter.cs
- ComboBox.cs
- DynamicAttribute.cs
- XmlBinaryReaderSession.cs
- DbConnectionOptions.cs
- SmtpDigestAuthenticationModule.cs
- CompilerScopeManager.cs
- DocumentStatusResources.cs
- ByteViewer.cs
- TrackingLocationCollection.cs
- HttpHandlerActionCollection.cs
- InkCanvasAutomationPeer.cs