Exemple #1
0
        //toggles can only be a single key
        public void MapToggleAction(Enum action,
                                    Enum actionOff, Keys key)
        {
            List <Keys> keys = new List <Keys>();

            keys.Add(key);

            ActionMapping am;

            if (IsActionMapped(keys, out am))
            {
                //overwrite existing?
                am.mAction     = action;
                am.mActionOff  = actionOff;
                am.mActionType = ActionTypes.Toggle;
            }
            else
            {
                ActionMapping amap = new ActionMapping();

                amap.mAction     = action;
                amap.mActionOff  = actionOff;
                amap.mActionType = ActionTypes.Toggle;
                amap.mKeys       = new List <Keys>(keys);

                mActionMap.Add(amap);
            }
        }
Exemple #2
0
 bool IsActionMapped(List <Keys> keys, out ActionMapping mapped)
 {
     mapped = null;
     foreach (ActionMapping am in mActionMap)
     {
         if (ListsMatch(am.mKeys, keys))
         {
             mapped = am;
             return(true);
         }
     }
     return(false);
 }
Exemple #3
0
 //is any element of the action's keys in the list?
 static bool IsActionPartInList(ActionMapping am, List <KeyHeldInfo> theList)
 {
     foreach (Keys k in am.mKeys)
     {
         foreach (KeyHeldInfo khi in theList)
         {
             if (khi.mKey == k)
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Exemple #4
0
        static bool IsActionInList(ActionMapping am, List <KeyHeldInfo> theList)
        {
            foreach (Keys k in am.mKeys)
            {
                bool bFound = false;
                foreach (KeyHeldInfo khi in theList)
                {
                    if (khi.mKey == k)
                    {
                        bFound = true;
                        break;
                    }
                }

                if (!bFound)
                {
                    return(false);
                }
            }
            return(true);
        }
Exemple #5
0
        static long     GetMinTimeActionListed(ActionMapping am, List <KeyHeldInfo> theList)
        {
            long minTime = long.MaxValue;

            foreach (Keys k in am.mKeys)
            {
                foreach (KeyHeldInfo khi in theList)
                {
                    if (khi.mKey == k)
                    {
                        minTime = Math.Min(khi.mTimeHeld, minTime);
                        break;
                    }
                }
            }

            if (minTime == long.MaxValue)
            {
                minTime = 0;
            }
            return(minTime);
        }
Exemple #6
0
        public void MapAction(Enum action,
                              ActionTypes mode, List <Keys> keys)
        {
            Debug.Assert(mode != ActionTypes.Toggle);

            ActionMapping am;

            if (IsActionMapped(keys, out am))
            {
                //overwrite existing?
                am.mAction     = action;
                am.mActionType = mode;
            }
            else
            {
                ActionMapping amap = new ActionMapping();

                amap.mAction     = action;
                amap.mActionType = mode;
                amap.mKeys       = new List <Keys>(keys);

                mActionMap.Add(amap);
            }
        }