HotCommands.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / WinForms / Managed / System / WinForms / PropertyGridInternal / HotCommands.cs / 1 / HotCommands.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

/* 
 */ 
namespace System.Windows.Forms.PropertyGridInternal {
    using System.Text; 

    using System.Diagnostics;
    using System.Diagnostics.CodeAnalysis;
 
    using System;
    using System.Windows.Forms; 
    using System.ComponentModel; 
    using System.ComponentModel.Design;
    using System.Drawing; 
    using Microsoft.Win32;

    internal class HotCommands : PropertyGrid.SnappableControl {
 
        private object component;
        private DesignerVerb[] verbs; 
        private LinkLabel label; 
        private bool allowVisible = true;
        private int optimalHeight = -1; 

        [
            SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters") // HotCommands window is not visible
                                                                                                        // So we don't have to localize its text. 
        ]
        internal HotCommands(PropertyGrid owner) : base(owner) { 
            this.Text = "Command Pane"; 
        }
 
        public virtual bool AllowVisible {
            get {
                return allowVisible;
            } 
            set {
                if (this.allowVisible != value) { 
                    this.allowVisible = value; 
                    if (value && WouldBeVisible)
                        this.Visible = true; 
                    else
                        this.Visible = false;
                }
            } 
        }
 
        public override Rectangle DisplayRectangle { 
            get {
                Size sz = ClientSize; 
                return new Rectangle(4, 4, sz.Width - 8, sz.Height - 8);
            }
        }
 
        public LinkLabel Label {
            get { 
                if (label == null) { 
                    label = new LinkLabel();
                    label.Dock = DockStyle.Fill; 
                    label.LinkBehavior = LinkBehavior.AlwaysUnderline;

                    // use default LinkLabel colors for regular, active, and visited
                    label.DisabledLinkColor = SystemColors.ControlDark; 
                    label.LinkClicked += new LinkLabelLinkClickedEventHandler(this.LinkClicked);
                    this.Controls.Add(label); 
                } 
                return label;
            } 
        }


        public virtual bool WouldBeVisible { 
            get {
                return (component != null); 
            } 
        }
 
        public override int GetOptimalHeight(int width) {
            if (optimalHeight == -1) {
                int lineHeight = (int)(1.5 * Font.Height);
                int verbCount = 0; 
                if (verbs != null) {
                    verbCount = verbs.Length; 
                } 
                optimalHeight = verbCount * lineHeight + 8;
            } 
            return optimalHeight;
        }
        public override int SnapHeightRequest(int request) {
            return request; 
        }
 
        private void LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { 
            try
            { 
                if (!e.Link.Enabled)
                {
                    return;
                } 

                ((DesignerVerb)e.Link.LinkData).Invoke(); 
            } 
            catch (Exception ex)
            { 
                RTLAwareMessageBox.Show(this, ex.Message, SR.GetString(SR.PBRSErrorTitle), MessageBoxButtons.OK, MessageBoxIcon.Warning,
                        MessageBoxDefaultButton.Button1, 0);
            }
        } 

        private void OnCommandChanged(object sender, EventArgs e) { 
            SetupLabel(); 
        }
 
        protected override void OnGotFocus(EventArgs e) {
            Label.FocusInternal();
            Label.Invalidate();
        } 

        protected override void OnFontChanged(EventArgs e) { 
            base.OnFontChanged(e); 
            optimalHeight = -1;
        } 

        internal void SetColors(Color background, Color normalText, Color link, Color activeLink, Color visitedLink, Color disabledLink) {
            Label.BackColor = background;
            Label.ForeColor = normalText; 
            Label.LinkColor = link;
            Label.ActiveLinkColor = activeLink; 
            Label.VisitedLinkColor = visitedLink; 
            Label.DisabledLinkColor = disabledLink;
        } 

        public void Select(bool forward) {
            Label.FocusInternal();
        } 

        public virtual void SetVerbs(object component, DesignerVerb[] verbs) { 
            if (this.verbs != null) { 
                for (int i = 0; i < this.verbs.Length; i++){
                    this.verbs[i].CommandChanged -= new EventHandler(this.OnCommandChanged); 
                }
                this.component = null;
                this.verbs = null;
            } 

            if (component == null || verbs == null || verbs.Length == 0) { 
                Visible = false; 
            }
            else { 
                this.component = component;
                this.verbs = verbs;

                for (int i = 0; i < verbs.Length; i++){ 
                    verbs[i].CommandChanged += new EventHandler(this.OnCommandChanged);
                } 
 
                if (allowVisible) {
                    Visible = true; 
                }
                SetupLabel();
            }
 
            optimalHeight = -1;
        } 
 
