After taking a look at the engine source for 4.6 input mapping, I noticed FSlateApplication::Get().ProcessKeyDownEvent(KeyEvent); and FSlateApplication::Get().ProcessAnalogInputEvent(AnalogInputEvent); are exposed, so using something like
bool EmitKeyDownEventForKey(FKey key, int32 user, bool repeat)
{
FKeyEvent KeyEvent(key, FSlateApplication::Get().GetModifierKeys(), user, repeat, 0, 0);
return FSlateApplication::Get().ProcessKeyDownEvent(KeyEvent);
}
Would approximate FSlateApplication::OnControllerButtonPressed(FKey, int32, bool);
Except that using KeyEvent() causes FKeyEvent::ToText(void)const implementation to be required in your implementation file, e.g.
FText FKeyEvent::ToText() const
{
return NSLOCTEXT("Joystick Plugin Events", "Key", "Text");
}
which you cannot add because doing so causes error C4273: ‘FKeyEvent::ToText’ : inconsistent dll linkage.
Any guidance on adding custom input mapping in 4.6 epic? or has been broken without an engine patch?
Edit:
I guess you can suppress the warning with #pragma warning( disable:4273 ) but feels hacky, still would like to know the proper way to achieve