diff options
author | Dianne Hackborn <hackbod@google.com> | 2010-07-13 19:50:36 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-07-13 19:50:36 -0700 |
commit | 2388ad9eef109fa7f63c196c819c83f0376f0645 (patch) | |
tree | 19c965b6d7efb893604fc448cebc9380ebb60fb6 /include | |
parent | fc6d300f408959b11f86623ea7a0ce547ded3563 (diff) | |
parent | f8d9379bd834573feca085284970cf686993c330 (diff) | |
download | frameworks_base-2388ad9eef109fa7f63c196c819c83f0376f0645.zip frameworks_base-2388ad9eef109fa7f63c196c819c83f0376f0645.tar.gz frameworks_base-2388ad9eef109fa7f63c196c819c83f0376f0645.tar.bz2 |
am f8d9379b: am d76b67c3: IME events are now dispatched to native applications.
Merge commit 'f8d9379bd834573feca085284970cf686993c330'
* commit 'f8d9379bd834573feca085284970cf686993c330':
IME events are now dispatched to native applications.
Diffstat (limited to 'include')
-rw-r--r-- | include/android_runtime/android_app_NativeActivity.h | 60 | ||||
-rw-r--r-- | include/ui/Input.h | 4 | ||||
-rw-r--r-- | include/ui/InputTransport.h | 26 |
3 files changed, 63 insertions, 27 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 diff --git a/include/ui/Input.h b/include/ui/Input.h index a2e0ba06..a7d23d4 100644 --- a/include/ui/Input.h +++ b/include/ui/Input.h @@ -43,7 +43,9 @@ enum { /* * Declare a concrete type for the NDK's input event forward declaration. */ -struct AInputEvent { }; +struct AInputEvent { + virtual ~AInputEvent() { } +}; namespace android { diff --git a/include/ui/InputTransport.h b/include/ui/InputTransport.h index 11714d5..226d1d5 100644 --- a/include/ui/InputTransport.h +++ b/include/ui/InputTransport.h @@ -331,30 +331,4 @@ private: } // 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); - - /* Destroys the consumer and releases its input channel. */ - virtual ~AInputQueue(); - - inline android::InputConsumer& getConsumer() { return mConsumer; } - - android::status_t consume(android::InputEvent** event); - - void setPollLoop(const android::sp<android::PollLoop>& pollLoop) { mPollLoop = pollLoop; } - const android::sp<android::PollLoop> getPollLoop() const { return mPollLoop; } - - virtual void doDefaultKey(android::KeyEvent* keyEvent) = 0; - -private: - android::InputConsumer mConsumer; - android::PreallocatedInputEventFactory mInputEventFactory; - android::sp<android::PollLoop> mPollLoop; -}; - #endif // _UI_INPUT_TRANSPORT_H |