Internal::Adaptor::ImfManager::GetImplementation(*this).HideInputPanel();
}
+Dali::ImfManager::KeyboardType ImfManager::GetKeyboardType()
+{
+ return Internal::Adaptor::ImfManager::GetImplementation(*this).GetKeyboardType();
+}
+
+std::string ImfManager::GetInputPanelLocale()
+{
+ return Internal::Adaptor::ImfManager::GetImplementation(*this).GetInputPanelLocale();
+}
+
ImfManager::ImfManagerSignalType& ImfManager::ActivatedSignal()
{
return Internal::Adaptor::ImfManager::GetImplementation(*this).ActivatedSignal();
return Internal::Adaptor::ImfManager::GetImplementation(*this).LanguageChangedSignal();
}
+ImfManager::KeyboardTypeSignalType& ImfManager::KeyboardTypeChangedSignal()
+{
+ return Internal::Adaptor::ImfManager::GetImplementation(*this).KeyboardTypeChangedSignal();
+}
+
ImfManager::ImfManager(Internal::Adaptor::ImfManager *impl)
: BaseHandle(impl)
{
};
/**
+ * @brief Enumeration for the type of Keyboard.
+ */
+ enum KeyboardType
+ {
+ SOFTWARE_KEYBOARD, ///< Software keyboard (Virtual keyboard) is default
+ HARDWARE_KEYBOARD ///< Hardware keyboard
+ };
+
+ /**
* @brief This structure is used to pass on data from the IMF regarding predictive text.
*/
struct ImfEventData
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:
*/
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:
// Signals
*/
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
/**
imfManager->ResizedSignal().Emit();
}
+void InputPanelKeyboardTypeChangedCallback( void *data, Ecore_IMF_Context *context, int value )
+{
+ if( !data )
+ {
+ return;
+ }
+
+ ImfManager* imfManager = reinterpret_cast< ImfManager* > ( data );
+ switch (value)
+ {
+ case ECORE_IMF_INPUT_PANEL_SW_KEYBOARD_MODE:
+ {
+ // Emit Signal that the keyboard type is changed to Software Keyboard
+ imfManager->KeyboardTypeChangedSignal().Emit( Dali::ImfManager::KeyboardType::SOFTWARE_KEYBOARD );
+ break;
+ }
+ case ECORE_IMF_INPUT_PANEL_HW_KEYBOARD_MODE:
+ {
+ // Emit Signal that the keyboard type is changed to Hardware Keyboard
+ imfManager->KeyboardTypeChangedSignal().Emit( Dali::ImfManager::KeyboardType::HARDWARE_KEYBOARD );
+ break;
+ }
+ }
+}
+
/**
* Called when an IMF delete surrounding event is received.
* Here we tell the application that it should delete a certain range.
ecore_imf_context_input_panel_event_callback_add( mIMFContext, ECORE_IMF_INPUT_PANEL_STATE_EVENT, InputPanelStateChangeCallback, this );
ecore_imf_context_input_panel_event_callback_add( mIMFContext, ECORE_IMF_INPUT_PANEL_LANGUAGE_EVENT, InputPanelLanguageChangeCallback, this );
ecore_imf_context_input_panel_event_callback_add( mIMFContext, ECORE_IMF_INPUT_PANEL_GEOMETRY_EVENT, InputPanelGeometryChangedCallback, this );
+ ecore_imf_context_input_panel_event_callback_add( mIMFContext, ECORE_IMF_INPUT_PANEL_KEYBOARD_MODE_EVENT, InputPanelKeyboardTypeChangedCallback, this );
ecore_imf_context_retrieve_surrounding_callback_set( mIMFContext, ImfRetrieveSurrounding, this);
}
ecore_imf_context_input_panel_event_callback_del( mIMFContext, ECORE_IMF_INPUT_PANEL_STATE_EVENT, InputPanelStateChangeCallback );
ecore_imf_context_input_panel_event_callback_del( mIMFContext, ECORE_IMF_INPUT_PANEL_LANGUAGE_EVENT, InputPanelLanguageChangeCallback );
ecore_imf_context_input_panel_event_callback_del( mIMFContext, ECORE_IMF_INPUT_PANEL_GEOMETRY_EVENT, InputPanelGeometryChangedCallback );
+ ecore_imf_context_input_panel_event_callback_del( mIMFContext, ECORE_IMF_INPUT_PANEL_KEYBOARD_MODE_EVENT, InputPanelKeyboardTypeChangedCallback );
// We do not need to unset the retrieve surrounding callback.
}
}
}
+Dali::ImfManager::KeyboardType ImfManager::GetKeyboardType()
+{
+ DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::GetKeyboardType\n" );
+
+#ifdef OVER_TIZEN_VERSION_4
+ if( mIMFContext )
+ {
+ int value;
+ value = ecore_imf_context_keyboard_mode_get( mIMFContext );
+
+ switch (value)
+ {
+ case ECORE_IMF_INPUT_PANEL_SW_KEYBOARD_MODE:
+ {
+ return Dali::ImfManager::SOFTWARE_KEYBOARD;
+ break;
+ }
+ case ECORE_IMF_INPUT_PANEL_HW_KEYBOARD_MODE:
+ {
+ return Dali::ImfManager::HARDWARE_KEYBOARD;
+ break;
+ }
+ }
+ }
+#endif // OVER_TIZEN_VERSION_4
+ return Dali::ImfManager::KeyboardType::SOFTWARE_KEYBOARD;
+}
+
+std::string ImfManager::GetInputPanelLocale()
+{
+ DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::GetInputPanelLocale\n" );
+
+ std::string locale = "";
+
+ if( mIMFContext )
+ {
+ char* value = NULL;
+ ecore_imf_context_input_panel_language_locale_get( mIMFContext, &value );
+
+ if( value )
+ {
+ std::string valueCopy( value );
+ locale = valueCopy;
+
+ // The locale string retrieved must be freed with free().
+ free( value );
+ }
+ }
+ return locale;
+}
+
} // Adaptor
} // Internal
typedef Dali::ImfManager::ImfEventSignalType ImfEventSignalType;
typedef Dali::ImfManager::StatusSignalType ImfStatusSignalType;
typedef Dali::ImfManager::VoidSignalType ImfVoidSignalType;
+ typedef Dali::ImfManager::KeyboardTypeSignalType ImfKeyboardTypeSignalType;
public:
*/
void HideInputPanel();
+ /**
+ * @copydoc Dali::ImfManager::GetKeyboardType()
+ */
+ Dali::ImfManager::KeyboardType GetKeyboardType();
+
+ /**
+ * @copydoc Dali::ImfManager::GetInputPanelLocale()
+ */
+ std::string GetInputPanelLocale();
+
public: // Signals
/**
*/
ImfVoidSignalType& LanguageChangedSignal() { return mKeyboardLanguageChangedSignal; }
+ /**
+ * @copydoc Dali::ImfManager::KeyboardTypeChangedSignal()
+ */
+ ImfKeyboardTypeSignalType& KeyboardTypeChangedSignal() { return mKeyboardTypeChangedSignal; }
protected:
std::vector<Dali::Integration::KeyEvent> mKeyEvents; ///< Stores key events to be sent from idle call-back.
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:
typedef Dali::ImfManager::ImfEventSignalType ImfEventSignalType;
typedef Dali::ImfManager::StatusSignalType ImfStatusSignalType;
typedef Dali::ImfManager::VoidSignalType ImfVoidSignalType;
+ typedef Dali::ImfManager::KeyboardTypeSignalType ImfKeyboardTypeSignalType;
public:
*/
void HideInputPanel();
+ /**
+ * @copydoc Dali::ImfManager::GetKeyboardType()
+ */
+ Dali::ImfManager::KeyboardType GetKeyboardType();
+
+ /**
+ * @copydoc Dali::ImfManager::GetInputPanelLocale()
+ */
+ std::string GetInputPanelLocale();
+
public: // Signals
/**
*/
ImfVoidSignalType& LanguageChangedSignal() { return mKeyboardLanguageChangedSignal; }
+ /**
+ * @copydoc Dali::ImfManager::KeyboardTypeChangedSignal()
+ */
+ ImfKeyboardTypeSignalType& KeyboardTypeChangedSignal() { return mKeyboardTypeChangedSignal; }
protected:
/**
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:
{
}
+Dali::ImfManager::KeyboardType ImfManager::GetKeyboardType()
+{
+ return Dali::ImfManager::KeyboardType::SOFTWARE_KEYBOARD;
+}
+
+std::string ImfManager::GetInputPanelLocale()
+{
+ return NULL;
+}
+
Dali::ImfManager::TextDirection ImfManager::GetTextDirection()
{
TextInputManager::SeatInfo& info = mTextInputManager.GetLastActiveSeat();
typedef Dali::ImfManager::ImfEventSignalType ImfEventSignalType;
typedef Dali::ImfManager::StatusSignalType ImfStatusSignalType;
typedef Dali::ImfManager::VoidSignalType ImfVoidSignalType;
+ typedef Dali::ImfManager::KeyboardTypeSignalType ImfKeyboardTypeSignalType;
public:
*/
void HideInputPanel();
+ /**
+ * @copydoc Dali::ImfManager::GetKeyboardType()
+ */
+ Dali::ImfManager::KeyboardType GetKeyboardType();
+
+ /**
+ * @copydoc Dali::ImfManager::GetInputPanelLocale()
+ */
+ std::string GetInputPanelLocale();
+
public: // Signals
/**
*/
ImfVoidSignalType& LanguageChangedSignal() { return mKeyboardLanguageChangedSignal; }
+ /**
+ * @copydoc Dali::ImfManager::KeyboardTypeChangedSignal()
+ */
+ ImfKeyboardTypeSignalType& KeyboardTypeChangedSignal() { return mKeyboardTypeChangedSignal; }
/**
* @brief Called when an IMF Pre-Edit change event is received.
private:
- ImfManagerSignalType mActivatedSignal;
- ImfEventSignalType mEventSignal;
- ImfStatusSignalType mKeyboardStatusSignal;
- ImfVoidSignalType mKeyboardResizeSignal;
- ImfVoidSignalType mKeyboardLanguageChangedSignal;
+ ImfManagerSignalType mActivatedSignal;
+ ImfEventSignalType mEventSignal;
+ ImfStatusSignalType mKeyboardStatusSignal;
+ ImfVoidSignalType mKeyboardResizeSignal;
+ ImfVoidSignalType mKeyboardLanguageChangedSignal;
+ ImfKeyboardTypeSignalType mKeyboardTypeChangedSignal;
// Undefined
ImfManager( const ImfManager& );
}
}
+Dali::ImfManager::KeyboardType ImfManager::GetKeyboardType()
+{
+ return Dali::ImfManager::KeyboardType::SOFTWARE_KEYBOARD;
+}
+
+std::string ImfManager::GetInputPanelLocale()
+{
+ DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::GetInputPanelLocale\n" );
+
+ std::string locale = "";
+
+ if( mIMFContext )
+ {
+ char* value = NULL;
+ ecore_imf_context_input_panel_language_locale_get( mIMFContext, &value );
+
+ if( value )
+ {
+ std::string valueCopy( value );
+ locale = valueCopy;
+
+ // The locale string retrieved must be freed with free().
+ free( value );
+ }
+ }
+ return locale;
+}
+
} // Adaptor
} // Internal
configure_flags="--enable-wayland"
%endif
+# Use this conditional when Tizen version is 4.x or greater
+%if 0%{?tizen_version_major} >= 4
+CXXFLAGS+=" -DOVER_TIZEN_VERSION_4"
+%endif
+
%if 0%{?tizen_2_2_compatibility}
CFLAGS+=" -DTIZEN_SDK_2_2_COMPATIBILITY"
CXXFLAGS+=" -DTIZEN_SDK_2_2_COMPATIBILITY"