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
- ThemeDirectoryCompiler.cs
- WebContext.cs
- ControlLocalizer.cs
- GridViewCommandEventArgs.cs
- IpcPort.cs
- BindUriHelper.cs
- FontStyle.cs
- EventLogRecord.cs
- StylusPointPropertyInfo.cs
- ChangePassword.cs
- Line.cs
- TextEditorSpelling.cs
- InplaceBitmapMetadataWriter.cs
- Serializer.cs
- CssTextWriter.cs
- CultureInfo.cs
- Automation.cs
- DataGridViewCell.cs
- WebBrowser.cs
- RetrieveVirtualItemEventArgs.cs
- NetCodeGroup.cs
- Calendar.cs
- ParallelTimeline.cs
- TextEditorSelection.cs
- XamlReaderHelper.cs
- PartitionedDataSource.cs
- PolyLineSegment.cs
- LinkUtilities.cs
- OleDbStruct.cs
- BindingGroup.cs
- listitem.cs
- XmlCharType.cs
- ImageField.cs
- PrintPreviewGraphics.cs
- XmlSchemaChoice.cs
- DefaultEventAttribute.cs
- ComponentEvent.cs
- DirectionalAction.cs
- DllNotFoundException.cs
- RsaSecurityTokenParameters.cs
- ProfilePropertySettings.cs
- DataSourceHelper.cs
- GridLengthConverter.cs
- NamedPermissionSet.cs
- RestHandlerFactory.cs
- AbstractSvcMapFileLoader.cs
- IPCCacheManager.cs
- OleDbDataAdapter.cs
- shaperfactoryquerycacheentry.cs
- FixedSOMTableRow.cs
- EventLogStatus.cs
- ImageKeyConverter.cs
- LocatorPartList.cs
- BrowserCapabilitiesFactory.cs
- BitmapSource.cs
- KeyProperty.cs
- BasicViewGenerator.cs
- FixedElement.cs
- TypeViewSchema.cs
- UIElementHelper.cs
- SQLSingleStorage.cs
- Script.cs
- TextEditorCharacters.cs
- SoapReflectionImporter.cs
- WebBrowser.cs
- IndexerNameAttribute.cs
- WebPartCloseVerb.cs
- RegexGroupCollection.cs
- ThicknessKeyFrameCollection.cs
- UserControlFileEditor.cs
- ListViewGroupConverter.cs
- DataGridColumn.cs
- PropertyEntry.cs
- MonthChangedEventArgs.cs
- GeometryModel3D.cs
- DragCompletedEventArgs.cs
- XmlSchemaSimpleContentRestriction.cs
- PenLineJoinValidation.cs
- Serialization.cs
- NameHandler.cs
- DataGridCell.cs
- IssuanceLicense.cs
- SizeLimitedCache.cs
- ScriptIgnoreAttribute.cs
- MailAddress.cs
- TriggerActionCollection.cs
- PeerNameRecordCollection.cs
- AdornerHitTestResult.cs
- GeometryDrawing.cs
- TakeQueryOptionExpression.cs
- Activity.cs
- PolicyException.cs
- SR.cs
- AudienceUriMode.cs
- DynamicHyperLink.cs
- SpecularMaterial.cs
- TraceEventCache.cs
- Latin1Encoding.cs
- AppearanceEditorPart.cs
- GenericEnumConverter.cs