[Tizen] Add Finalize api for imf-manager
[platform/core/uifw/dali-adaptor.git] / adaptors / integration-api / x11 / imf-manager-impl.h
old mode 100644 (file)
new mode 100755 (executable)
index 94e7ecd..2ad44b1
@@ -45,10 +45,16 @@ public:
   typedef Dali::ImfManager::ImfEventSignalType ImfEventSignalType;
   typedef Dali::ImfManager::StatusSignalType ImfStatusSignalType;
   typedef Dali::ImfManager::VoidSignalType ImfVoidSignalType;
+  typedef Dali::ImfManager::KeyboardTypeSignalType ImfKeyboardTypeSignalType;
 
 public:
 
   /**
+   * @copydoc Dali::ImfManager::Finalize()
+   */
+  void Finalize();
+
+  /**
    * Check whether the ImfManager is available.
    * @return true if available, false otherwise
    */
@@ -66,7 +72,7 @@ public:
    * Constructor
    * @param[in] ecoreXwin, The window is created by application.
    */
-  ImfManager( Ecore_X_Window ecoreXwin );
+  ImfManager( Ecore_X_Window* ecoreXwin );
 
   /**
    * Connect Callbacks required for IMF.
@@ -176,6 +182,51 @@ public:
   */
   void ApplyOptions( const InputMethodOptions& options );
 
+  /**
+   * @copydoc Dali::ImfManager::SetInputPanelUserData()
+   */
+  void SetInputPanelUserData( const std::string& data );
+
+  /**
+   * @copydoc Dali::ImfManager::GetInputPanelUserData()
+   */
+  void GetInputPanelUserData( std::string& data );
+
+  /**
+   * @copydoc Dali::ImfManager::GetInputPanelState()
+   */
+  Dali::ImfManager::State GetInputPanelState();
+
+  /**
+   * @copydoc Dali::ImfManager::SetReturnKeyState()
+   */
+  void SetReturnKeyState( bool visible );
+
+  /**
+   * @copydoc Dali::ImfManager::AutoEnableInputPanel()
+   */
+  void AutoEnableInputPanel( bool enabled );
+
+  /**
+   * @copydoc Dali::ImfManager::ShowInputPanel()
+   */
+  void ShowInputPanel();
+
+  /**
+   * @copydoc Dali::ImfManager::HideInputPanel()
+   */
+  void HideInputPanel();
+
+  /**
+   * @copydoc Dali::ImfManager::GetKeyboardType()
+   */
+  Dali::ImfManager::KeyboardType GetKeyboardType();
+
+  /**
+   * @copydoc Dali::ImfManager::GetInputPanelLocale()
+   */
+  std::string GetInputPanelLocale();
+
 public:  // Signals
 
   /**
@@ -203,6 +254,10 @@ public:  // Signals
    */
   ImfVoidSignalType& LanguageChangedSignal() { return mKeyboardLanguageChangedSignal; }
 
+  /**
+   * @copydoc Dali::ImfManager::KeyboardTypeChangedSignal()
+   */
+  ImfKeyboardTypeSignalType& KeyboardTypeChangedSignal() { return mKeyboardTypeChangedSignal; }
 protected:
 
   /**
@@ -215,7 +270,7 @@ private:
    * Context created the first time and kept until deleted.
    * @param[in] ecoreXwin, The window is created by application.
    */
-  void CreateContext( Ecore_X_Window ecoreXwin );
+  void CreateContext( Ecore_X_Window* ecoreXwin );
 
   /**
    * @copydoc Dali::ImfManager::DeleteContext()
@@ -229,18 +284,21 @@ private:
 
 private:
   Ecore_IMF_Context* mIMFContext;
+  Ecore_X_Window* mEcoreXWin;
   int mIMFCursorPosition;
   std::string mSurroundingText;
 
+  bool mInited:1;                            ///< Whether the imf is already inited.
   bool mRestoreAfterFocusLost:1;             ///< Whether the keyboard needs to be restored (activated ) after focus regained.
   bool mIdleCallbackConnected:1;             ///< Whether the idle callback is already connected.
   InputMethodOptions        mOptions;
 
-  ImfManagerSignalType      mActivatedSignal;
-  ImfEventSignalType        mEventSignal;
-  ImfStatusSignalType       mKeyboardStatusSignal;
-  ImfVoidSignalType         mKeyboardResizeSignal;
-  ImfVoidSignalType         mKeyboardLanguageChangedSignal;
+  ImfManagerSignalType       mActivatedSignal;
+  ImfEventSignalType         mEventSignal;
+  ImfStatusSignalType        mKeyboardStatusSignal;
+  ImfVoidSignalType          mKeyboardResizeSignal;
+  ImfVoidSignalType          mKeyboardLanguageChangedSignal;
+  ImfKeyboardTypeSignalType  mKeyboardTypeChangedSignal;
 
 public: