示例#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="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);
        }
示例#2
0
文件: CommandInfo.cs 项目: zparr/ATF
        /// <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);
        }
示例#3
0
        /// <summary>
        /// Registers a command for the command client</summary>
        /// <param name="commandService">Command service</param>
        /// <param name="commandTag">Command's unique ID</param>
        /// <param name="visibility">Whether command is visible in menus and toolbars</param>
        /// <param name="client">Client that performs command</param>
        /// <returns>Menu/Toolbar command information</returns>
        public static CommandInfo RegisterCommand(
            this ICommandService commandService,
            StandardCommand commandTag,
            CommandVisibility visibility,
            ICommandClient client)
        {
            CommandInfo info = CommandInfo.GetStandardCommand(commandTag);

            commandService.RegisterCommand(info, client);
            info.Visibility = visibility;
            return(info);
        }
示例#4
0
        /// <summary>
        /// Registers a command for the command client</summary>
        /// <param name="commandService">Command service</param>
        /// <param name="commandTag">Command's unique ID</param>
        /// <param name="visibility">Whether command is visible in menus and toolbars</param>
        /// <param name="client">Client that performs command</param>
        /// <returns>Menu/Toolbar command information</returns>
        public static CommandInfo RegisterCommand(
            this ICommandService commandService,
            CommandInfo commandInfo,
            CommandVisibility visibility,
            ICommandClient client)
        {
            CommandInfo info = commandInfo.Clone();

            commandService.RegisterCommand(info, client);
            info.Visibility = visibility;
            return(info);
        }
示例#5
0
        /// <summary>
        /// Registers a command for the command client</summary>
        /// <param name="commandService">Command service</param>
        /// <param name="commandTag">Command's unique ID</param>
        /// <param name="menuTag">Containing menu's unique ID, or null</param>
        /// <param name="groupTag">Containing menu group's unique ID, or null</param>
        /// <param name="menuText">Command text as it appears in menu</param>
        /// <param name="description">Command description</param>
        /// <param name="shortcut">Command shortcut, or Keys.None if none</param>
        /// <param name="imageKey">Object identifying image, or null if none</param>
        /// <param name="visibility">Whether command is visible in menus and toolbars</param>
        /// <param name="client">Client that performs command</param>
        /// <returns>CommandInfo object describing command</returns>
        public static CommandInfo RegisterCommand(
            this ICommandService commandService,
            object commandTag,
            object menuTag,
            object groupTag,
            string menuText,
            string description,
            Keys shortcut,
            object imageKey,
            CommandVisibility visibility,
            ICommandClient client)
        {
            CommandInfo info = new CommandInfo(commandTag, menuTag, groupTag, menuText, description, shortcut, imageKey, visibility);

            commandService.RegisterCommand(info, client);
            return(info);
        }
示例#6
0
        /// <summary>
        /// Registers a command for the command client</summary>
        /// <param name="commandService">Command service</param>
        /// <param name="commandTag">Command's unique ID</param>
        /// <param name="menuTag">Containing menu's unique ID, or null</param>
        /// <param name="groupTag">Containing menu group's unique ID, or null</param>
        /// <param name="menuText">Command text as it appears in menu</param>
        /// <param name="description">Command description</param>
        /// <param name="shortcut">Command shortcut, or Keys.None if none</param>
        /// <param name="imageName">Text identifying image, or null if none</param>
        /// <param name="visibility">Value describing whether command is visible in menus and toolbars</param>
        /// <param name="client">Client that performs command</param>
        /// <returns>CommandInfo object describing command</returns>
        public static CommandInfo RegisterCommand(
            this ICommandService commandService,
            object commandTag,
            object menuTag,
            object groupTag,
            string menuText,
            string description,
            System.Windows.Forms.Keys shortcut,
            string imageName,
            CommandVisibility visibility,
            ICommandClient client)
        {
            CommandInfo info = new CommandInfo(commandTag, menuTag, groupTag, menuText, description, KeysInterop.ToAtf(shortcut), imageName, visibility);

            commandService.RegisterCommand(info, client);
            return(info);
        }
