DesignerActionUIService.cs source code in C# .NET

Source code for the .NET framework in C#

                        

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

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK