Example #1
0
        /// <summary>
        /// Constructor</summary>
        /// <param name="commandTag">Unique command identifier</param>
        /// <param name="menuTag">Unique menu identifier</param>
        /// <param name="groupTag">Unique group identifier</param>
        /// <param name="menuText">Menu text</param>
        /// <param name="description">Command description</param>
        /// <param name="shortcuts">Default keyboard shortcuts - any collection implementing IEnumerable&lt;Keys&gt;.
        /// Use bitwise OR for key-combos (eg, "Key.Control | Key.W"), or "Keys.None" for no shortcuts.</param>
        /// <param name="imageName">Name of image resource, or null</param>
        /// <param name="visibility">Command visibility in menus and toolbars</param>
        /// <param name="helpUrl">URL to open when the user presses F1 and the tool strip button has focus.
        /// A message will be added to the tooltip, to indicate that F1 help is available.</param>
        public CommandInfo(
            object commandTag,
            object menuTag,
            object groupTag,
            string menuText,
            string description,
            IEnumerable <Keys> shortcuts,
            string imageName,
            CommandVisibility visibility,
            string helpUrl = null)
        {
            CommandTag       = commandTag;
            MenuTag          = menuTag;
            GroupTag         = groupTag;
            MenuText         = menuText;
            Description      = description;
            DefaultShortcuts = shortcuts;
            Shortcuts        = shortcuts;
            ImageName        = imageName;
            Visibility       = visibility;
            HelpUrl          = helpUrl;

            ShortcutsEditable = true;
            ShortcutsChanged.Raise(this, EventArgs.Empty);
        }
Example #2
0
        /// <summary>
        /// Constructor</summary>
        /// <param name="commandTag">Unique command identifier</param>
        /// <param name="menuTag">Unique menu identifier</param>
        /// <param name="groupTag">Unique group identifier</param>
        /// <param name="menuText">Menu text</param>
        /// <param name="description">Command description</param>
        /// <param name="shortcut">Default keyboard shortcut. Use bitwise OR for key combos
        /// (eg, "Keys.Ctrl | Keys.W"), or "Keys.None" for no shortcut.</param>
        /// <param name="imageName">Name of image resource, or null</param>
        /// <param name="visibility">Command visibility in menus and toolbars. CommandVisibility.Default is
        /// the default.</param>
        /// <param name="helpUrl">URL to open when the user presses F1 and the tool strip button has focus.
        /// A message will be added to the tooltip, to indicate that F1 help is available.</param>
        public CommandInfo(
            object commandTag,
            object menuTag,
            object groupTag,
            string menuText,
            string description,
            Keys shortcut,
            string imageName,
            CommandVisibility visibility,
            string helpUrl = null)
        {
            CommandTag       = commandTag;
            MenuTag          = menuTag;
            GroupTag         = groupTag;
            MenuText         = menuText;
            Description      = description;
            DefaultShortcuts = new[] { shortcut };
            Shortcuts        = new[] { shortcut };
            ImageName        = imageName;
            Visibility       = visibility;
            HelpUrl          = helpUrl;

            ShortcutsEditable = true;
            ShortcutsChanged += (e, s) => RebuildShortcutKeyDisplayString();
            ShortcutsChanged.Raise(this, EventArgs.Empty);
        }
 /// <summary>
 /// Unregisters a shortcut key to listen for.
 /// </summary>
 /// <param name="shortcut">Details of the shortcut key combination.</param>
 public void UnregisterShortcutKey(ShortcutKey shortcut)
 {
     if (_registeredShortcuts.ContainsKey(shortcut.ToString()))
     {
         _registeredShortcuts.Remove(shortcut.ToString());
         ShortcutsChanged?.Invoke(this, _registeredShortcuts.Values.ToArray());
     }
 }
 /// <summary>
 /// Registers a shortcut key to listen for.
 /// </summary>
 /// <param name="shortcut">Details of the shortcut key combination.</param>
 public void RegisterShortcutKey(ShortcutKey shortcut)
 {
     if (!_registeredShortcuts.ContainsKey(shortcut.ToString()))
     {
         _registeredShortcuts.Add(shortcut.ToString(), shortcut);
         ShortcutsChanged?.Invoke(this, _registeredShortcuts.Values.ToArray());
     }
 }
Example #5
0
        /// <summary>
        /// Remove a keyboard shortcut from the list of keyboard shortcuts for activating this command.
        /// Subsequently updates the display string.</summary>
        /// <param name="shortcut">Keys for shortcut</param>
        public void RemoveShortcut(Keys shortcut)
        {
            if (shortcut == Keys.None)
            {
                return;
            }

            if (m_shortcuts.Remove(shortcut))
            {
                ShortcutsChanged.Raise(this, EventArgs.Empty);
            }
        }
Example #6
0
        /// <summary>
        /// Add a keyboard shortcut to the list of keyboard shortcuts for activating this command.
        /// Subsequently updates the display string.</summary>
        /// <param name="shortcut">Keys for shortcut</param>
        public void AddShortcut(Keys shortcut)
        {
            if (shortcut == Keys.None)
            {
                return;
            }

            m_shortcuts.Remove(Keys.None);

            if (!m_shortcuts.Contains(shortcut))
            {
                m_shortcuts.Add(shortcut);
            }

            ShortcutsChanged.Raise(this, EventArgs.Empty);
        }
Example #7
0
        /// <summary>
        /// Constructor</summary>
        /// <param name="commandTag">Unique command identifier</param>
        /// <param name="menuTag">Unique menu identifier</param>
        /// <param name="groupTag">Unique group identifier</param>
        /// <param name="menuText">Menu text</param>
        /// <param name="description">Command description</param>
        /// <param name="shortcut">Default keyboard shortcut. Use bitwise OR for key combos
        /// (eg, "Keys.Ctrl | Keys.W"), or "Keys.None" for no shortcut.</param>
        /// <param name="imageKey">Key to identify image resource, or null</param>
        /// <param name="visibility">Command visibility in menus and toolbars</param>
        public CommandInfo(
            object commandTag,
            object menuTag,
            object groupTag,
            string menuText,
            string description,
            Keys shortcut,
            object imageKey,
            CommandVisibility visibility)
        {
            CommandTag       = commandTag;
            MenuTag          = menuTag;
            GroupTag         = groupTag;
            MenuText         = menuText;
            Description      = description;
            DefaultShortcuts = new[] { shortcut };
            Shortcuts        = new[] { shortcut };
            ImageName        = imageKey as string;
            ImageKey         = imageKey;
            Visibility       = visibility;

            ShortcutsEditable = true;
            ShortcutsChanged.Raise(this, EventArgs.Empty);
        }
Example #8
0
 /// <summary>
 /// Clear out the keyboard shortcuts used to activate this command.
 /// Subsequently updates the display string.</summary>
 public void ClearShortcuts()
 {
     m_shortcuts.Clear();
     ShortcutsChanged.Raise(this, EventArgs.Empty);
 }
Example #9
0
 public static void RaiseEvent(object sender)
 {
     ShortcutsChanged?.Invoke(sender, EventArgs.Empty);
 }