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)); }
public InputFeedbackEventArgs(EInputEvent inputEvent, string text, int cursorPos, int lastProcessedInputID) { LastProcessedInputID = lastProcessedInputID; Text = text; CursorPos = cursorPos; InputEvent = inputEvent; }
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); } }
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); }
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);