diff options
author | Dianne Hackborn <hackbod@google.com> | 2010-07-13 18:55:52 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-07-13 18:55:52 -0700 |
commit | f8d9379bd834573feca085284970cf686993c330 (patch) | |
tree | d603a4c197ba91ab2103a04d244e3f1004bef9e3 /include/android_runtime | |
parent | 89ee578b7053d27a50922f82feb94bf6054b330c (diff) | |
parent | d76b67c340d1564abf8d14d976fdaf83bf2b3320 (diff) | |
download | frameworks_base-f8d9379bd834573feca085284970cf686993c330.zip frameworks_base-f8d9379bd834573feca085284970cf686993c330.tar.gz frameworks_base-f8d9379bd834573feca085284970cf686993c330.tar.bz2 |
am d76b67c3: IME events are now dispatched to native applications.
Merge commit 'd76b67c340d1564abf8d14d976fdaf83bf2b3320' into gingerbread-plus-aosp
* commit 'd76b67c340d1564abf8d14d976fdaf83bf2b3320':
IME events are now dispatched to native applications.
Diffstat (limited to 'include/android_runtime')
-rw-r--r-- | include/android_runtime/android_app_NativeActivity.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/include/android_runtime/android_app_NativeActivity.h b/include/android_runtime/android_app_NativeActivity.h index f808328..d7a9a2c 100644 --- a/include/android_runtime/android_app_NativeActivity.h +++ b/include/android_runtime/android_app_NativeActivity.h @@ -17,6 +17,8 @@ #ifndef _ANDROID_APP_NATIVEACTIVITY_H #define _ANDROID_APP_NATIVEACTIVITY_H +#include <ui/InputTransport.h> + #include <android/native_activity.h> #include "jni.h" @@ -29,7 +31,65 @@ extern void android_NativeActivity_setWindowFormat( extern void android_NativeActivity_setWindowFlags( ANativeActivity* activity, int32_t values, int32_t mask); +extern void android_NativeActivity_showSoftInput( + ANativeActivity* activity, int32_t flags); + +extern void android_NativeActivity_hideSoftInput( + ANativeActivity* activity, int32_t flags); } // namespace android + +/* + * NDK input queue API. + */ +struct AInputQueue { +public: + /* Creates a consumer associated with an input channel. */ + explicit AInputQueue(const android::sp<android::InputChannel>& channel, int workWrite); + + /* Destroys the consumer and releases its input channel. */ + ~AInputQueue(); + + void attachLooper(ALooper* looper, ALooper_callbackFunc* callback, void* data); + + void detachLooper(); + + int32_t hasEvents(); + + int32_t getEvent(AInputEvent** outEvent); + + void finishEvent(AInputEvent* event, bool handled); + + + // ---------------------------------------------------------- + + inline android::InputConsumer& getConsumer() { return mConsumer; } + + void dispatchEvent(android::KeyEvent* event); + + android::KeyEvent* consumeUnhandledEvent(); + + int mWorkWrite; + +private: + void doDefaultKey(android::KeyEvent* keyEvent); + + android::InputConsumer mConsumer; + android::PreallocatedInputEventFactory mInputEventFactory; + android::sp<android::PollLoop> mPollLoop; + + int mDispatchKeyRead; + int mDispatchKeyWrite; + + // This is only touched by the event reader thread. It is the current + // key events that came out of the mDispatchingKeys list and are now + //Êdelivered to the app. + android::Vector<android::KeyEvent*> mDeliveringKeys; + + android::Mutex mLock; + android::Vector<android::KeyEvent*> mPendingKeys; + android::Vector<android::KeyEvent*> mDispatchingKeys; +}; + #endif // _ANDROID_APP_NATIVEACTIVITY_H |