Merge "Modify to get the encoded offset in UTF8" into devel/master
[platform/core/uifw/dali-adaptor.git] / dali / internal / input / tizen-wayland / input-method-context-impl-ecore-wl.h
index 4630637..8a37100 100755 (executable)
@@ -1,8 +1,8 @@
-#ifndef __DALI_INTERNAL_INPUT_METHOD_CONTEXT_IMPL_ECORE_WL_H
-#define __DALI_INTERNAL_INPUT_METHOD_CONTEXT_IMPL_ECORE_WL_H
+#ifndef DALI_INTERNAL_INPUT_METHOD_CONTEXT_IMPL_ECORE_WL_H
+#define DALI_INTERNAL_INPUT_METHOD_CONTEXT_IMPL_ECORE_WL_H
 
 /*
- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@
  */
 
 // EXTERNAL INCLUDES
-#include <Ecore_IMF.h>
-#include <Ecore.h>
+#include <dali/internal/input/linux/dali-ecore-imf.h>
+#include <dali/internal/system/linux/dali-ecore.h>
 
 #include <dali/public-api/common/vector-wrapper.h>
 #include <dali/public-api/object/base-object.h>
@@ -40,16 +40,17 @@ namespace Internal
 namespace Adaptor
 {
 
-class InputMethodContextEcoreWl : public Dali::Internal::Adaptor::InputMethodContext
+class InputMethodContextEcoreWl : public Dali::Internal::Adaptor::InputMethodContext, public Dali::ConnectionTracker
 {
 public:
 
   /**
    * @brief Creates a new InputMethodContext handle
    *
+   * @param[in] actor The actor that uses the new InputMethodContext instance.
    * @return InputMethodContext pointer
    */
-  static InputMethodContextPtr New();
+  static InputMethodContextPtr New( Dali::Actor actor );
 
   /**
    * @brief Initializes member data.
@@ -108,12 +109,12 @@ public:
   /**
    * @copydoc Dali::InputMethodContext::PreEditChanged()
    */
-  void PreEditChanged( void *data, ImfContext *imfContext, void *event_info ) override;
+  void PreEditChanged( void *data, ImfContext *imfContext, void *eventInfo ) override;
 
   /**
    * @copydoc Dali::InputMethodContext::NotifyCursorPosition()
    */
-  void CommitReceived( void *data, ImfContext *imfContext, void *event_info ) override;
+  void CommitReceived( void *data, ImfContext *imfContext, void *eventInfo ) override;
 
   /**
    * @copydoc Dali::InputMethodContext::NotifyCursorPosition()
@@ -123,12 +124,17 @@ public:
   /**
    * @copydoc Dali::InputMethodContext::DeleteSurrounding()
    */
-  void DeleteSurrounding( void *data, ImfContext *imfContext, void *event_info ) override;
+  void DeleteSurrounding( void *data, ImfContext *imfContext, void *eventInfo ) override;
 
  /**
   * @copydoc Dali::InputMethodContext::SendPrivateCommand()
   */
-  void SendPrivateCommand( void* data, ImfContext* imfContext, void* event_info ) override;
+  void SendPrivateCommand( void* data, ImfContext* imfContext, void* eventInfo ) override;
+
+  /**
+   * @copydoc Dali::InputMethodContext::SendCommitContent()
+   */
+   void SendCommitContent( void* data, ImfContext* imfContext, void* eventInfo ) override;
 
   // Cursor related
   /**
@@ -222,6 +228,11 @@ public:
   std::string GetInputPanelLocale() override;
 
   /**
+   * @copydoc Dali::InputMethodContext::SetContentMIMETypes()
+   */
+  void SetContentMIMETypes( const std::string& mimeTypes ) override;
+
+  /**
    * @copydoc Dali::InputMethodContext::FilterEventKey()
    */
   bool FilterEventKey( const Dali::KeyEvent& keyEvent ) override;
@@ -235,6 +246,27 @@ public:
    * @copydoc Dali::InputMethodContext::IsTextPredictionAllowed()
    */
   bool IsTextPredictionAllowed() const override;
+
+  /**
+   * @copydoc Dali::InputMethodContext::SetInputPanelLanguage()
+   */
+  void SetInputPanelLanguage( Dali::InputMethodContext::InputPanelLanguage language ) override;
+
+  /**
+   * @copydoc Dali::InputMethodContext::GetInputPanelLanguage()
+   */
+  Dali::InputMethodContext::InputPanelLanguage GetInputPanelLanguage() const override;
+
+  /**
+   * @copydoc Dali::InputMethodContext::SetInputPanelPosition()
+   */
+  void SetInputPanelPosition( unsigned int x, unsigned int y ) override;
+
+  /**
+   * @copydoc Dali::InputMethodContext::GetPreeditStyle()
+   */
+  void GetPreeditStyle( Dali::InputMethodContext::PreEditAttributeDataContainer& attrs ) const override;
+
 private:
   /**
    * Context created the first time and kept until deleted.
@@ -279,11 +311,16 @@ private:
    */
   Ecore_IMF_Keyboard_Locks EcoreInputModifierToEcoreIMFLock( unsigned int modifier );
 
+  /**
+   * Called when the binded actor is added to a window.
+   */
+  void OnStaged( Dali::Actor actor );
+
 private:
   /**
    * @brief Constructor.
    */
-  explicit InputMethodContextEcoreWl();
+  explicit InputMethodContextEcoreWl( Dali::Actor actor );
 
 protected:
   /**
@@ -307,7 +344,10 @@ private:
   bool mIdleCallbackConnected:1;             ///< Whether the idle callback is already connected.
 
   std::vector<Dali::Integration::KeyEvent> mKeyEvents; ///< Stores key events to be sent from idle call-back.
-  InputMethodOptions        mOptions;
+  InputMethodOptions mOptions;
+  Dali::InputMethodContext::PreEditAttributeDataContainer mPreeditAttrs; ///< Stores preedit attribute data
+
+  int mWindowId;
 };
 
 
@@ -317,4 +357,4 @@ private:
 
 } // namespace Dali
 
-#endif // __DALI_INTERNAL_INPUT_METHOD_CONTEXT_IMPL_ECORE_WL_H
+#endif // DALI_INTERNAL_INPUT_METHOD_CONTEXT_IMPL_ECORE_WL_H