internal static InputEventRegisterInfo <InputUIOnEndDragEvent> GetOnEndDragListener(string m_UIEventKey, string UIName, string ComponentName, InputEventHandle <InputUIOnEndDragEvent> callback)
        {
            InputEventRegisterInfo <InputUIOnEndDragEvent> info = HeapObjectPool <InputEventRegisterInfo <InputUIOnEndDragEvent> > .GetObject();

            info.eventKey = InputUIOnEndDragEvent.GetEventKey(UIName, ComponentName);
            info.callBack = callback;

            InputMessageManager.AddListener(
                InputUIOnEndDragEvent.GetEventKey(UIName, ComponentName), callback);

            return(info);
        }
        public static InputEndDragRegisterInfo GetOnEndDragListener(DragAcceptor acceptor, string UIName, string ComponentName, string parm, InputEventHandle <InputUIOnEndDragEvent> callback)
        {
            InputEndDragRegisterInfo info = HeapObjectPool <InputEndDragRegisterInfo> .GetObject();

            info.eventKey    = InputUIOnEndDragEvent.GetEventKey(UIName, ComponentName, parm);
            info.callBack    = callback;
            info.m_acceptor  = acceptor;
            info.m_OnEndDrag = (data) =>
            {
                DispatchEndDragEvent(UIName, ComponentName, parm, data);
            };

            return(info);
        }