Example #1
0
        private static KeyAction Add(string type, Getter <Controller, bool> doOnDown, Setter <Controller, bool> doOnModeChange, bool needScroll)
        {
            KeyAction action = new KeyAction(type, doOnDown, doOnModeChange, needScroll);

            actions.Add(action);
            return(action);
        }
Example #2
0
 public void AddItem(KeyItem item, bool asMain)
 {
     if (item.modeKeys != null)
     {
         item = new KeyItem(item.keys | item.modeKeys.Value, item.modeKeys, item.action)
                .SetDoubleClick(item.doubleClick);
     }
     _items.Add(item);
     if (item.keys != Keys.None)
     {
         KeyItem prevItem;
         itemByKeys.TryGetValue(item.keys, out prevItem);
         if (asMain)
         {
             item.next             = prevItem;
             itemByKeys[item.keys] = item;
         }
         else
         {
             KeyItem lastItem = prevItem;
             for (; lastItem != null && lastItem.next != null; lastItem = lastItem.next)
             {
                 ;
             }
             if (lastItem != null)
             {
                 lastItem.next = item;
             }
             else
             {
                 itemByKeys.Add(item.keys, item);
             }
         }
         if (item.modeKeys != null)
         {
             RWList <KeyItem> items;
             modeItemsByKeys.TryGetValue(item.modeKeys.Value, out items);
             if (items == null)
             {
                 items = new RWList <KeyItem>();
                 modeItemsByKeys.Add(item.modeKeys.Value, items);
             }
             items.Add(item);
         }
     }
     if (item.doubleClick)
     {
         if (asMain)
         {
             item.next       = doubleClickItem;
             doubleClickItem = item;
         }
         else
         {
             KeyItem lastItem = doubleClickItem;
             for (; lastItem != null && lastItem.next != null; lastItem = lastItem.next)
             {
                 ;
             }
             if (lastItem != null)
             {
                 lastItem.next = item;
             }
             else
             {
                 doubleClickItem = item;
             }
         }
     }
 }