示例#7
0
        /// <summary>
        /// Creates and registers a command</summary>
        /// <param name="commandRegistry">ICommandService</param>
        /// <param name="commandTag">Unique command ID</param>
        /// <param name="menuTag">Unique ID for menu command attached to</param>
        /// <param name="groupTag">Unique ID for command's group</param>
        /// <param name="menuText">Command text as it appears in menu</param>
        /// <param name="description">Command description</param>
        /// <param name="shortcut">Command shortcut</param>
        /// <param name="imageSourceKey">Image resource for command</param>
        /// <param name="visibility">Flags indicating where command is visible: on toolbar, menus, etc.</param>
        /// <param name="client">ICommandClient</param>
        /// <returns>ICommandItem for command</returns>
        public static ICommandItem RegisterCommand(
            this ICommandService commandRegistry,
            object commandTag,
            object menuTag,
            object groupTag,
            string menuText,
            string description,
            KeyGesture shortcut,
            object imageSourceKey,
            CommandVisibility visibility,
            ICommandClient client)
        {
            Requires.NotNull(commandRegistry, "commandRegistry");
            var gestures = shortcut != null ? new InputGesture[] { shortcut } : null;
            var def      = new CommandDef(commandTag, menuTag, groupTag, menuText, null, description, imageSourceKey, gestures, visibility);

            return(commandRegistry.RegisterCommand(def, client));
        }
示例#8
0
文件: CommandDef.cs 项目: Joxx0r/ATF
        /// <summary>
        /// Constructor with parameters</summary>
        /// <param name="commandTag">Command ID</param>
        /// <param name="menuTag">Unique ID for menu command attached to</param>
        /// <param name="groupTag">Unique ID for command's group</param>
        /// <param name="text">User visible command text, as on menu item</param>
        /// <param name="menuPath">String array describing menu path</param>
        /// <param name="description">Command description</param>
        /// <param name="imageSourceKey">Image resource for command</param>
        /// <param name="inputGestures">Sequence of input device gestures to execute command</param>
        /// <param name="visibility">Flags indicating where command is visible: on toolbar, menus, etc.</param>
        public CommandDef(
            object commandTag,
            object menuTag,
            object groupTag,
            string text,
            string[] menuPath,
            string description,
            object imageSourceKey,
            InputGesture[] inputGestures,
            CommandVisibility visibility)
            : this(commandTag, menuTag, groupTag, text, description)
        {

            ImageSourceKey = imageSourceKey;
            if(menuPath != null)
                MenuPath = menuPath;
            if (inputGestures != null)
                InputGestures = inputGestures;
            
            Visibility = visibility;
        }
示例#9
0
文件: CommandInfo.cs 项目: zparr/ATF
        /// <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);
        }
示例#10
0
        /// <summary>
        /// Constructor with parameters</summary>
        /// <param name="commandTag">Command ID</param>
        /// <param name="menuTag">Unique ID for menu command attached to</param>
        /// <param name="groupTag">Unique ID for command's group</param>
        /// <param name="text">User visible command text, as on menu item</param>
        /// <param name="menuPath">String array describing menu path</param>
        /// <param name="description">Command description</param>
        /// <param name="imageSourceKey">Image resource for command</param>
        /// <param name="inputGestures">Sequence of input device gestures to execute command</param>
        /// <param name="visibility">Flags indicating where command is visible: on toolbar, menus, etc.</param>
        public CommandDef(
            object commandTag,
            object menuTag,
            object groupTag,
            string text,
            string[] menuPath,
            string description,
            object imageSourceKey,
            InputGesture[] inputGestures,
            CommandVisibility visibility)
            : this(commandTag, menuTag, groupTag, text, description)
        {
            ImageSourceKey = imageSourceKey;
            if (menuPath != null)
            {
                MenuPath = menuPath;
            }
            if (inputGestures != null)
            {
                InputGestures = inputGestures;
            }

            Visibility = visibility;
        }
示例#11
0
 /// <summary>
 /// Tests whether command is visible or not</summary>
 /// <param name="cmd">ICommandItem for command</param>
 /// <param name="visibility">Where command is visible, as on menus, toolbars, etc.</param>
 /// <returns>True iff command is visible</returns>
 public static bool IsVisible(this ICommandItem cmd, CommandVisibility visibility)
 {
     return((cmd.Visibility & visibility) > 0);
 }
示例#12
0
文件: CommandInfo.cs 项目: jethac/ATF
 /// <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);
 }
示例#13
0
 /// <summary>
 /// Tests whether command is visible or not</summary>
 /// <param name="cmd">ICommandItem for command</param>
 /// <param name="visibility">Where command is visible, as on menus, toolbars, etc.</param>
 /// <returns>True iff command is visible</returns>
 public static bool IsVisible(this ICommandItem cmd, CommandVisibility visibility)
 {
     return (cmd.Visibility & visibility) > 0;
 }
