diff --git a/frameworks/inputmethod_controller/include/input_method_controller.h b/frameworks/inputmethod_controller/include/input_method_controller.h index 891aa4fcccd03c13bd4fa1ed8ad0d8a86ab2d49c..f730ae8249de50c365a96f9be651818b127fd62b 100644 --- a/frameworks/inputmethod_controller/include/input_method_controller.h +++ b/frameworks/inputmethod_controller/include/input_method_controller.h @@ -30,13 +30,15 @@ namespace OHOS { namespace MiscServices { + class InputDataChannelStub; + class InputMethodSystemAbilityProxy; class OnTextChangedListener : public virtual RefBase { public: virtual void InsertText(const std::u16string& text) = 0; virtual void DeleteForward(int32_t length) = 0; virtual void DeleteBackward(int32_t length) = 0; - virtual void sendKeyEventFromInputMethod(KeyEvent event) = 0; - virtual void sendKeyboardStatus(KeyboardStatus status) = 0; + virtual void SendKeyEventFromInputMethod(const KeyEvent& event) = 0; + virtual void SendKeyboardStatus(const KeyboardInfo& info) = 0; virtual void SetKeyboardStatus(bool status) = 0; }; @@ -56,9 +58,9 @@ namespace MiscServices { void HideTextInput(); void Close(); void OnRemoteSaDied(const wptr &object); - void onCursorUpdate(CursorInfo cursorInfo); + void OnCursorUpdate(CursorInfo cursorInfo); void OnSelectionChange(std::u16string text, int start, int end); - void onConfigurationChange(Configuration info); + void OnConfigurationChange(Configuration info); private: InputMethodController(); ~InputMethodController(); diff --git a/frameworks/inputmethod_controller/include/input_method_utils.h b/frameworks/inputmethod_controller/include/input_method_utils.h index 332e78e30370e5d5ba335f0ae20f7bbc27dad32f..3d7e030e88e45de2ee8295cb9690c8e70f530cbe 100644 --- a/frameworks/inputmethod_controller/include/input_method_utils.h +++ b/frameworks/inputmethod_controller/include/input_method_utils.h @@ -16,34 +16,99 @@ #ifndef FM_IMC_PROJECT_INPUT_METHOD_UTILS_H #define FM_IMC_PROJECT_INPUT_METHOD_UTILS_H +#include + namespace OHOS { - namespace MiscServices { - class Configuration { - public: - enum { - TEXT_FIELD_ACTION_UNSPECIFIED = 0, - TEXT_FIELD_ACTION_NONE, - TEXT_FIELD_ACTION_GO, - TEXT_FIELD_ACTION_SEARCH, - TEXT_FIELD_ACTION_SEND, - TEXT_FIELD_ACTION_NEXT, - TEXT_FIELD_ACTION_DONE, - TEXT_FIELD_ACTION_PREVIOUS - }; - int mTextFieldAction; - }; - class CursorInfo { - }; - class KeyEvent { - }; - class KeyboardStatus { - public: - enum { - KEYBOARD_STATUS_HIDE = 0, - KEYBOARD_STATUS_SHOW - }; - int mKeyboardStatus; - }; - } +namespace MiscServices { + enum class EnterKeyType { + UNSPECIFIED = 0, + NONE, + GO, + SEARCH, + SEND, + NEXT, + DONE, + PREVIOUS + }; + + enum class TextInputType { + TEXT = 0, + MULTILINE, + NUMBER, + PHONE, + DATETIME, + EMAIL_ADDRESS, + URL, + VISIBLE_PASSWORD, + }; + class Configuration { + public: + EnterKeyType GetEnterKeyType() const + { + return enterKeyType; + } + + void SetEnterKeyType(EnterKeyType keyType) + { + enterKeyType = keyType; + } + TextInputType GetTextInputType() const + { + return textInputType; + } + + void SetTextInputType(TextInputType textType) + { + textInputType = textType; + } + + private: + EnterKeyType enterKeyType = EnterKeyType::UNSPECIFIED; + TextInputType textInputType = TextInputType::TEXT; + }; + + struct CursorInfo { + doule left = 0.0; + doule top = 0.0; + doule widht = 0.0; + doule height = 0.0; + }; + + class KeyEvent { + }; + + enum class KeyboardStatus { + NONE = 0, + HIDE, + SHOW + }; + enum class FunctionKey { + NONE = 0, + CONFIRM, + }; + class keyboardInfo { + public: + KeyboardStatus GetKeyboardStatus() const + { + return keyboardStatus; + } + void SetKeyboardStatus(int32_t status) const + { + keyboardStatus = static_cast(status); + } + FunctionKey GetFunctionKey() const + { + return functionKey; + } + void SetFunctionKey(int32_t key) const + { + functionKey = static_cast(key); + } + + private: + KeyboardStatus keyboardStatus = KeyboardStatus::NONE; + FunctionKey functionKey = FunctionKey::NONE; + }; +} } #endif // FM_IMC_PROJECT_INPUT_METHOD_UTILS_H \ No newline at end of file diff --git a/frameworks/inputmethod_controller/src/input_method_controller.cpp b/frameworks/inputmethod_controller/src/input_method_controller.cpp index b4c05e7dcf7b2748a8266c711ef8d178ba069038..425c16c7c743140ef01eead4b7ffb7319f5561ef 100644 --- a/frameworks/inputmethod_controller/src/input_method_controller.cpp +++ b/frameworks/inputmethod_controller/src/input_method_controller.cpp @@ -113,7 +113,7 @@ using namespace MessageID; MessageParcel *data = msg->msgContent_; int32_t length = data->ReadInt32(); if (textListener != nullptr) { - textListener->DeleteBackward(length); + textListener->DeleteForward(length); } break; } @@ -253,9 +253,9 @@ using namespace MessageID; InputMethodController::GetInstance()->OnRemoteSaDied(object); } - void InputMethodController::onCursorUpdate(CursorInfo cursorInfo) + void InputMethodController::OnCursorUpdate(CursorInfo cursorInfo) { - IMSA_HILOGI("InputMethodController::onCursorUpdate"); + IMSA_HILOGI("InputMethodController::OnCursorUpdate"); } void InputMethodController::OnSelectionChange(std::u16string text, int start, int end) @@ -266,9 +266,9 @@ using namespace MessageID; mSelectEnd = end; } - void InputMethodController::onConfigurationChange(Configuration info) + void InputMethodController::OnConfigurationChange(Configuration info) { - IMSA_HILOGI("InputMethodController::onConfigurationChange"); + IMSA_HILOGI("InputMethodController::OnConfigurationChange"); } } } \ No newline at end of file diff --git a/frameworks/inputmethod_controller/src/input_method_utils.cpp b/frameworks/inputmethod_controller/src/input_method_utils.cpp index f7626c70fcbe8f2f1c4ea915386b0b69e41b2d08..c3659bcc6a8764a79e85a903616b34416d17381c 100644 --- a/frameworks/inputmethod_controller/src/input_method_utils.cpp +++ b/frameworks/inputmethod_controller/src/input_method_utils.cpp @@ -12,4 +12,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +#include "input_method_utils.h" +namespace OHOS { +namespace MiscServices { +} +} diff --git a/unitest/src/input_method_controller_test.cpp b/unitest/src/input_method_controller_test.cpp index f55f8f95de925682b75d51c85b8a0dc3bad72421..b0330889e653490980615eae5bc79469b99bfc74 100644 --- a/unitest/src/input_method_controller_test.cpp +++ b/unitest/src/input_method_controller_test.cpp @@ -56,13 +56,13 @@ namespace MiscServices { { IMSA_HILOGI("IMC TEST TextListener DeleteForward length: %{public}d", length); } - void sendKeyEventFromInputMethod(KeyEvent event) + void SendKeyEventFromInputMethod(const KeyEvent& event) { IMSA_HILOGI("IMC TEST TextListener sendKeyEventFromInputMethod"); } - void sendKeyboardStatus(KeyboardStatus status) + void SendKeyboardInfo(const KeyboardInfo& info) { - IMSA_HILOGI("IMC TEST TextListener sendKeyboardStatus"); + IMSA_HILOGI("IMC TEST TextListener SendKeyboardInfo"); } }; class InputMethodControllerTest : public testing::Test {