コード例 #1
0
        private static Bitmap WriteCaption(Bitmap bmp, int scancode, int extended, Color fontColour)
        {
            string caption = AppController.GetKeyName(scancode, extended) ?? String.Format("SC: {0} EX: {1}", scancode, extended);

            // Blank keys.
            if (String.IsNullOrEmpty(caption))
            {
                return(bmp);
            }

            bool overlong    = false;
            bool localizable = false;

            int hash = KeyHasher.GetHashFromKeyData(scancode, extended);

            if (AppController.IsOverlongKey(hash))
            {
                overlong = true;
            }

            if (AppController.IsLocalizableKey(hash))
            {
                localizable = true;
            }

            return(WriteCaption(bmp, caption, overlong, localizable, fontColour));
        }
コード例 #2
0
ファイル: keydataxml.cs プロジェクト: xthxne/keymapper
        public Dictionary <string, int> GetGroupMembers(string groupname, int threshold)
        {
            // Enumerate group.
            string queryExpression;

            if (groupname == AllKeysGroupName)
            {
                queryExpression = @"/KeycodeData/keycodes[group!='Unmappable Keys']";
            }
            else if (groupname == _commonlyUsedKeysGroupName)
            {
                queryExpression = @"/KeycodeData/keycodes[useful>='2'" + "]";
            }
            else
            {
                queryExpression = @"/KeycodeData/keycodes[group='" + groupname + "' and useful>='" + threshold.ToString(System.Globalization.CultureInfo.InvariantCulture.NumberFormat) + "']";
            }

            XPathNodeIterator iterator;

            iterator = (XPathNodeIterator)_navigator.Select(queryExpression);

            // Gives us a bunch of keycode nodes.
            // Given the scancode / extended from each node, ask for the name from the current layout.
            int scancode, extended;

            Dictionary <string, int> dir = new Dictionary <string, int>(iterator.Count);

            foreach (XPathNavigator node in iterator)
            {
                scancode = Int32.Parse(GetElementValue("sc", node), CultureInfo.InvariantCulture.NumberFormat);
                extended = Int32.Parse(GetElementValue("ex", node), CultureInfo.InvariantCulture.NumberFormat);
                string name = AppController.GetKeyName(scancode, extended);
                if (dir.ContainsKey(name)) // ArgumentException results when trying to add duplicate key..
                {
                    Console.WriteLine("Duplicate name error: Name {0} Existing Scancode : {1} Scancode: {2}", name, dir[name], scancode);
                }
                else
                {
                    dir.Add(name, KeyHasher.GetHashFromKeyData(scancode, extended));
                }
            }

            return(dir);
        }