Internal::Adaptor::InputMethodContext::GetImplementation(*this).SetInputPanelPosition(x, y);
}
+bool InputMethodContext::SetInputPanelPositionAlign(int x, int y, Dali::InputMethodContext::InputPanelAlign align)
+{
+ return Internal::Adaptor::InputMethodContext::GetImplementation(*this).SetInputPanelPositionAlign(x, y, align);
+}
+
void InputMethodContext::GetPreeditStyle(PreEditAttributeDataContainer& attrs) const
{
Internal::Adaptor::InputMethodContext::GetImplementation(*this).GetPreeditStyle(attrs);
ALPHABET ///< Latin alphabet(default). It can be changed according to OSD(On Screen Display) language.
};
+ /**
+ * @brief Enumeration for defining the types of Ecore_IMF Input Panel align.
+ */
+ enum class InputPanelAlign
+ {
+ TOP_LEFT, ///< The top-left corner
+ TOP_CENTER, ///< The top-center position
+ TOP_RIGHT, ///< The top-right corner
+ MIDDLE_LEFT, ///< The middle-left position
+ MIDDLE_CENTER, ///< The middle-center position
+ MIDDLE_RIGHT, ///< The middle-right position
+ BOTTOM_LEFT, ///< The bottom-left corner
+ BOTTOM_CENTER, ///< The bottom-center position
+ BOTTOM_RIGHT ///< The bottom-right corner
+ };
+
/**
* @brief Enumeration for the preedit style types.
*/
*/
void SetInputPanelPosition(unsigned int x, unsigned int y);
+ /**
+ * @brief Sets the alignment and its x, y coordinates of the input panel.
+ *
+ * Regardless of the rotation degree, the x, y values of the top-left corner on the screen are based on 0, 0.
+ * When the IME size is changed, its size will change according to the set alignment.
+ *
+ * @param[in] x The x coordinate of the InputPanelAlign value.
+ * @param[in] y The y coordinate of the InputPanelAlign value.
+ * @param[in] align one of the InputPanelAlign values specifying the desired alignment.
+ * @return true on success, false otherwise.
+ * @remarks This API can be used to set the alignment of a floating IME.
+ */
+ bool SetInputPanelPositionAlign(int x, int y, InputPanelAlign align);
+
/**
* @brief Gets the preedit attributes data.
*
{
}
+ /**
+ * @copydoc Dali::InputMethodContext::SetInputPanelPositionAlign()
+ */
+ virtual bool SetInputPanelPositionAlign(int x, int y, Dali::InputMethodContext::InputPanelAlign align)
+ {
+ return false;
+ }
+
/**
* @copydoc Dali::InputMethodContext::GetPreeditStyle()
*/
SET_INPUT_PANEL_DATA,
SET_INPUT_PANEL_LANGUAGE,
SET_INPUT_PANEL_POSITION,
+ SET_INPUT_PANEL_POSITION_ALIGN,
SET_RETURN_KEY_STATE,
MAX_COUNT
};
Dali::InputMethodContext::InputPanelLanguage InputMethodContextGeneric::GetInputPanelLanguage() const
{
- DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextX::GetInputPanelLanguage\n");
+ DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextGeneric::GetInputPanelLanguage\n");
return Dali::InputMethodContext::InputPanelLanguage::AUTOMATIC;
}
void InputMethodContextGeneric::SetInputPanelPosition(unsigned int x, unsigned int y)
{
- DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextX::SetInputPanelPosition\n");
+ DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextGeneric::SetInputPanelPosition\n");
+}
+
+bool InputMethodContextGeneric::SetInputPanelPositionAlign(int x, int y, Dali::InputMethodContext::InputPanelAlign align)
+{
+ DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextGeneric::SetInputPanelPositionAlign\n");
+ return false;
}
void InputMethodContextGeneric::GetPreeditStyle(Dali::InputMethodContext::PreEditAttributeDataContainer& attrs) const
{
- DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextX::GetPreeditStyle\n");
+ DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextGeneric::GetPreeditStyle\n");
// Do Nothing
}
*/
void SetInputPanelPosition(unsigned int x, unsigned int y) override;
+ /**
+ * @copydoc Dali::InputMethodContext::SetInputPanelPositionAlign()
+ */
+ bool SetInputPanelPositionAlign(int x, int y, Dali::InputMethodContext::InputPanelAlign align) override;
+
/**
* @copydoc Dali::InputMethodContext::GetPreeditStyle()
*/
DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextCocoa::SetInputPanelPosition\n");
}
+bool InputMethodContextCocoa::SetInputPanelPositionAlign(int x, int y, Dali::InputMethodContext::InputPanelAlign align)
+{
+ DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextCocoa::SetInputPanelPositionAlign\n");
+ return false;
+}
+
void InputMethodContextCocoa::GetPreeditStyle(Dali::InputMethodContext::PreEditAttributeDataContainer& attrs) const
{
DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextCocoa::GetPreeditStyle\n");
*/
void SetInputPanelPosition(unsigned int x, unsigned int y) override;
+ /**
+ * @copydoc Dali::InputMethodContext::SetInputPanelPositionAlign()
+ */
+ bool SetInputPanelPositionAlign(int x, int y, Dali::InputMethodContext::InputPanelAlign align) override;
+
/**
* @copydoc Dali::InputMethodContext::GetPreeditStyle()
*/
mBackupOperations[Operation::SET_INPUT_PANEL_POSITION] = std::bind(&InputMethodContextEcoreWl::SetInputPanelPosition, this, x, y);
}
+bool InputMethodContextEcoreWl::SetInputPanelPositionAlign(int x, int y, Dali::InputMethodContext::InputPanelAlign align)
+{
+ DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextEcoreWl::SetInputPanelPositionAlign\n");
+ bool result = false;
+
+ if(mIMFContext)
+ {
+ Ecore_IMF_Input_Panel_Align inputPanelAlign = ECORE_IMF_INPUT_PANEL_ALIGN_TOP_LEFT;
+ switch (align)
+ {
+ case Dali::InputMethodContext::InputPanelAlign::TOP_LEFT:
+ {
+ inputPanelAlign = ECORE_IMF_INPUT_PANEL_ALIGN_TOP_LEFT;
+ break;
+ }
+ case Dali::InputMethodContext::InputPanelAlign::TOP_CENTER:
+ {
+ inputPanelAlign = ECORE_IMF_INPUT_PANEL_ALIGN_TOP_CENTER;
+ break;
+ }
+ case Dali::InputMethodContext::InputPanelAlign::TOP_RIGHT:
+ {
+ inputPanelAlign = ECORE_IMF_INPUT_PANEL_ALIGN_TOP_RIGHT;
+ break;
+ }
+ case Dali::InputMethodContext::InputPanelAlign::MIDDLE_LEFT:
+ {
+ inputPanelAlign = ECORE_IMF_INPUT_PANEL_ALIGN_MIDDLE_LEFT;
+ break;
+ }
+ case Dali::InputMethodContext::InputPanelAlign::MIDDLE_CENTER:
+ {
+ inputPanelAlign = ECORE_IMF_INPUT_PANEL_ALIGN_MIDDLE_CENTER;
+ break;
+ }
+ case Dali::InputMethodContext::InputPanelAlign::MIDDLE_RIGHT:
+ {
+ inputPanelAlign = ECORE_IMF_INPUT_PANEL_ALIGN_MIDDLE_RIGHT;
+ break;
+ }
+ case Dali::InputMethodContext::InputPanelAlign::BOTTOM_LEFT:
+ {
+ inputPanelAlign = ECORE_IMF_INPUT_PANEL_ALIGN_BOTTOM_LEFT;
+ break;
+ }
+ case Dali::InputMethodContext::InputPanelAlign::BOTTOM_CENTER:
+ {
+ inputPanelAlign = ECORE_IMF_INPUT_PANEL_ALIGN_BOTTOM_CENTER;
+ break;
+ }
+ case Dali::InputMethodContext::InputPanelAlign::BOTTOM_RIGHT:
+ {
+ inputPanelAlign = ECORE_IMF_INPUT_PANEL_ALIGN_BOTTOM_RIGHT;
+ break;
+ }
+ }
+
+ result = ecore_imf_context_input_panel_position_align_set(mIMFContext, x, y, inputPanelAlign);
+ }
+
+ mBackupOperations[Operation::SET_INPUT_PANEL_POSITION_ALIGN] = std::bind(&InputMethodContextEcoreWl::SetInputPanelPositionAlign, this, x, y, align);
+
+ return result;
+}
+
void InputMethodContextEcoreWl::GetPreeditStyle(Dali::InputMethodContext::PreEditAttributeDataContainer& attrs) const
{
DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextEcoreWl::GetPreeditStyle\n");
*/
void SetInputPanelPosition(unsigned int x, unsigned int y) override;
+ /**
+ * @copydoc Dali::InputMethodContext::SetInputPanelPositionAlign()
+ */
+ bool SetInputPanelPositionAlign(int x, int y, Dali::InputMethodContext::InputPanelAlign align) override;
+
/**
* @copydoc Dali::InputMethodContext::GetPreeditStyle()
*/
// ecore_imf_context_input_panel_position_set() is supported from ecore-imf 1.21.0 version.
}
+bool InputMethodContextX::SetInputPanelPositionAlign(int x, int y, Dali::InputMethodContext::InputPanelAlign align)
+{
+ DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextX::SetInputPanelPositionAlign\n");
+ return false;
+}
+
void InputMethodContextX::GetPreeditStyle(Dali::InputMethodContext::PreEditAttributeDataContainer& attrs) const
{
DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextX::GetPreeditStyle\n");
*/
void SetInputPanelPosition(unsigned int x, unsigned int y) override;
+ /**
+ * @copydoc Dali::InputMethodContext::SetInputPanelPositionAlign()
+ */
+ bool SetInputPanelPositionAlign(int x, int y, Dali::InputMethodContext::InputPanelAlign align) override;
+
/**
* @copydoc Dali::InputMethodContext::GetPreeditStyle()
*/
DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::SetInputPanelPosition\n");\r
}\r
\r
+bool InputMethodContextWin::SetInputPanelPositionAlign(int x, int y, Dali::InputMethodContext::InputPanelAlign align)\r
+{\r
+ DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::SetInputPanelPositionAlign\n");\r
+ return false;\r
+}\r
+\r
void InputMethodContextWin::GetPreeditStyle(Dali::InputMethodContext::PreEditAttributeDataContainer& attrs) const\r
{\r
DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::GetPreeditStyle\n");\r
*/\r
void SetInputPanelPosition(unsigned int x, unsigned int y) override;\r
\r
+ /**\r
+ * @copydoc Dali::InputMethodContext::SetInputPanelPositionAlign()\r
+ */\r
+ bool SetInputPanelPositionAlign(int x, int y, Dali::InputMethodContext::InputPanelAlign align) override;\r
+\r
/**\r
* @copydoc Dali::InputMethodContext::GetPreeditStyle()\r
*/\r