diff options
Diffstat (limited to 'src/SFML/Window/Android/InputImpl.cpp')
-rw-r--r-- | src/SFML/Window/Android/InputImpl.cpp | 75 |
1 files changed, 49 insertions, 26 deletions
diff --git a/src/SFML/Window/Android/InputImpl.cpp b/src/SFML/Window/Android/InputImpl.cpp index 9da3a13..12d2430 100644 --- a/src/SFML/Window/Android/InputImpl.cpp +++ b/src/SFML/Window/Android/InputImpl.cpp @@ -37,39 +37,62 @@ namespace sf namespace priv { //////////////////////////////////////////////////////////// -bool InputImpl::isKeyPressed(Keyboard::Key key) +bool InputImpl::isKeyPressed(Keyboard::Key /* key */) { // Not applicable return false; } +bool InputImpl::isKeyPressed(Keyboard::Scancode /* codes */) +{ + // Not applicable + return false; +} + +Keyboard::Key InputImpl::localize(Keyboard::Scancode /* code */) +{ + // Not applicable + return Keyboard::Unknown; +} + +Keyboard::Scancode InputImpl::delocalize(Keyboard::Key /* key */) +{ + // Not applicable + return Keyboard::Scan::Unknown; +} + +String InputImpl::getDescription(Keyboard::Scancode /* code */) +{ + // Not applicable + return ""; +} + //////////////////////////////////////////////////////////// void InputImpl::setVirtualKeyboardVisible(bool visible) { // todo: Check if the window is active - ActivityStates* states = getActivity(NULL); - Lock lock(states->mutex); + ActivityStates& states = getActivity(); + Lock lock(states.mutex); // Initializes JNI - jint lResult; jint lFlags = 0; - JavaVM* lJavaVM = states->activity->vm; - JNIEnv* lJNIEnv = states->activity->env; + JavaVM* lJavaVM = states.activity->vm; + JNIEnv* lJNIEnv = states.activity->env; JavaVMAttachArgs lJavaVMAttachArgs; lJavaVMAttachArgs.version = JNI_VERSION_1_6; lJavaVMAttachArgs.name = "NativeThread"; lJavaVMAttachArgs.group = NULL; - lResult=lJavaVM->AttachCurrentThread(&lJNIEnv, &lJavaVMAttachArgs); + jint lResult = lJavaVM->AttachCurrentThread(&lJNIEnv, &lJavaVMAttachArgs); if (lResult == JNI_ERR) err() << "Failed to initialize JNI, couldn't switch the keyboard visibility" << std::endl; // Retrieves NativeActivity - jobject lNativeActivity = states->activity->clazz; + jobject lNativeActivity = states.activity->clazz; jclass ClassNativeActivity = lJNIEnv->GetObjectClass(lNativeActivity); // Retrieves Context.INPUT_METHOD_SERVICE @@ -105,7 +128,7 @@ void InputImpl::setVirtualKeyboardVisible(bool visible) // Runs lInputMethodManager.showSoftInput(...) jmethodID MethodShowSoftInput = lJNIEnv->GetMethodID(ClassInputMethodManager, "showSoftInput", "(Landroid/view/View;I)Z"); - jboolean lResult = lJNIEnv->CallBooleanMethod(lInputMethodManager, + lJNIEnv->CallBooleanMethod(lInputMethodManager, MethodShowSoftInput, lDecorView, lFlags); } else @@ -121,7 +144,7 @@ void InputImpl::setVirtualKeyboardVisible(bool visible) // lInputMethodManager.hideSoftInput(...) jmethodID MethodHideSoftInput = lJNIEnv->GetMethodID(ClassInputMethodManager, "hideSoftInputFromWindow", "(Landroid/os/IBinder;I)Z"); - jboolean lRes = lJNIEnv->CallBooleanMethod(lInputMethodManager, + lJNIEnv->CallBooleanMethod(lInputMethodManager, MethodHideSoftInput, lBinder, lFlags); lJNIEnv->DeleteLocalRef(lBinder); } @@ -138,10 +161,10 @@ bool InputImpl::isMouseButtonPressed(Mouse::Button button) { ALooper_pollAll(0, NULL, NULL, NULL); - priv::ActivityStates* states = priv::getActivity(NULL); - Lock lock(states->mutex); + priv::ActivityStates& states = priv::getActivity(); + Lock lock(states.mutex); - return states->isButtonPressed[button]; + return states.isButtonPressed[button]; } @@ -150,29 +173,29 @@ Vector2i InputImpl::getMousePosition() { ALooper_pollAll(0, NULL, NULL, NULL); - priv::ActivityStates* states = priv::getActivity(NULL); - Lock lock(states->mutex); + priv::ActivityStates& states = priv::getActivity(); + Lock lock(states.mutex); - return states->mousePosition; + return states.mousePosition; } //////////////////////////////////////////////////////////// -Vector2i InputImpl::getMousePosition(const Window& relativeTo) +Vector2i InputImpl::getMousePosition(const WindowBase& /* relativeTo */) { return getMousePosition(); } //////////////////////////////////////////////////////////// -void InputImpl::setMousePosition(const Vector2i& position) +void InputImpl::setMousePosition(const Vector2i& /* position */) { // Injecting events is impossible on Android } //////////////////////////////////////////////////////////// -void InputImpl::setMousePosition(const Vector2i& position, const Window& relativeTo) +void InputImpl::setMousePosition(const Vector2i& position, const WindowBase& /* relativeTo */) { setMousePosition(position); } @@ -183,10 +206,10 @@ bool InputImpl::isTouchDown(unsigned int finger) { ALooper_pollAll(0, NULL, NULL, NULL); - priv::ActivityStates* states = priv::getActivity(NULL); - Lock lock(states->mutex); + priv::ActivityStates& states = priv::getActivity(); + Lock lock(states.mutex); - return states->touchEvents.find(finger) != states->touchEvents.end(); + return states.touchEvents.find(static_cast<int>(finger)) != states.touchEvents.end(); } @@ -195,15 +218,15 @@ Vector2i InputImpl::getTouchPosition(unsigned int finger) { ALooper_pollAll(0, NULL, NULL, NULL); - priv::ActivityStates* states = priv::getActivity(NULL); - Lock lock(states->mutex); + priv::ActivityStates& states = priv::getActivity(); + Lock lock(states.mutex); - return states->touchEvents.find(finger)->second; + return states.touchEvents.find(static_cast<int>(finger))->second; } //////////////////////////////////////////////////////////// -Vector2i InputImpl::getTouchPosition(unsigned int finger, const Window& relativeTo) +Vector2i InputImpl::getTouchPosition(unsigned int finger, const WindowBase& /* relativeTo */) { return getTouchPosition(finger); } |