示例#14
0
 /// <summary>
 /// Registers a command for the command client</summary>
 /// <param name="commandService">Command service</param>
 /// <param name="commandTag">Command's unique ID</param>
 /// <param name="visibility">Whether command is visible in menus and toolbars</param>
 /// <param name="client">Client that performs command</param>
 /// <returns>Menu/Toolbar command information</returns>
 public static CommandInfo RegisterCommand(
     this ICommandService commandService,
     StandardCommand commandTag,
     CommandVisibility visibility,
     ICommandClient client)
 {
     CommandInfo info = CommandInfo.GetStandardCommand(commandTag);
     commandService.RegisterCommand(info, client);
     info.Visibility = visibility;
     return info;
 }
示例#15
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);
        }
示例#16
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);
 }
示例#17
0
 /// <summary>
 /// Registers a command for the command client</summary>
 /// <param name="commandService">Command service</param>
 /// <param name="commandTag">Command's unique ID</param>
 /// <param name="menuTag">Containing menu's unique ID, or null</param>
 /// <param name="groupTag">Containing menu group's unique ID, or null</param>
 /// <param name="menuText">Command text as it appears in menu</param>
 /// <param name="description">Command description</param>
 /// <param name="shortcut">Command shortcut, or Keys.None if none</param>
 /// <param name="imageName">Text identifying image, or null if none</param>
 /// <param name="visibility">Value describing whether command is visible in menus and toolbars</param>
 /// <param name="client">Client that performs command</param>
 /// <returns>CommandInfo object describing command</returns>
 public static CommandInfo RegisterCommand(
     this ICommandService commandService,
     object commandTag,
     object menuTag,
     object groupTag,
     string menuText,
     string description,
     System.Windows.Forms.Keys shortcut,
     string imageName,
     CommandVisibility visibility,
     ICommandClient client)
 {
     CommandInfo info = new CommandInfo(commandTag, menuTag, groupTag, menuText, description, KeysInterop.ToAtf(shortcut), imageName, visibility);
     commandService.RegisterCommand(info, client);
     return info;
 }
示例#18
0
 /// <summary>
 /// Registers a command for the command client</summary>
 /// <param name="commandService">Command service</param>
 /// <param name="commandTag">Command's unique ID</param>
 /// <param name="menuTag">Containing menu's unique ID, or null</param>
 /// <param name="groupTag">Containing menu group's unique ID, or null</param>
 /// <param name="menuText">Command text as it appears in menu</param>
 /// <param name="description">Command description</param>
 /// <param name="shortcut">Command shortcut, or Keys.None if none</param>
 /// <param name="imageKey">Object identifying image, or null if none</param>
 /// <param name="visibility">Whether command is visible in menus and toolbars</param>
 /// <param name="client">Client that performs command</param>
 /// <returns>CommandInfo object describing command</returns>
 public static CommandInfo RegisterCommand(
     this ICommandService commandService,
     object commandTag,
     object menuTag,
     object groupTag,
     string menuText,
     string description,
     Keys shortcut,
     object imageKey,
     CommandVisibility visibility,
     ICommandClient client)
 {
     CommandInfo info = new CommandInfo(commandTag, menuTag, groupTag, menuText, description, shortcut, imageKey, visibility);
     commandService.RegisterCommand(info, client);
     return info;
 }
示例#19
0
 /// <summary>
 /// Creates and registers a command</summary>
 /// <param name="commandRegistry">ICommandService</param>
 /// <param name="commandTag">Unique command ID</param>
 /// <param name="menuTag">Unique ID for menu command attached to</param>
 /// <param name="groupTag">Unique ID for command's group</param>
 /// <param name="menuText">Command text as it appears in menu</param>
 /// <param name="description">Command description</param>
 /// <param name="shortcut">Command shortcut</param>
 /// <param name="imageSourceKey">Image resource for command</param>
 /// <param name="visibility">Flags indicating where command is visible: on toolbar, menus, etc.</param>
 /// <param name="client">ICommandClient</param>
 /// <returns>ICommandItem for command</returns>
 public static ICommandItem RegisterCommand(
     this ICommandService commandRegistry,
     object commandTag,
     object menuTag,
     object groupTag,
     string menuText,
     string description,
     KeyGesture shortcut,
     object imageSourceKey,
     CommandVisibility visibility,
     ICommandClient client)
 {
     Requires.NotNull(commandRegistry, "commandRegistry");
     var gestures = shortcut != null ? new InputGesture[] { shortcut } : null;
     var def = new CommandDef(commandTag, menuTag, groupTag, menuText, null, description, imageSourceKey, gestures, visibility);
     return commandRegistry.RegisterCommand(def, client);
 }