        private void SetupLabel() {
            Label.Links.Clear(); 
            StringBuilder sb = new StringBuilder();
            Point[] links = new Point[verbs.Length];
            int charLoc = 0;
            bool firstVerb = true; 

            for (int i=0; i
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

/* 
 */ 
namespace System.Windows.Forms.PropertyGridInternal {
    using System.Text; 

    using System.Diagnostics;
    using System.Diagnostics.CodeAnalysis;
 
    using System;
    using System.Windows.Forms; 
    using System.ComponentModel; 
    using System.ComponentModel.Design;
    using System.Drawing; 
    using Microsoft.Win32;

    internal class HotCommands : PropertyGrid.SnappableControl {
 
        private object component;
        private DesignerVerb[] verbs; 
        private LinkLabel label; 
        private bool allowVisible = true;
        private int optimalHeight = -1; 

        [
            SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters") // HotCommands window is not visible
                                                                                                        // So we don't have to localize its text. 
        ]
        internal HotCommands(PropertyGrid owner) : base(owner) { 
            this.Text = "Command Pane"; 
        }
 
        public virtual bool AllowVisible {
            get {
                return allowVisible;
            } 
            set {
                if (this.allowVisible != value) { 
                    this.allowVisible = value; 
                    if (value && WouldBeVisible)
                        this.Visible = true; 
                    else
                        this.Visible = false;
                }
            } 
        }
 
        public override Rectangle DisplayRectangle { 
            get {
                Size sz = ClientSize; 
                return new Rectangle(4, 4, sz.Width - 8, sz.Height - 8);
            }
        }
 
        public LinkLabel Label {
            get { 
                if (label == null) { 
                    label = new LinkLabel();
                    label.Dock = DockStyle.Fill; 
                    label.LinkBehavior = LinkBehavior.AlwaysUnderline;

                    // use default LinkLabel colors for regular, active, and visited
                    label.DisabledLinkColor = SystemColors.ControlDark; 
                    label.LinkClicked += new LinkLabelLinkClickedEventHandler(this.LinkClicked);
                    this.Controls.Add(label); 
                } 
                return label;
            } 
        }


        public virtual bool WouldBeVisible { 
            get {
                return (component != null); 
            } 
        }
 
        public override int GetOptimalHeight(int width) {
            if (optimalHeight == -1) {
                int lineHeight = (int)(1.5 * Font.Height);
                int verbCount = 0; 
                if (verbs != null) {
                    verbCount = verbs.Length; 
                } 
                optimalHeight = verbCount * lineHeight + 8;
            } 
            return optimalHeight;
        }
        public override int SnapHeightRequest(int request) {
            return request; 
        }
 
        private void LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { 
            try
            { 
                if (!e.Link.Enabled)
                {
                    return;
                } 

                ((DesignerVerb)e.Link.LinkData).Invoke(); 
            } 
            catch (Exception ex)
            { 
                RTLAwareMessageBox.Show(this, ex.Message, SR.GetString(SR.PBRSErrorTitle), MessageBoxButtons.OK, MessageBoxIcon.Warning,
                        MessageBoxDefaultButton.Button1, 0);
            }
        } 

        private void OnCommandChanged(object sender, EventArgs e) { 
            SetupLabel(); 
        }
 
        protected override void OnGotFocus(EventArgs e) {
            Label.FocusInternal();
            Label.Invalidate();
        } 

        protected override void OnFontChanged(EventArgs e) { 
            base.OnFontChanged(e); 
            optimalHeight = -1;
        } 

        internal void SetColors(Color background, Color normalText, Color link, Color activeLink, Color visitedLink, Color disabledLink) {
            Label.BackColor = background;
            Label.ForeColor = normalText; 
            Label.LinkColor = link;
            Label.ActiveLinkColor = activeLink; 
            Label.VisitedLinkColor = visitedLink; 
            Label.DisabledLinkColor = disabledLink;
        } 

        public void Select(bool forward) {
            Label.FocusInternal();
        } 

        public virtual void SetVerbs(object component, DesignerVerb[] verbs) { 
            if (this.verbs != null) { 
                for (int i = 0; i < this.verbs.Length; i++){
                    this.verbs[i].CommandChanged -= new EventHandler(this.OnCommandChanged); 
                }
                this.component = null;
                this.verbs = null;
            } 

            if (component == null || verbs == null || verbs.Length == 0) { 
                Visible = false; 
            }
            else { 
                this.component = component;
                this.verbs = verbs;

                for (int i = 0; i < verbs.Length; i++){ 
                    verbs[i].CommandChanged += new EventHandler(this.OnCommandChanged);
                } 
 
                if (allowVisible) {
                    Visible = true; 
                }
                SetupLabel();
            }
 
            optimalHeight = -1;
        } 
 
        private void SetupLabel() {
            Label.Links.Clear(); 
            StringBuilder sb = new StringBuilder();
            Point[] links = new Point[verbs.Length];
            int charLoc = 0;
            bool firstVerb = true; 

            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