Ejemplo n.º 1
0
        public Panelhandler(Lib.UserInputManager manager, UserInputKey key, KeyPointAction onOpen, KeyPointAction onClose,
                            bool blockEnv = true)
        {
            var openhandler      = new KeyHandler(Layer.Ui, BlockType.None);
            var closehandler     = new KeyHandler(Layer.Ui, BlockType.All);
            var openBlockhandler = blockEnv ? new PointerKeyHandler(Layer.Ui, BlockType.All) : null;

            openhandler.BindKeyAction(key, (data) =>
            {
                manager.RegisterKeyhandler(closehandler);
                manager.RegisterPointerhandler(openBlockhandler);
                manager.UnregisterKeyhandler(openhandler);
            });

            if (null != onOpen)
            {
                openhandler.BindKeyAction(key, onOpen);
            }

            closehandler.BindKeyAction(key, (data) =>
            {
                manager.RegisterKeyhandler(openhandler);
                manager.UnregisterKeyhandler(closehandler);
                manager.UnregisterPointerhandler(openBlockhandler);
            });
            if (null != onClose)
            {
                closehandler.BindKeyAction(key, onClose);
            }

            manager.RegisterKeyhandler(openhandler);
        }
Ejemplo n.º 2
0
 private void Registerhandler()
 {
     foreach (var item in _receiveItemList)
     {
         var log = item.Log;
         _manager.RegisterKeyhandler(new KeyHandler(item.Layer, item.Block).BindKeyAction(item.Key, (data) =>
         {
             Console.Write(log);
         }));
     }
 }
Ejemplo n.º 3
0
        public int BlockKey(Layer layer)
        {
            int id = 0;

            if (_avaliableKeys.Count > 0)
            {
                var item = _avaliableKeys.Dequeue();
                item.Handler.handlerLayer = (int)layer;
                _manager.RegisterKeyhandler(item.Handler);
                id = item.Id;
            }
            else
            {
                var item = new KeyhandlerItem
                {
                    Id      = NextKeyId,
                    Handler = new KeyHandler(layer, BlockType.All),
                };
                _manager.RegisterKeyhandler(item.Handler);
                _keyDic[item.Id] = item;
                id = item.Id;
            }
            return(id);
        }