Beispiel #1
0
        /// <summary>
        /// used to add/remove/update a specific <see cref="KBind"/>
        /// </summary>
        /// <param name="kBind"></param>
        /// <param name="add"></param>
        private bool UpdateKeyBindGroups(KBind kBind, KBindChange change)
        {
            bool changeHappened = false;

            kBind.Init();
            //if(kBind.keyCombinations != null && kBind.keyCombinations[0].modifiers != null)
            //	Log(kBind.keyCombinations[0].modifiers[0]);
            //Log(kBind);
            EnsureInitializedKeyBinding();
            if (change == KBindChange.Update)
            {
                changeHappened |= UpdateKeyBindGroups(kBind, KBindChange.Remove);
                change          = KBindChange.Add;
            }
            for (int k = 0; k < keyBindGroups.Length; ++k)
            {
                KBindGroup group = keyBindGroups[k];
                changeHappened |= group.UpdateKeyBinding(kBind, change);
            }
            if (updateText && changeHappened)
            {
                UpdateCurrentKeyBindText();
            }
            return(changeHappened);
        }