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
- DPAPIProtectedConfigurationProvider.cs
- WebEventCodes.cs
- datacache.cs
- DesignerVerbCollection.cs
- RenderingBiasValidation.cs
- AssemblyBuilderData.cs
- DataGridRow.cs
- RawStylusInputReport.cs
- WizardPanelChangingEventArgs.cs
- DataControlFieldCollection.cs
- CalendarKeyboardHelper.cs
- smtppermission.cs
- RequestNavigateEventArgs.cs
- OperationResponse.cs
- COM2ExtendedTypeConverter.cs
- cookiecollection.cs
- METAHEADER.cs
- BaseParser.cs
- RectangleHotSpot.cs
- ExternalException.cs
- TransformerConfigurationWizardBase.cs
- XmlCodeExporter.cs
- HitTestResult.cs
- SignatureConfirmations.cs
- ToolStripMenuItem.cs
- BCLDebug.cs
- ListDictionaryInternal.cs
- StyleModeStack.cs
- SoapFault.cs
- Latin1Encoding.cs
- BuildManager.cs
- Setter.cs
- SharedConnectionInfo.cs
- PersonalizablePropertyEntry.cs
- RedirectionProxy.cs
- DbConnectionFactory.cs
- EmbeddedMailObjectsCollection.cs
- PasswordRecoveryDesigner.cs
- TextBoxAutomationPeer.cs
- SwitchElementsCollection.cs
- SmiGettersStream.cs
- TransmissionStrategy.cs
- Membership.cs
- ApplicationFileParser.cs
- UserNameSecurityTokenAuthenticator.cs
- ScriptingWebServicesSectionGroup.cs
- CodeMemberEvent.cs
- FontNamesConverter.cs
- LOSFormatter.cs
- DeviceContext.cs
- AsnEncodedData.cs
- ActivityExecutorDelegateInfo.cs
- AnnouncementEventArgs.cs
- ButtonBase.cs
- MatrixTransform3D.cs
- CodeIterationStatement.cs
- SlotInfo.cs
- EventArgs.cs
- AliasedSlot.cs
- BrowserCapabilitiesCodeGenerator.cs
- WebPartVerbsEventArgs.cs
- MobileControl.cs
- GeometryCollection.cs
- TranslateTransform.cs
- BinaryObjectReader.cs
- XmlDownloadManager.cs
- GeneralTransform3D.cs
- ImmutableCollection.cs
- SerialReceived.cs
- DataContractSerializerMessageContractImporter.cs
- ArgumentOutOfRangeException.cs
- ContextMenuStripActionList.cs
- BaseContextMenu.cs
- EditorPartChrome.cs
- QilStrConcat.cs
- SoapTypeAttribute.cs
- WindowsSecurityToken.cs
- HttpFileCollection.cs
- TraceHandlerErrorFormatter.cs
- FieldToken.cs
- Brush.cs
- SizeAnimation.cs
- CultureTableRecord.cs
- DetailsViewDeleteEventArgs.cs
- DragEventArgs.cs
- DSASignatureDeformatter.cs
- TransformDescriptor.cs
- Pointer.cs
- BufferBuilder.cs
- ParseChildrenAsPropertiesAttribute.cs
- AliasedExpr.cs
- SeparatorAutomationPeer.cs
- SqlGenerator.cs
- DataServiceProviderMethods.cs
- ContentTextAutomationPeer.cs
- ProtocolViolationException.cs
- BitmapCache.cs
- ObjectViewQueryResultData.cs
- LogExtentCollection.cs
- ActivityDesigner.cs