/// <summary> /// Convert Unity EventModifiers to SFKeyModifiers bitfield /// </summary> /// <param name="unityModifiers">The EventModifiers from Unity for which to find the equivalent SFKeyModifiers for.</param> public static SFKeyModifiers.Modifiers GetSFModifiers(UnityEngine.EventModifiers unityModifiers) { SFKeyModifiers.Modifiers modifiers = SFKeyModifiers.Modifiers.Key_None; if ((unityModifiers & UnityEngine.EventModifiers.Shift) == UnityEngine.EventModifiers.Shift) { modifiers |= SFKeyModifiers.Modifiers.Key_ShiftPressed; } if ((unityModifiers & UnityEngine.EventModifiers.Control) == UnityEngine.EventModifiers.Control) { modifiers |= SFKeyModifiers.Modifiers.Key_CtrlPressed; } if ((unityModifiers & UnityEngine.EventModifiers.Alt) == UnityEngine.EventModifiers.Alt) { modifiers |= SFKeyModifiers.Modifiers.Key_AltPressed; } if ((unityModifiers & UnityEngine.EventModifiers.CapsLock) == UnityEngine.EventModifiers.CapsLock) { modifiers |= SFKeyModifiers.Modifiers.Key_CapsToggled; } if ((unityModifiers & UnityEngine.EventModifiers.Numeric) == UnityEngine.EventModifiers.Numeric) { modifiers |= SFKeyModifiers.Modifiers.Key_NumToggled; } return(modifiers); }
public bool HandleKeyEvent(SFKey.Code cd, SFKeyModifiers.Modifiers mod, UInt32 down, int keyboardIndex = 0) { if (MovieID == -1) { return(false); } if (AcceptKeyEvents()) { return(SF_HandleKeyEvent(MovieID, cd, mod, down, keyboardIndex)); } return(false); }
// Overload for handling keydown event from GamePad public bool HandleKeyDownEvent(SFKey.Code code, SFKeyModifiers.Modifiers mod = 0, int keyboardIndex = 0) { if (!IsSFInitialized()) { return(false); } bool handled = false; for (int i = 0; i < SFMovieList.Count; i++) // Loop through List with for { if (SFMovieList[i].HandleKeyEvent(code, mod, 1, keyboardIndex)) { handled = true; } } return(handled); }
public bool HandleKeyUpEvent(UnityEngine.Event ev) { if (!IsSFInitialized()) { return(false); } bool handled = false; SFKey.Code cd = SFKey.GetSFKeyCode(ev.keyCode); SFKeyModifiers.Modifiers modifiers = SFKey.GetSFModifiers(ev.modifiers); for (int i = 0; i < SFMovieList.Count; i++) // Loop through List with for { if (SFMovieList[i].HandleKeyEvent(cd, modifiers, 0)) { handled = true; } } return(handled); }
private static extern bool SF_HandleKeyEvent(long movieID, SFKey.Code cd, SFKeyModifiers.Modifiers mod, UInt32 down, int keyboardIndex);