示例#1
0
        public override string ToString()
        {
            if (!ActionStringKeys.Any())
            {
                return(string.Empty);
            }

            var spacebarAlias = Globals.AliasResources.GetString("spacebar") ?? "spacebar";

            if (ActionStringKeys.Count == 1)
            {
                if (ActionStringKeys[0] == " ")
                {
                    return(spacebarAlias);
                }
                return((ActionStringKeys[0].StartsWith("vk")) ? ActionStringKeys[0].Split('_')[1]
                    : ActionStringKeys[0]);
            }

            var copyActionList = ActionStringKeys.ToList();

            if (Globals.ModKeysVirtualKeyCodes.Any(x => VirtualKeys.Contains(x)) &&
                VirtualKeys.Count > 1 && !Globals.ModKeysVirtualKeyCodes.Contains(VirtualKeys[0]) &&
                ActionStringKeys.All(x => !Globals.PolishSigns.Contains(x)))
            {
                copyActionList.Reverse();
            }

            var last = copyActionList.Last();

            if (last.Contains("_"))
            {
                if (last.Split('_').Any())
                {
                    copyActionList[copyActionList.Count - 1] = last.Split('_')[1];
                }
            }
            var result = (VirtualKeys
                          .Any(x => Globals.ModKeysVirtualKeyCodes.Any(y => y == x)) &&
                          !IsActionWithLeftArrowAdded() &&
                          ActionStringKeys.All(x => !Globals.PolishSigns.Contains(x)))
                ? String.Join(" + ", copyActionList).Replace("-", "")
                         .Replace(spacebarAlias, " ")
                :string.Join("", ActionStringKeys)
                         .Replace(spacebarAlias, " ");

            return(result);
        }
示例#2
0
        /// <summary>
        /// Replaces the string aliases.
        /// In some cases an action string in configuration file has to be specified by an alias.
        /// </summary>
        private void ReplaceStringAliases()
        {
            var resources = new ResXResourceSet(ConfigurationManager.AppSettings["KeyAliasesResxFileName"]);

            ActionStringKeys = ActionStringKeys.Select(x => x.Replace("backslash", "\\")).ToList();
            ActionStringKeys = ActionStringKeys.Select(x =>
                                                       x.Replace("lclick", resources.GetString("leftMouseClick"))).ToList();
            ActionStringKeys = ActionStringKeys.Select(x =>
                                                       x.Replace("ldclick", resources.GetString("leftMouseDoubleClick"))).ToList();
            ActionStringKeys = ActionStringKeys.Select(x =>
                                                       x.Replace("lhclick", resources.GetString("leftMouseHoldClick"))).ToList();
            ActionStringKeys = ActionStringKeys.Select(x =>
                                                       x.Replace("rclick", resources.GetString("rightMouseClick"))).ToList();
            ActionStringKeys = ActionStringKeys.Select(x =>
                                                       x.Replace("rdclick", resources.GetString("rightMouseDoubleClick"))).ToList();
            ActionStringKeys = ActionStringKeys.Select(x =>
                                                       x.Replace("rhclick", resources.GetString("rightMouseHoldClick"))).ToList();
            ActionStringKeys = ActionStringKeys.Select(x =>
                                                       Regex.Replace(x, "^ $", resources.GetString("spacebar") ?? "spacebar")).ToList();
            ActionStringKeys = ActionStringKeys.Select(x => x.Replace(@"/'/'", @"""""")).ToList();
        }
示例#3
0
 public bool IsActionWithPolishSigns()
 {
     return(ActionStringKeys.Any(x => Globals.PolishSigns.Contains(x)));
 }