[4.0] Add Finalize api for imf-manager
[platform/core/uifw/dali-adaptor.git] / adaptors / devel-api / adaptor-framework / imf-manager.h
old mode 100644 (file)
new mode 100755 (executable)
index b3ead5c..0efdeac
@@ -61,7 +61,28 @@ public:
     PREEDIT,             ///< Pre-Edit changed
     COMMIT,              ///< Commit recieved
     DELETESURROUNDING,   ///< Event to delete a range of characters from the string
-    GETSURROUNDING       ///< Event to query string and cursor position
+    GETSURROUNDING,      ///< Event to query string and cursor position
+    PRIVATECOMMAND       ///< Private command sent from the input panel
+  };
+
+  /**
+   * @brief Enumeration for state of the input panel.
+   */
+  enum State
+  {
+    DEFAULT = 0,   ///< Unknown state
+    SHOW,          ///< Input panel is shown
+    HIDE,          ///< Input panel is hidden
+    WILL_SHOW      ///< Input panel in process of being shown
+  };
+
+  /**
+   * @brief Enumeration for the type of Keyboard.
+   */
+  enum KeyboardType
+  {
+    SOFTWARE_KEYBOARD,  ///< Software keyboard (Virtual keyboard) is default
+    HARDWARE_KEYBOARD   ///< Hardware keyboard
   };
 
   /**
@@ -144,10 +165,18 @@ public:
   typedef Signal< ImfCallbackData ( ImfManager&, const ImfEventData& ) > ImfEventSignalType; ///< keyboard events
   typedef Signal< void () > VoidSignalType;
   typedef Signal< void (bool) > StatusSignalType;
+  typedef Signal< void (KeyboardType) > KeyboardTypeSignalType; ///< keyboard type
 
 public:
 
   /**
+   * @brief Finalize the IMF.
+   *
+   * It means that the context will be deleted.
+   */
+  void Finalize();
+
+  /**
    * @brief Retrieve a handle to the instance of ImfManager.
    * @return A handle to the ImfManager.
    */
@@ -253,6 +282,67 @@ public:
    */
   void ApplyOptions( const InputMethodOptions& options );
 
+  /**
+   * @brief Sets up the input-panel specific data.
+   * @param[in] data The specific data to be set to the input panel
+   */
+  void SetInputPanelData( const std::string& data );
+
+  /**
+   * @brief Gets the specific data of the current active input panel.
+   *
+   * Input Panel Data is not always the data which is set by SetInputPanelData().
+   * Data can be changed internally in the input panel.
+   * It is just used to get a specific data from the input panel to an application.
+   * @param[in] data The specific data to be got from the input panel
+   */
+  void GetInputPanelData( std::string& data );
+
+  /**
+   * @brief Gets the state of the current active input panel.
+   * @return The state of the input panel.
+   */
+  State GetInputPanelState();
+
+  /**
+   * @brief Sets the return key on the input panel to be visible or invisible.
+   *
+   * The default is true.
+   * @param[in] visible True if the return key is visible(enabled), false otherwise.
+   */
+  void SetReturnKeyState( bool visible );
+
+  /**
+   * @brief Enable to show the input panel automatically when focused.
+   * @param[in] enabled If true, the input panel will be shown when focused
+   */
+  void AutoEnableInputPanel( bool enabled );
+
+  /**
+   * @brief Shows the input panel.
+   */
+  void ShowInputPanel();
+
+  /**
+   * @brief Hides the input panel.
+   */
+  void HideInputPanel();
+
+  /**
+   * @brief Gets the keyboard type.
+   *
+   * The default keyboard type is SOFTWARE_KEYBOARD.
+   * @return The keyboard type
+   */
+  KeyboardType GetKeyboardType();
+
+  /**
+   * @brief Gets the current language locale of the input panel.
+   *
+   * ex) en_US, en_GB, en_PH, fr_FR, ...
+   * @return The current language locale of the input panel
+   */
+  std::string GetInputPanelLocale();
 
 public:
 
@@ -309,6 +399,18 @@ public:
    */
   VoidSignalType& LanguageChangedSignal();
 
+  /**
+   * @brief Connect to this signal to be notified when the keyboard type is changed.
+   *
+   * A callback of the following type may be connected:
+   * @code
+   *   void YourCallbackName( KeyboardType keyboard );
+   * @endcode
+   *
+   * @return The signal to connect to.
+   */
+  KeyboardTypeSignalType& KeyboardTypeChangedSignal();
+
   // Construction & Destruction
 
   /**