public static uint ReadInput(InputRecord[] buffer, EInputEvent filter = EInputEvent.KeyEvent | EInputEvent.MouseEvent)
        {
            uint read = 0;

            CheckError(ReadConsoleInputW(m_StdInputHandle, buffer, (uint)buffer.Length, ref read));
            return(FilterInputs(read, buffer));
        }
Exemple #2
0
 public InputFeedbackEventArgs(EInputEvent inputEvent, string text, int cursorPos, int lastProcessedInputID)
 {
     LastProcessedInputID = lastProcessedInputID;
     Text       = text;
     CursorPos  = cursorPos;
     InputEvent = inputEvent;
 }
Exemple #3
0
        private static void OnActionEvent(Name actionName, Key key, EInputEvent InputEvent)
        {
            var bindingKey = new Tuple <Name, EInputEvent>(actionName, InputEvent);

            if (ActionBindings.TryGetValue(bindingKey, out ActionDelegate func))
            {
                func(key);
            }
        }
Exemple #4
0
        public unsafe void BindAction(Name ActionName, EInputEvent InputEvent, ActionDelegate Handler)
        {
            var func = Marshal.GetDelegateForFunctionPointer <BindActionFunction>(Native->BindActionFunction);

            func(Main.GameInstance, this, ActionName, InputEvent);
            var key = new Tuple <Name, EInputEvent>(ActionName, InputEvent);

            ActionBindings.Add(key, Handler);
        }
Exemple #5
0
 public InputFeedbackEventArgs(EInputEvent inputEvent, int imeOptions, int inputType, string hint, string packageName, string text, int cursorPos, int nFieldId)
 {
     InputEvent  = inputEvent;
     ImeOptions  = imeOptions;
     InputType   = inputType;
     Hint        = hint;
     PackageName = packageName;
     Text        = text;
     CursorPos   = cursorPos;
     FieldID     = nFieldId;
 }
        public FInputTouchBindingHandle BindTouch(EInputEvent keyEvent, FInputTouchHandler handler)
        {
            IntPtr  functionAddress;
            UObject obj;

            if (NativeReflection.LookupTable.GetFunctionAddress(handler, out functionAddress, out obj))
            {
                return((FInputTouchBindingHandle)Native_UInputComponent.BindTouch(
                           Address, (byte)keyEvent, obj.Address, functionAddress));
            }
            else
            {
                LogFunctionNotFound("BindTouch", keyEvent.ToString(), handler);
            }
            return(default(FInputTouchBindingHandle));
        }
        /// <summary>
        /// Binds a delegate function to an Action defined in the project settings.
        /// Returned reference is only guaranteed to be valid until another action is bound.
        /// </summary>
        public FInputActionBindingHandle BindAction(string actionName, EInputEvent keyEvent, FInputActionHandler handler)
        {
            IntPtr  functionAddress;
            UObject obj;

            if (NativeReflection.LookupTable.GetFunctionAddress(handler, out functionAddress, out obj))
            {
                FName actionFName = (FName)actionName;
                return((FInputActionBindingHandle)Native_UInputComponent.BindAction(
                           Address, ref actionFName, (byte)keyEvent, obj.Address, functionAddress));
            }
            else
            {
                LogFunctionNotFound("BindAction", actionName, handler);
            }
            return(default(FInputActionBindingHandle));
        }
        /// <summary>
        /// Binds a chord event to a delegate function.
        /// Returned reference is only guaranteed to be valid until another input key is bound.
        /// </summary>
        public FInputKeyBindingHandle BindKey(FInputChord inputChord, EInputEvent keyEvent, FInputActionHandler handler)
        {
            IntPtr  functionAddress;
            UObject obj;

            if (NativeReflection.LookupTable.GetFunctionAddress(handler, out functionAddress, out obj))
            {
                return((FInputKeyBindingHandle)Native_UInputComponent.BindKeyChord(
                           Address,
                           ref inputChord.Key, inputChord.Shift, inputChord.Ctrl, inputChord.Alt, inputChord.Cmd,
                           (byte)keyEvent, obj.Address, functionAddress));
            }
            else
            {
                LogFunctionNotFound("BindKey", keyEvent.ToString(), handler);
            }
            return(default(FInputKeyBindingHandle));
        }
        public static uint FilterInputs(uint count, InputRecord[] buffer, EInputEvent filter = EInputEvent.KeyEvent | EInputEvent.MouseEvent)
        {
            uint newCount = count;

            if (count > 0)
            {
                for (int x = (int)count - 1; x >= 0; --x)
                {
                    InputRecord record = buffer[x];
                    if ((filter & record.EventType) == 0)
                    {
                        //(uint)record.EventType == 0x0004 //buffer resize
                        --newCount;
                        for (int y = x; y < count - 1; ++y)
                        {
                            buffer[y] = buffer[y + 1];
                        }
                        buffer[count - 1] = default(InputRecord);
                    }
                }
            }
            return(newCount);
        }
 public FInputActionBinding(string inActionName, EInputEvent inKeyEvent) :
     base(E_CreateStruct_FInputActionBinding_FName_EInputEvent(inActionName, (byte)inKeyEvent), false)
 {
 }
 public FInputTouchBinding(EInputEvent inKeyEvent) :
     base(E_CreateStruct_FInputTouchBinding_EInputEvent((byte)inKeyEvent), false)
 {
 }
        public void BindAction(string actionName, EInputEvent keyEvent, Action callback)
        {
            var eventId = NativeManager.AddEvent(callback);

            E_UInputComponent_BindAction(this, eventId, actionName, keyEvent);
        }
 private static extern void E_UInputComponent_BindAction(IntPtr ptr, uint eventId, string actionName, EInputEvent keyEvent);