# Process this file with autoconf to produce a configure script
#AC_INIT(scim, 1.4.7, suzhe@tsinghua.org.cn)
-AC_INIT(isf, 2.4.6319, isf@samsung.com)
+AC_INIT(isf, 2.4.6322, isf@samsung.com)
AC_CONFIG_SRCDIR([ism/src/scim.h])
m4_pattern_allow([^AS_])
# ISF version
ISF_MAJOR_VERSION=2
ISF_MINOR_VERSION=4
-ISF_MICRO_VERSION=6319
+ISF_MICRO_VERSION=6322
ISF_VERSION=$ISF_MAJOR_VERSION.$ISF_MINOR_VERSION.$ISF_MICRO_VERSION
AC_SUBST(ISF_BUILD_SETTING_EFL)
AC_SUBST(ISF_BUILD_WITH_GCONF)
+ISF_BUILDING_DLL="-DISF_BUILDING_DLL"
+AC_SUBST(ISF_BUILDING_DLL)
+
# Output All necessary Paths.
SCIM_BINDIR="$prefix/bin"
SCIM_DATADIR="$datadir/scim"
-DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \
-DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \
-DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" \
- -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\"
+ -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\" \
+ @ISF_BUILDING_DLL@
if ISF_BUILD_EFL_IMMODULE
CONFIG_EFL_IMMODULE = libisf-imf-module.la
static FinalizeHandler _finalize_handler;
-ConfigPointer isf_imf_context_get_config (void)
+EAPI ConfigPointer isf_imf_context_get_config (void)
{
return _config;
}
-EcoreIMFContextISF *
+EAPI EcoreIMFContextISF *
get_focused_ic ()
{
return _focused_ic;
}
-int
+EAPI int
get_panel_client_id (void)
{
return _panel_client_id;
}
-Eina_Bool
+EAPI Eina_Bool
get_desktop_mode ()
{
return desktop_mode;
return ECORE_CALLBACK_PASS_ON;
}
-int
+EAPI int
register_key_handler ()
{
SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
return EXIT_SUCCESS;
}
-int
+EAPI int
unregister_key_handler ()
{
SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
return ret;
}
-Eina_Bool
+EAPI Eina_Bool
caps_mode_check (Ecore_IMF_Context *ctx, Eina_Bool force, Eina_Bool noti)
{
Eina_Bool uppercase;
struct _EcoreIMFContextISF *next;
};
-int register_key_handler ();
-int unregister_key_handler ();
-
-int get_panel_client_id ();
-Eina_Bool get_desktop_mode ();
-Eina_Bool caps_mode_check (Ecore_IMF_Context *ctx, Eina_Bool force, Eina_Bool noti);
-
-EcoreIMFContextISF *get_focused_ic ();
-
-void context_scim_imdata_get (Ecore_IMF_Context *ctx, void* data, int* length);
-
-void isf_imf_context_add (Ecore_IMF_Context *ctx);
-void isf_imf_context_del (Ecore_IMF_Context *ctx);
-void isf_imf_context_client_window_set (Ecore_IMF_Context *ctx, void *window);
-void isf_imf_context_client_canvas_set (Ecore_IMF_Context *ctx, void *window);
-void isf_imf_context_focus_in (Ecore_IMF_Context *ctx);
-void isf_imf_context_focus_out (Ecore_IMF_Context *ctx);
-void isf_imf_context_reset (Ecore_IMF_Context *ctx);
-void isf_imf_context_cursor_position_set (Ecore_IMF_Context *ctx, int cursor_pos);
-void isf_imf_context_cursor_location_set (Ecore_IMF_Context *ctx, int x, int y, int w, int h);
-void isf_imf_context_input_mode_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode);
-void isf_imf_context_preedit_string_get (Ecore_IMF_Context *ctx, char** str, int *cursor_pos);
-void isf_imf_context_preedit_string_with_attributes_get (Ecore_IMF_Context *ctx, char** str, Eina_List **attrs, int *cursor_pos);
-void isf_imf_context_use_preedit_set (Ecore_IMF_Context* ctx, Eina_Bool use_preedit);
-Eina_Bool isf_imf_context_filter_event (Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event);
-void isf_imf_context_prediction_allow_set (Ecore_IMF_Context* ctx, Eina_Bool prediction);
-void isf_imf_context_autocapital_type_set (Ecore_IMF_Context* ctx, Ecore_IMF_Autocapital_Type autocapital_type);
-void isf_imf_context_imdata_set (Ecore_IMF_Context* ctx, const void *data, int len);
-void isf_imf_context_imdata_get (Ecore_IMF_Context* ctx, void *data, int *len);
-
-EcoreIMFContextISF* isf_imf_context_new (void);
-void isf_imf_context_shutdown (void);
+EAPI int register_key_handler ();
+EAPI int unregister_key_handler ();
+
+EAPI int get_panel_client_id ();
+EAPI Eina_Bool get_desktop_mode ();
+EAPI Eina_Bool caps_mode_check (Ecore_IMF_Context *ctx, Eina_Bool force, Eina_Bool noti);
+
+EAPI EcoreIMFContextISF *get_focused_ic ();
+
+EAPI void context_scim_imdata_get (Ecore_IMF_Context *ctx, void* data, int* length);
+
+EAPI void isf_imf_context_add (Ecore_IMF_Context *ctx);
+EAPI void isf_imf_context_del (Ecore_IMF_Context *ctx);
+EAPI void isf_imf_context_client_window_set (Ecore_IMF_Context *ctx, void *window);
+EAPI void isf_imf_context_client_canvas_set (Ecore_IMF_Context *ctx, void *window);
+EAPI void isf_imf_context_focus_in (Ecore_IMF_Context *ctx);
+EAPI void isf_imf_context_focus_out (Ecore_IMF_Context *ctx);
+EAPI void isf_imf_context_reset (Ecore_IMF_Context *ctx);
+EAPI void isf_imf_context_cursor_position_set (Ecore_IMF_Context *ctx, int cursor_pos);
+EAPI void isf_imf_context_cursor_location_set (Ecore_IMF_Context *ctx, int x, int y, int w, int h);
+EAPI void isf_imf_context_input_mode_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode);
+EAPI void isf_imf_context_preedit_string_get (Ecore_IMF_Context *ctx, char** str, int *cursor_pos);
+EAPI void isf_imf_context_preedit_string_with_attributes_get (Ecore_IMF_Context *ctx, char** str, Eina_List **attrs, int *cursor_pos);
+EAPI void isf_imf_context_use_preedit_set (Ecore_IMF_Context* ctx, Eina_Bool use_preedit);
+EAPI Eina_Bool isf_imf_context_filter_event (Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event);
+EAPI void isf_imf_context_prediction_allow_set (Ecore_IMF_Context* ctx, Eina_Bool prediction);
+EAPI void isf_imf_context_autocapital_type_set (Ecore_IMF_Context* ctx, Ecore_IMF_Autocapital_Type autocapital_type);
+EAPI void isf_imf_context_imdata_set (Ecore_IMF_Context* ctx, const void *data, int len);
+EAPI void isf_imf_context_imdata_get (Ecore_IMF_Context* ctx, void *data, int *len);
+
+EAPI EcoreIMFContextISF* isf_imf_context_new (void);
+EAPI void isf_imf_context_shutdown (void);
#endif /* __ISF_IMF_CONTEXT_H */
}
}
-EAPI void _isf_imf_control_finalize (void)
+void _isf_imf_control_finalize (void)
{
IMFCONTROLDBG ("%s ...\n", __FUNCTION__);
}
}
-EAPI int _isf_imf_context_input_panel_show (int client_id, int context, void *data, int length, bool &input_panel_show)
+int _isf_imf_context_input_panel_show (int client_id, int context, void *data, int length, bool &input_panel_show)
{
int temp = 0;
connect_panel ();
return 0;
}
-EAPI int _isf_imf_context_input_panel_hide (int client_id, int context)
+int _isf_imf_context_input_panel_hide (int client_id, int context)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_control_panel_show (void)
+int _isf_imf_context_control_panel_show (void)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_control_panel_hide (void)
+int _isf_imf_context_control_panel_hide (void)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_input_panel_language_set (Ecore_IMF_Input_Panel_Lang lang)
+int _isf_imf_context_input_panel_language_set (Ecore_IMF_Input_Panel_Lang lang)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_input_panel_language_locale_get (char **locale)
+int _isf_imf_context_input_panel_language_locale_get (char **locale)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_input_panel_imdata_set (const void *data, int len)
+int _isf_imf_context_input_panel_imdata_set (const void *data, int len)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_input_panel_imdata_get (void *data, int *len)
+int _isf_imf_context_input_panel_imdata_get (void *data, int *len)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_input_panel_geometry_get (int *x, int *y, int *w, int *h)
+int _isf_imf_context_input_panel_geometry_get (int *x, int *y, int *w, int *h)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_input_panel_return_key_type_set (Ecore_IMF_Input_Panel_Return_Key_Type type)
+int _isf_imf_context_input_panel_return_key_type_set (Ecore_IMF_Input_Panel_Return_Key_Type type)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_input_panel_return_key_type_get (Ecore_IMF_Input_Panel_Return_Key_Type &type)
+int _isf_imf_context_input_panel_return_key_type_get (Ecore_IMF_Input_Panel_Return_Key_Type &type)
{
int temp = 0;
connect_panel ();
return 0;
}
-EAPI int _isf_imf_context_input_panel_return_key_disabled_set (Eina_Bool disabled)
+int _isf_imf_context_input_panel_return_key_disabled_set (Eina_Bool disabled)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_input_panel_return_key_disabled_get (Eina_Bool &disabled)
+int _isf_imf_context_input_panel_return_key_disabled_get (Eina_Bool &disabled)
{
int temp = 0;
connect_panel ();
return 0;
}
-EAPI int _isf_imf_context_input_panel_layout_set (Ecore_IMF_Input_Panel_Layout layout)
+int _isf_imf_context_input_panel_layout_set (Ecore_IMF_Input_Panel_Layout layout)
{
int layout_temp = layout;
return 0;
}
-EAPI int _isf_imf_context_input_panel_layout_get (Ecore_IMF_Input_Panel_Layout *layout)
+int _isf_imf_context_input_panel_layout_get (Ecore_IMF_Input_Panel_Layout *layout)
{
int layout_temp;
return 0;
}
-EAPI int _isf_imf_context_input_panel_caps_mode_set (unsigned int mode)
+int _isf_imf_context_input_panel_caps_mode_set (unsigned int mode)
{
connect_panel ();
return 0;
}
-EAPI int _isf_imf_context_candidate_window_geometry_get (int *x, int *y, int *w, int *h)
+int _isf_imf_context_candidate_window_geometry_get (int *x, int *y, int *w, int *h)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_control_focus_in (void)
+int _isf_imf_context_control_focus_in (void)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_control_focus_out (void)
+int _isf_imf_context_control_focus_out (void)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_input_panel_send_will_show_ack (void)
+int _isf_imf_context_input_panel_send_will_show_ack (void)
{
connect_panel ();
_imcontrol_client.prepare ();
return 0;
}
-EAPI int _isf_imf_context_input_panel_send_will_hide_ack (void)
+int _isf_imf_context_input_panel_send_will_hide_ack (void)
{
connect_panel ();
_imcontrol_client.prepare ();
return ECORE_CALLBACK_PASS_ON;
}
-EAPI void input_panel_event_callback_call (Ecore_IMF_Input_Panel_Event type, int value)
+void input_panel_event_callback_call (Ecore_IMF_Input_Panel_Event type, int value)
{
_event_callback_call (type, value);
}
-EAPI Eina_Bool check_focus_out_by_lockscreen (Ecore_IMF_Context *ctx)
+Eina_Bool check_focus_out_by_lockscreen (Ecore_IMF_Context *ctx)
{
Ecore_X_Window focus_win = ecore_x_window_focus_get ();
Eina_Bool ret = EINA_FALSE;
return ret;
}
-EAPI void isf_imf_context_control_panel_show (Ecore_IMF_Context *ctx)
+void isf_imf_context_control_panel_show (Ecore_IMF_Context *ctx)
{
if (IfInitContext == false) {
_isf_imf_context_init ();
_isf_imf_context_control_panel_show ();
}
-EAPI void isf_imf_context_control_panel_hide (Ecore_IMF_Context *ctx)
+void isf_imf_context_control_panel_hide (Ecore_IMF_Context *ctx)
{
if (IfInitContext == false) {
_isf_imf_context_init ();
_isf_imf_context_control_panel_hide ();
}
-EAPI void isf_imf_input_panel_init (void)
+void isf_imf_input_panel_init (void)
{
if (_prop_change_handler) return;
LOGD ("The number of connected H/W keyboard : %d\n", hw_kbd_num);
}
-EAPI void isf_imf_input_panel_shutdown (void)
+void isf_imf_input_panel_shutdown (void)
{
if (_prop_change_handler) {
ecore_event_handler_del (_prop_change_handler);
_isf_imf_control_finalize ();
}
-EAPI void isf_imf_context_input_panel_show (Ecore_IMF_Context* ctx)
+void isf_imf_context_input_panel_show (Ecore_IMF_Context* ctx)
{
int length = -1;
void *packet = NULL;
LOGD ("===============================================================\n");
}
-EAPI void isf_imf_context_input_panel_hide (Ecore_IMF_Context *ctx)
+void isf_imf_context_input_panel_hide (Ecore_IMF_Context *ctx)
{
LOGD ("ctx : %p\n", ctx);
_input_panel_hide (ctx, EINA_FALSE);
}
-EAPI void isf_imf_context_input_panel_instant_hide (Ecore_IMF_Context *ctx)
+void isf_imf_context_input_panel_instant_hide (Ecore_IMF_Context *ctx)
{
if (get_desktop_mode ())
return;
_input_panel_hide (ctx, EINA_TRUE);
}
-EAPI void isf_imf_context_input_panel_language_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang language)
+void isf_imf_context_input_panel_language_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang language)
{
EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
_isf_imf_context_input_panel_language_set (language);
}
-EAPI Ecore_IMF_Input_Panel_Lang isf_imf_context_input_panel_language_get (Ecore_IMF_Context *ctx)
+Ecore_IMF_Input_Panel_Lang isf_imf_context_input_panel_language_get (Ecore_IMF_Context *ctx)
{
if (!IfInitContext)
_isf_imf_context_init ();
return iseContext.language;
}
-EAPI void isf_imf_context_input_panel_language_locale_get (Ecore_IMF_Context *ctx, char **locale)
+void isf_imf_context_input_panel_language_locale_get (Ecore_IMF_Context *ctx, char **locale)
{
if (!IfInitContext)
_isf_imf_context_init ();
_isf_imf_context_input_panel_language_locale_get (locale);
}
-EAPI void isf_imf_context_input_panel_caps_mode_set (Ecore_IMF_Context *ctx, unsigned int mode)
+void isf_imf_context_input_panel_caps_mode_set (Ecore_IMF_Context *ctx, unsigned int mode)
{
if (!IfInitContext)
_isf_imf_context_init ();
_isf_imf_context_input_panel_caps_mode_set (mode);
}
-EAPI void isf_imf_context_input_panel_caps_lock_mode_set (Ecore_IMF_Context *ctx, Eina_Bool mode)
+void isf_imf_context_input_panel_caps_lock_mode_set (Ecore_IMF_Context *ctx, Eina_Bool mode)
{
EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
* @param[in] data pointer of data to sets up to ISE
* @param[in] length length of data
*/
-EAPI void isf_imf_context_input_panel_imdata_set (Ecore_IMF_Context *ctx, const void* data, int length)
+void isf_imf_context_input_panel_imdata_set (Ecore_IMF_Context *ctx, const void* data, int length)
{
EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
* @param[out] data pointer of data to return
* @param[out] length length of data
*/
-EAPI void isf_imf_context_input_panel_imdata_get (Ecore_IMF_Context *ctx, void* data, int* length)
+void isf_imf_context_input_panel_imdata_get (Ecore_IMF_Context *ctx, void* data, int* length)
{
if (!IfInitContext)
_isf_imf_context_init ();
* @param[out] w the width of ISE window
* @param[out] h the height of ISE window
*/
-EAPI void isf_imf_context_input_panel_geometry_get (Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h)
+void isf_imf_context_input_panel_geometry_get (Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h)
{
if (!IfInitContext)
_isf_imf_context_init ();
* @param[in] ctx a #Ecore_IMF_Context
* @param[in] type the type of return key
*/
-EAPI void isf_imf_context_input_panel_return_key_type_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Return_Key_Type type)
+void isf_imf_context_input_panel_return_key_type_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Return_Key_Type type)
{
EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
*
* @return the type of return key.
*/
-EAPI Ecore_IMF_Input_Panel_Return_Key_Type isf_imf_context_input_panel_return_key_type_get (Ecore_IMF_Context *ctx)
+Ecore_IMF_Input_Panel_Return_Key_Type isf_imf_context_input_panel_return_key_type_get (Ecore_IMF_Context *ctx)
{
EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
* @param[in] ctx a #Ecore_IMF_Context
* @param[in] disabled the state
*/
-EAPI void isf_imf_context_input_panel_return_key_disabled_set (Ecore_IMF_Context *ctx, Eina_Bool disabled)
+void isf_imf_context_input_panel_return_key_disabled_set (Ecore_IMF_Context *ctx, Eina_Bool disabled)
{
EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
*
* @return the disable state of return key.
*/
-EAPI Eina_Bool isf_imf_context_input_panel_return_key_disabled_get (Ecore_IMF_Context *ctx)
+Eina_Bool isf_imf_context_input_panel_return_key_disabled_get (Ecore_IMF_Context *ctx)
{
EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
* @param[in] ctx a #Ecore_IMF_Context
* @param[in] layout sets a layout ID to be shown. The layout ID will define by the configuration of selected ISE.
*/
-EAPI void
+void
isf_imf_context_input_panel_layout_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Layout layout)
{
EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
*
* @return the layout of current ISE.
*/
-EAPI Ecore_IMF_Input_Panel_Layout isf_imf_context_input_panel_layout_get (Ecore_IMF_Context *ctx)
+Ecore_IMF_Input_Panel_Layout isf_imf_context_input_panel_layout_get (Ecore_IMF_Context *ctx)
{
Ecore_IMF_Input_Panel_Layout layout;
if (!IfInitContext)
*
* @return the state of current ISE.
*/
-EAPI Ecore_IMF_Input_Panel_State isf_imf_context_input_panel_state_get (Ecore_IMF_Context *ctx)
+Ecore_IMF_Input_Panel_State isf_imf_context_input_panel_state_get (Ecore_IMF_Context *ctx)
{
if (!IfInitContext)
_isf_imf_context_init ();
return input_panel_state;
}
-EAPI void isf_imf_context_input_panel_event_callback_clear (Ecore_IMF_Context *ctx)
+void isf_imf_context_input_panel_event_callback_clear (Ecore_IMF_Context *ctx)
{
ecore_imf_context_input_panel_event_callback_clear (ctx);
* @param[out] w the width of candidate window
* @param[out] h the height of candidate window
*/
-EAPI void isf_imf_context_candidate_window_geometry_get (Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h)
+void isf_imf_context_candidate_window_geometry_get (Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h)
{
if (!IfInitContext)
_isf_imf_context_init ();
*
* @param[in] ctx a #Ecore_IMF_Context
*/
-EAPI void isf_imf_context_control_focus_in (Ecore_IMF_Context *ctx)
+void isf_imf_context_control_focus_in (Ecore_IMF_Context *ctx)
{
if (IfInitContext == false) {
_isf_imf_context_init ();
*
* @param[in] ctx a #Ecore_IMF_Context
*/
-EAPI void isf_imf_context_control_focus_out (Ecore_IMF_Context *ctx)
+void isf_imf_context_control_focus_out (Ecore_IMF_Context *ctx)
{
if (IfInitContext == false) {
_isf_imf_context_init ();
_isf_imf_context_control_focus_out ();
}
-EAPI void isf_imf_context_input_panel_send_will_show_ack ()
+void isf_imf_context_input_panel_send_will_show_ack ()
{
if (IfInitContext == false) {
_isf_imf_context_init ();
_isf_imf_context_input_panel_send_will_show_ack ();
}
-EAPI void isf_imf_context_input_panel_send_will_hide_ack ()
+void isf_imf_context_input_panel_send_will_hide_ack ()
{
if (IfInitContext == false) {
_isf_imf_context_init ();
extern std::vector<uint32> _options;
extern std::vector<TOOLBAR_MODE_T> _modes;
-extern CommonLookupTable g_isf_candidate_table;
+extern EAPI CommonLookupTable g_isf_candidate_table;
/////////////////////////////////////////////////////////////////////////////
-DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \
-DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \
-DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" \
- -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\"
+ -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\" \
+ @ISF_BUILDING_DLL@
if SCIM_BUILD_GTK2_IMMODULE
CONFIG_GTK2_IMMODULE = im-scim.la
extern gboolean _ise_list_changed;
extern gboolean _setup_enable_changed;
-extern CommonLookupTable g_isf_candidate_table;
+extern EAPI CommonLookupTable g_isf_candidate_table;
/////////////////////////////////////////////////////////////////////////////
// Declaration of internal data types.
-DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \
-DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \
-DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \
- -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\"
+ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \
+ @ISF_BUILDING_DLL@
moduledir = @SCIM_MODULE_PATH@/$(SCIM_BINARY_VERSION)/Config
using namespace scim;
extern "C" {
- void scim_module_init (void)
+ EAPI void scim_module_init (void)
{
SCIM_DEBUG_CONFIG(1) << "Initializing Simple Config module...\n";
}
- void scim_module_exit (void)
+ EAPI void scim_module_exit (void)
{
SCIM_DEBUG_CONFIG(1) << "Exiting Simple Config module...\n";
}
- void scim_config_module_init ()
+ EAPI void scim_config_module_init ()
{
SCIM_DEBUG_CONFIG(1) << "Initializing Simple Config module (more)...\n";
}
- ConfigPointer scim_config_module_create_config ()
+ EAPI ConfigPointer scim_config_module_create_config ()
{
SCIM_DEBUG_CONFIG(1) << "Creating a Simple Config instance...\n";
return new SimpleConfig ();
const int SCIM_MAX_CONFIG_LINE_LENGTH = 16384;
-class SimpleConfig : public ConfigBase
+class EAPI SimpleConfig : public ConfigBase
{
#if SCIM_USE_STL_EXT_HASH_MAP
typedef __gnu_cxx::hash_map <String, String, scim_hash_string> KeyValueRepository;
using namespace scim;
extern "C" {
- void scim_module_init (void)
+ EAPI void scim_module_init (void)
{
SCIM_DEBUG_CONFIG(1) << "Initializing Socket Config module...\n";
}
- void scim_module_exit (void)
+ EAPI void scim_module_exit (void)
{
SCIM_DEBUG_CONFIG(1) << "Exiting Socket Config module...\n";
}
- void scim_config_module_init ()
+ EAPI void scim_config_module_init ()
{
SCIM_DEBUG_CONFIG(1) << "Initializing Socket Config module (more)...\n";
}
- ConfigPointer scim_config_module_create_config ()
+ EAPI ConfigPointer scim_config_module_create_config ()
{
SCIM_DEBUG_CONFIG(1) << "Creating a Socket Config instance...\n";
return new SocketConfig ();
namespace scim {
-class SocketConfig : public ConfigBase
+class EAPI SocketConfig : public ConfigBase
{
String m_socket_address;
int m_socket_timeout;
-DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \
-DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \
-DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \
- -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\"
+ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" \
+ @ISF_BUILDING_DLL@
if SCIM_BUILD_FILTER_SCTC
CONFIG_FILTER_SCTC = sctc.la
//Module Interface
extern "C" {
- void scim_module_init (void)
+ EAPI void scim_module_init (void)
{
//Initialize encoding information.
__sc_encodings.push_back ("GB2312");
__tc_encodings.push_back ("EUC-TW");
}
- void scim_module_exit (void)
+ EAPI void scim_module_exit (void)
{
}
- unsigned int scim_filter_module_init (const ConfigPointer &config)
+ EAPI unsigned int scim_filter_module_init (const ConfigPointer &config)
{
return 1;
}
- FilterFactoryPointer scim_filter_module_create_filter (unsigned int index)
+ EAPI FilterFactoryPointer scim_filter_module_create_filter (unsigned int index)
{
if (index == 0)
return new SCTCFilterFactory ();
return FilterFactoryPointer (0);
}
- bool scim_filter_module_get_filter_info (unsigned int index, FilterInfo &info)
+ EAPI bool scim_filter_module_get_filter_info (unsigned int index, FilterInfo &info)
{
if (index == 0) {
info = __filter_info;
SCTC_MODE_FORCE_TC_TO_SC
};
-class SCTCFilterFactory : public FilterFactoryBase
+class EAPI SCTCFilterFactory : public FilterFactoryBase
{
bool m_sc_ok;
String m_sc_encoding;
virtual IMEngineInstancePointer create_instance (const String& encoding, int id = -1);
};
-class SCTCFilterInstance : public FilterInstanceBase
+class EAPI SCTCFilterInstance : public FilterInstanceBase
{
SCTCFilterFactory *m_factory;
-DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \
-DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \
-DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \
- -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\"
+ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \
+ @ISF_BUILDING_DLL@
if SCIM_BUILD_FRONTEND_X11
CONFIG_FRONTEND_X11_MODULE = x11.la
//Module Interface
extern "C" {
- void scim_module_init (void)
+ EAPI void scim_module_init (void)
{
SCIM_DEBUG_FRONTEND(1) << "Initializing Socket FrontEnd module...\n";
}
- void scim_module_exit (void)
+ EAPI void scim_module_exit (void)
{
SCIM_DEBUG_FRONTEND(1) << "Exiting Socket FrontEnd module...\n";
_scim_frontend.reset ();
}
- void scim_frontend_module_init (const BackEndPointer &backend,
+ EAPI void scim_frontend_module_init (const BackEndPointer &backend,
const ConfigPointer &config,
int argc,
char **argv)
}
}
- void scim_frontend_module_run (void)
+ EAPI void scim_frontend_module_run (void)
{
struct tms tiks_buf;
clock_t start = times (&tiks_buf);
using namespace scim;
-class SocketFrontEnd : public FrontEndBase
+class EAPI SocketFrontEnd : public FrontEndBase
{
enum ClientType {
UNKNOWN_CLIENT,
//Module Interface
extern "C" {
- void scim_module_init (void)
+ EAPI void scim_module_init (void)
{
SCIM_DEBUG_FRONTEND(1) << "Initializing X11 FrontEnd module...\n";
}
- void scim_module_exit (void)
+ EAPI void scim_module_exit (void)
{
SCIM_DEBUG_FRONTEND(1) << "Exiting X11 FrontEnd module...\n";
_scim_frontend.reset ();
}
- void scim_frontend_module_init (const BackEndPointer &backend,
+ EAPI void scim_frontend_module_init (const BackEndPointer &backend,
const ConfigPointer &config,
int argc,
char **argv)
}
}
- void scim_frontend_module_run (void)
+ EAPI void scim_frontend_module_run (void)
{
if (!_scim_frontend.null ()) {
SCIM_DEBUG_FRONTEND(1) << "Starting X11 FrontEnd module...\n";
using namespace scim;
-class X11FrontEnd : public FrontEndBase
+class EAPI X11FrontEnd : public FrontEndBase
{
// first = UUID.
// second= siid.
-DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \
-DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \
-DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \
- -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\"
+ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" \
+ @ISF_BUILDING_DLL@
if SCIM_BUILD_IMENGINE_SOCKET
CONFIG_IMENGINE_SOCKET_MODULE = socket.la
static std::map<String, ISEINFO> ise_info_repository;
extern "C" {
- void scim_module_init (void)
+ EAPI void scim_module_init (void)
{
if (!global)
global = new SocketIMEngineGlobal;
}
- void scim_module_exit (void)
+ EAPI void scim_module_exit (void)
{
if (global) {
delete global;
}
}
- unsigned int scim_imengine_module_init (const ConfigPointer &config)
+ EAPI unsigned int scim_imengine_module_init (const ConfigPointer &config)
{
if (global)
return global->number_of_factories ();
return 0;
}
- IMEngineFactoryPointer scim_imengine_module_create_factory (unsigned int index)
+ EAPI IMEngineFactoryPointer scim_imengine_module_create_factory (unsigned int index)
{
if (!global)
return 0;
class SocketFactory;
-class SocketFactory : public IMEngineFactoryBase
+class EAPI SocketFactory : public IMEngineFactoryBase
{
WideString m_name;
int create_peer_instance (const String &encoding);
};
-class SocketInstance : public IMEngineInstanceBase
+class EAPI SocketInstance : public IMEngineInstanceBase
{
SocketFactory *m_factory;
int m_peer_id;
-DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \
-DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \
-DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \
- -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\"
+ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \
+ @ISF_BUILDING_DLL@
noinst_HEADERS = ltdl.h \
scim_utility.h \
isf_control.h \
isf_imcontrol_client.h \
- ise_context.h
+ ise_context.h \
+ scim_visibility.h
noinst_LTLIBRARIES = libltdlc.la
using namespace scim;
-int isf_control_set_active_ise_by_uuid (const char *uuid)
+EAPI int isf_control_set_active_ise_by_uuid (const char *uuid)
{
if (uuid == NULL)
return -1;
return 0;
}
-int isf_control_get_active_ise (char **uuid)
+EAPI int isf_control_get_active_ise (char **uuid)
{
if (uuid == NULL)
return -1;
return strUuid.length ();
}
-int isf_control_get_ise_list (char ***uuid_list)
+EAPI int isf_control_get_ise_list (char ***uuid_list)
{
if (uuid_list == NULL)
return -1;
return count;
}
-int isf_control_get_ise_info (const char *uuid, char **name, char **language, ISE_TYPE_T *type, int *option)
+EAPI int isf_control_get_ise_info (const char *uuid, char **name, char **language, ISE_TYPE_T *type, int *option)
{
if (uuid == NULL || name == NULL || language == NULL)
return -1;
return 0;
}
-int isf_control_set_active_ise_to_default (void)
+EAPI int isf_control_set_active_ise_to_default (void)
{
IMControlClient imcontrol_client;
imcontrol_client.open_connection ();
return 0;
}
-int isf_control_reset_ise_option (void)
+EAPI int isf_control_reset_ise_option (void)
{
IMControlClient imcontrol_client;
imcontrol_client.open_connection ();
SOFTWARE_KEYBOARD_ISE /* Software keyboard ISE */
} ISE_TYPE_T;
-
/////////////////////////////////////////////////////////////////////////////
// Declaration of global functions.
/////////////////////////////////////////////////////////////////////////////
*
* @return 0 if successfully, otherwise return -1;
*/
-int isf_control_set_active_ise_by_uuid (const char *uuid);
+EAPI int isf_control_set_active_ise_by_uuid (const char *uuid);
/**
* @brief Get active ISE's UUID.
*
* @return the length of UUID if successfully, otherwise return -1;
*/
-int isf_control_get_active_ise (char **uuid);
+EAPI int isf_control_get_active_ise (char **uuid);
/**
* @brief Get the list of all ISEs' UUID.
*
* @return the count of UUID list if successfully, otherwise return -1;
*/
-int isf_control_get_ise_list (char ***uuid_list);
+EAPI int isf_control_get_ise_list (char ***uuid_list);
/**
* @brief Get ISE's information according to ISE's UUID.
*
* @return 0 if successfully, otherwise return -1;
*/
-int isf_control_get_ise_info (const char *uuid, char **name, char **language, ISE_TYPE_T *type, int *option);
+EAPI int isf_control_get_ise_info (const char *uuid, char **name, char **language, ISE_TYPE_T *type, int *option);
/**
* @brief Set active ISE to default ISE.
*
* @return 0 if successfully, otherwise return -1;
*/
-int isf_control_set_active_ise_to_default (void);
+EAPI int isf_control_set_active_ise_to_default (void);
/**
* @brief Reset all ISEs' options.
*
* @return 0 if successfully, otherwise return -1;
*/
-int isf_control_reset_ise_option (void);
+EAPI int isf_control_reset_ise_option (void);
#ifdef __cplusplus
}
typedef Slot1<void, int> IMControlClientSlotVoid;
-class IMControlClient
+class EAPI IMControlClient
{
class IMControlClientImpl;
IMControlClientImpl *m_impl;
*
* @return normalized language name.
*/
-String isf_get_normalized_language (String src_str)
+EAPI String isf_get_normalized_language (String src_str)
{
std::vector<String> str_list, dst_list;
scim_split_string_list (str_list, src_str);
return dst_str;
}
-void isf_get_ise_info_from_string (const char *str, ISEINFO &info)
+EAPI void isf_get_ise_info_from_string (const char *str, ISEINFO &info)
{
if (str == NULL || strlen (str) == 0)
return;
free (buf);
}
-String isf_combine_ise_info_string (String name, String uuid, String module, String language,
+EAPI String isf_combine_ise_info_string (String name, String uuid, String module, String language,
String icon, String mode, String option, String locales)
{
String line = name + String (":") + uuid + String (":") + module + String (":") + language + String (":") +
return line;
}
-bool isf_read_ise_info_list (const char *filename, std::vector<ISEINFO> &info_list)
+EAPI bool isf_read_ise_info_list (const char *filename, std::vector<ISEINFO> &info_list)
{
info_list.clear ();
FILE *engine_list_file = fopen (filename, "r");
return true;
}
-bool isf_write_ise_info_list (const char *filename, std::vector<ISEINFO> &info_list)
+EAPI bool isf_write_ise_info_list (const char *filename, std::vector<ISEINFO> &info_list)
{
if (info_list.size () <= 0)
return false;
}
}
-bool isf_add_keyboard_info_to_file (const char *filename, const char *module_name, const ConfigPointer &config)
+EAPI bool isf_add_keyboard_info_to_file (const char *filename, const char *module_name, const ConfigPointer &config)
{
std::vector<ISEINFO> info_list;
std::vector<ISEINFO>::iterator iter;
return isf_write_ise_info_list (filename, info_list);
}
-bool isf_add_helper_info_to_file (const char *filename, const char *module_name)
+EAPI bool isf_add_helper_info_to_file (const char *filename, const char *module_name)
{
std::vector<ISEINFO> info_list;
std::vector<ISEINFO>::iterator iter;
return isf_write_ise_info_list (filename, info_list);
}
-void isf_remove_ise_info_from_file (const char *filename, const char *module_name)
+EAPI void isf_remove_ise_info_from_file (const char *filename, const char *module_name)
{
std::vector<ISEINFO> info_list;
std::vector<ISEINFO>::iterator iter;
isf_write_ise_info_list (filename, info_list);
}
-void isf_update_ise_info_to_file (const char *filename, const ConfigPointer &config)
+EAPI void isf_update_ise_info_to_file (const char *filename, const ConfigPointer &config)
{
if (filename == NULL)
return;
String locales;
} ISEINFO;
-String isf_get_normalized_language (String src_str);
-String isf_combine_ise_info_string (String name, String uuid, String module, String language,
+EAPI String isf_get_normalized_language (String src_str);
+EAPI String isf_combine_ise_info_string (String name, String uuid, String module, String language,
String icon, String mode, String option, String locales);
-void isf_get_ise_info_from_string (const char *str, ISEINFO &info);
-bool isf_read_ise_info_list (const char *filename, std::vector<ISEINFO> &info_list);
-bool isf_write_ise_info_list (const char *filename, std::vector<ISEINFO> &info_list);
-bool isf_add_keyboard_info_to_file (const char *filename, const char *module_name, const ConfigPointer &config);
-bool isf_add_helper_info_to_file (const char *filename, const char *module_name);
-void isf_remove_ise_info_from_file (const char *filename, const char *module_name);
-void isf_update_ise_info_to_file (const char *filename, const ConfigPointer &config);
+EAPI void isf_get_ise_info_from_string (const char *str, ISEINFO &info);
+EAPI bool isf_read_ise_info_list (const char *filename, std::vector<ISEINFO> &info_list);
+EAPI bool isf_write_ise_info_list (const char *filename, std::vector<ISEINFO> &info_list);
+EAPI bool isf_add_keyboard_info_to_file (const char *filename, const char *module_name, const ConfigPointer &config);
+EAPI bool isf_add_helper_info_to_file (const char *filename, const char *module_name);
+EAPI void isf_remove_ise_info_from_file (const char *filename, const char *module_name);
+EAPI void isf_update_ise_info_to_file (const char *filename, const ConfigPointer &config);
#endif /* __ISF_QUERY_UTILITY_H */
*/
/* Define the macros */
+#define Uses_SCIM_VISIBILITY
#define Uses_SCIM_TYPES
#define Uses_SCIM_UTILITY
#define Uses_SCIM_GLOBAL_CONFIG
#endif
/* Include SCIM Headers */
+#ifdef Uses_SCIM_VISIBILITY
+ #include <scim_visibility.h>
+#endif
+
#ifdef Uses_SCIM_TYPES
#include <scim_types.h>
#endif
* You may use SCIM_RGB_COLOR_RED, SCIM_RGB_COLOR_GREEN and SCIM_RGB_COLOR_BLUE to extract
* the RGB color later.
*/
-class Attribute
+class EAPI Attribute
{
unsigned int m_start;
unsigned int m_length;
* scim::BackEndBase and its derived classes must throw
* scim::BackEndError object when error.
*/
-class BackEndError: public Exception
+class EAPI BackEndError: public Exception
{
public:
BackEndError (const String& what_arg)
* Most developer should just use the default implementation
* scim::CommonBackEnd.
*/
-class BackEndBase : public ReferencedObject
+class EAPI BackEndBase : public ReferencedObject
{
class BackEndBaseImpl;
/**
* @brief The default implementation of scim::BackEndBase interface.
*/
-class CommonBackEnd : public BackEndBase
+class EAPI CommonBackEnd : public BackEndBase
{
class CommonBackEndImpl;
CommonBackEndImpl *m_impl;
/**
* @brief A simple IMEngine to deal with the Compose keys.
*/
-class ComposeKeyFactory : public IMEngineFactoryBase
+class EAPI ComposeKeyFactory : public IMEngineFactoryBase
{
public:
ComposeKeyFactory ();
virtual IMEngineInstancePointer create_instance (const String& encoding, int id = -1);
};
-class ComposeKeyInstance : public IMEngineInstanceBase
+class EAPI ComposeKeyInstance : public IMEngineInstanceBase
{
uint32 m_compose_buffer [8];
* scim::ConfigBase and its derived classes must throw
* scim::ConfigError object when error.
*/
-class ConfigError: public Exception
+class EAPI ConfigError: public Exception
{
public:
ConfigError (const String& what_arg)
* All of the SCIM objects which have configuration data should
* use this interface to store and load them.
*/
-class ConfigBase : public ReferencedObject
+class EAPI ConfigBase : public ReferencedObject
{
ConfigSignalVoid m_signal_reload;
* The read methods will just return false and the default value (if available).
* The write methods will do nothing.
*/
-class DummyConfig : public ConfigBase
+class EAPI DummyConfig : public ConfigBase
{
public:
return ConfigPointer ();
}
-int scim_get_config_module_list (std::vector <String>& mod_list)
+EAPI int scim_get_config_module_list (std::vector <String>& mod_list)
{
return scim_get_module_list (mod_list, "Config");
}
* This is a wrapper of scim::Module class, which is specially
* for manipulating the config modules.
*/
-class ConfigModule
+class EAPI ConfigModule
{
Module m_module;
* @param mod_list - the result list will be stored here.
* @return the number of the modules, equal to mod_list.size ().
*/
-int scim_get_config_module_list (std::vector <String>& mod_list);
+EAPI int scim_get_config_module_list (std::vector <String>& mod_list);
/** @} */
* from a signal's connect() method.
*/
-class Node : public ReferencedObject
+class EAPI Node : public ReferencedObject
{
Pointer <Slot> slot_;
* a signal connection.
*/
-class Connection
+class EAPI Connection
{
mutable Pointer<Node> node_;
/**
* @brief The class to filter and redirect the debug messages.
*/
-class DebugOutput
+class EAPI DebugOutput
{
private:
static uint32 current_verbose;
return evt;
}
-bool
+EAPI bool
scim_key_to_string (String &str, const KeyEvent & key)
{
str = key.get_key_string ();
return str.length () != 0;
}
-bool
+EAPI bool
scim_string_to_key (KeyEvent &key, const String & str)
{
std::vector <String> list;
return key.code != 0;
}
-bool
+EAPI bool
scim_key_list_to_string (String &str, const std::vector<KeyEvent> & keylist)
{
std::vector<String> strlist;
return str.length () != 0;
}
-bool
+EAPI bool
scim_string_to_key_list (std::vector<KeyEvent> &keylist, const String &str)
{
std::vector <String> strlist;
}
-String
+EAPI String
scim_keyboard_layout_to_string (KeyboardLayout layout)
{
if (layout >= 0 && layout < SCIM_KEYBOARD_NUM_LAYOUTS)
return String (__scim_keyboard_layout_ids_by_code [0].name);
}
-KeyboardLayout
+EAPI KeyboardLayout
scim_string_to_keyboard_layout (const String &str)
{
if (str == __scim_keyboard_layout_ids_by_code [0].name) return SCIM_KEYBOARD_Unknown;
return SCIM_KEYBOARD_Unknown;
}
-String
+EAPI String
scim_keyboard_layout_get_display_name (KeyboardLayout layout)
{
if (layout >= 0 && layout < SCIM_KEYBOARD_NUM_LAYOUTS)
return String (_(__scim_keyboard_layout_names [0]));
}
-KeyboardLayout
+EAPI KeyboardLayout
scim_get_default_keyboard_layout ()
{
String layout_name (__scim_keyboard_layout_ids_by_code [0].name);
return scim_string_to_keyboard_layout (layout_name);
}
-void
+EAPI void
scim_set_default_keyboard_layout (KeyboardLayout layout)
{
String layout_name = scim_keyboard_layout_to_string (layout);
* @param key - the KeyEvent to be converted.
* @return true if success.
*/
-bool scim_key_to_string (String &str, const KeyEvent & key);
+EAPI bool scim_key_to_string (String &str, const KeyEvent & key);
/**
* @brief Convert a string to a KeyEvent.
* @param str - the string to be converted.
* @return true if success.
*/
-bool scim_string_to_key (KeyEvent &key, const String & str);
+EAPI bool scim_string_to_key (KeyEvent &key, const String & str);
/**
* @brief Convert a set of KeyEvents to a string.
* @param keylist - the keys to be converted.
* @return true if success.
*/
-bool scim_key_list_to_string (String &str, const KeyEventList & keylist);
+EAPI bool scim_key_list_to_string (String &str, const KeyEventList & keylist);
/**
* @brief Covnert a string to a set of KeyEvents.
* @param str - the string to be converted.
* @return true if success.
*/
-bool scim_string_to_key_list (KeyEventList &keylist, const String &str);
+EAPI bool scim_string_to_key_list (KeyEventList &keylist, const String &str);
/**
* @brief Convert a Keyboard Layout enum value to its String name.
* @param layout The Keyboard Layout type.
* @return The name of this layout.
*/
-String scim_keyboard_layout_to_string (KeyboardLayout layout);
+EAPI String scim_keyboard_layout_to_string (KeyboardLayout layout);
/**
* @brief Convert a String name to the corresponding Keyboard Layout value.
* @param str The Keyboard Layout name.
* @return The Keyboard Layout type corresponding to this name, or SCIM_KEYBOARD_Unknown.
*/
-KeyboardLayout scim_string_to_keyboard_layout (const String &str);
+EAPI KeyboardLayout scim_string_to_keyboard_layout (const String &str);
/**
* @brief Get the display name of a Keyboard Layout enum value.
* @param layout The Keyboard Layout type.
* @return The localized display name of this layout.
*/
-String scim_keyboard_layout_get_display_name (KeyboardLayout layout);
+EAPI String scim_keyboard_layout_get_display_name (KeyboardLayout layout);
/**
* @brief Get default Keyboard Layout setting.
* This function is mainly used by FrontEnds and Setup tools.
* IMEngines should not use it.
*/
-KeyboardLayout scim_get_default_keyboard_layout ();
+EAPI KeyboardLayout scim_get_default_keyboard_layout ();
/**
* @brief Change the default Keyboard Layout setting.
* This function is mainly used by FrontEnds and Setup tools.
* IMEngines should not use it.
*/
-void scim_set_default_keyboard_layout (KeyboardLayout layout);
+EAPI void scim_set_default_keyboard_layout (KeyboardLayout layout);
/**
* @brief The class to store a keyboard event.
* It also contains the Keyboard Layout information. IMEngines can
* map a KeyEvent to another layout by calling method #map_to_layout().
*/
-struct KeyEvent
+struct EAPI KeyEvent
{
uint32 code; /**< key code */
uint16 mask; /**< modifier keys' mask */
* All other exception classes in namespace scim
* should be derived from this class.
*/
-class Exception: public std::exception
+class EAPI Exception: public std::exception
{
String m_what;
public:
* scim::FilterFactoryBase, scim::FilterInstanceBase
* and their derived classes must throw scim::FilterError object when error.
*/
-class FilterError: public Exception
+class EAPI FilterError: public Exception
{
public:
FilterError (const String& what_arg)
* Because multiple objects of one FilterFactory class maybe used at the same time
* to filter several real IMEngineFactory objects.
*/
-class FilterFactoryBase : public IMEngineFactoryBase
+class EAPI FilterFactoryBase : public IMEngineFactoryBase
{
IMEngineFactoryPointer m_orig;
* All FilterInstance classes should derive from this base class,
* and some base methods should be override in the derived classes.
*/
-class FilterInstanceBase : public IMEngineInstanceBase
+class EAPI FilterInstanceBase : public IMEngineInstanceBase
{
class FilterInstanceBaseImpl;
* @{
*/
-class FilterManager
+class EAPI FilterManager
{
class FilterManagerImpl;
FilterManagerImpl *m_impl;
}
-int scim_get_filter_module_list (std::vector <String>& engine_list)
+EAPI int scim_get_filter_module_list (std::vector <String>& engine_list)
{
return scim_get_module_list (engine_list, "Filter");
}
* This is a wrapper of scim::Module class, which is specially
* for manipulating the Filter modules.
*/
-class FilterModule
+class EAPI FilterModule
{
Module m_module;
* @param mod_list - the result list will be stored here.
* @return the number of the modules, equal to mod_list.size ().
*/
-int scim_get_filter_module_list (std::vector <String> &mod_list);
+EAPI int scim_get_filter_module_list (std::vector <String> &mod_list);
/** @} */
* scim::FrontEndBase and its derived classes must throw
* scim::FrontEndError object when error.
*/
-class FrontEndError: public Exception
+class EAPI FrontEndError: public Exception
{
public:
FrontEndError (const String& what_arg)
* and the user applications. It forward the user requests to
* IMEngineFactory/IMEngineInstance objects, and handle the requests sent back.
*/
-class FrontEndBase : public ReferencedObject
+class EAPI FrontEndBase : public ReferencedObject
{
class FrontEndBaseImpl;
m_frontend_run ();
}
-int scim_get_frontend_module_list (std::vector <String>& mod_list)
+EAPI int scim_get_frontend_module_list (std::vector <String>& mod_list)
{
return scim_get_module_list (mod_list, "FrontEnd");
}
* This is a wrapper of scim::Module class, which is specially
* for manipulating the frontend modules.
*/
-class FrontEndModule
+class EAPI FrontEndModule
{
Module m_module;
* @param mod_list - the result list will be stored here.
* @return the number of the modules, equal to mod_list.size ().
*/
-int scim_get_frontend_module_list (std::vector <String>& mod_list);
+EAPI int scim_get_frontend_module_list (std::vector <String>& mod_list);
/** @} */
}
}
-String
+EAPI String
scim_global_config_read (const String &key, const String &defVal)
{
if (!__config_repository.initialized) __initialize_config ();
return defVal;
}
-int
+EAPI int
scim_global_config_read (const String &key, int defVal)
{
if (!__config_repository.initialized) __initialize_config ();
return defVal;
}
-bool
+EAPI bool
scim_global_config_read (const String &key, bool defVal)
{
if (!__config_repository.initialized) __initialize_config ();
return defVal;
}
-double
+EAPI double
scim_global_config_read (const String &key, double defVal)
{
if (!__config_repository.initialized) __initialize_config ();
return defVal;
}
-std::vector <String>
+EAPI std::vector <String>
scim_global_config_read (const String &key, const std::vector <String> &defVal)
{
if (!__config_repository.initialized) __initialize_config ();
return defVal;
}
-std::vector <int>
+EAPI std::vector <int>
scim_global_config_read (const String &key, const std::vector <int> &defVal)
{
if (!__config_repository.initialized) __initialize_config ();
return defVal;
}
-void
+EAPI void
scim_global_config_write (const String &key, const String &val)
{
if (!__config_repository.initialized) __initialize_config ();
}
}
-void
+EAPI void
scim_global_config_write (const String &key, int val)
{
if (!__config_repository.initialized) __initialize_config ();
}
}
-void
+EAPI void
scim_global_config_write (const String &key, bool val)
{
if (!__config_repository.initialized) __initialize_config ();
}
}
-void
+EAPI void
scim_global_config_write (const String &key, double val)
{
if (!__config_repository.initialized) __initialize_config ();
}
}
-void
+EAPI void
scim_global_config_write (const String &key, const std::vector <String> &val)
{
if (!__config_repository.initialized) __initialize_config ();
}
}
-void
+EAPI void
scim_global_config_write (const String &key, const std::vector <int> &val)
{
if (!__config_repository.initialized) __initialize_config ();
}
}
-void
+EAPI void
scim_global_config_reset (const String &key)
{
if (!__config_repository.initialized) __initialize_config ();
}
}
-bool
+EAPI bool
scim_global_config_flush ()
{
if (!__config_repository.initialized)
*
* @return the value string of the key.
*/
-String scim_global_config_read (const String &key, const String &defVal = String ());
+EAPI String scim_global_config_read (const String &key, const String &defVal = String ());
/**
* @brief Read an int value from the global configuration file.
*
* @return the value of the key.
*/
-int scim_global_config_read (const String &key, int defVal);
+EAPI int scim_global_config_read (const String &key, int defVal);
/**
* @brief Read a bool value from the global configuration file.
*
* @return the value of the key.
*/
-bool scim_global_config_read (const String &key, bool defVal);
+EAPI bool scim_global_config_read (const String &key, bool defVal);
/**
* @brief Read a double value from the global configuration file.
*
* @return the value of the key.
*/
-double scim_global_config_read (const String &key, double defVal);
+EAPI double scim_global_config_read (const String &key, double defVal);
/**
* @brief Read a string list from the global configuration file.
*
* @return the value of the key.
*/
-std::vector <String> scim_global_config_read (const String &key, const std::vector <String> &defVal);
+EAPI std::vector <String> scim_global_config_read (const String &key, const std::vector <String> &defVal);
/**
* @brief Read an int list from the global configuration file.
*
* @return the value of the key.
*/
-std::vector <int> scim_global_config_read (const String &key, const std::vector <int> &defVal);
+EAPI std::vector <int> scim_global_config_read (const String &key, const std::vector <int> &defVal);
/**
* @brief Write a string value into the user global config.
* @param key The key to be associated.
* @param val The string value to be written.
*/
-void scim_global_config_write (const String &key, const String &val);
+EAPI void scim_global_config_write (const String &key, const String &val);
/**
* @brief Write an int value into the user global config.
* @param key The key to be associated.
* @param val The int value to be written.
*/
-void scim_global_config_write (const String &key, int val);
+EAPI void scim_global_config_write (const String &key, int val);
/**
* @brief Write a bool value into the user global config.
* @param key The key to be associated.
* @param val The bool value to be written.
*/
-void scim_global_config_write (const String &key, bool val);
+EAPI void scim_global_config_write (const String &key, bool val);
/**
* @brief Write a double value into the user global config.
* @param key The key to be associated.
* @param val The double value to be written.
*/
-void scim_global_config_write (const String &key, double val);
+EAPI void scim_global_config_write (const String &key, double val);
/**
* @brief Write a string list into the user global config.
* @param key The key to be associated.
* @param val The string list to be written.
*/
-void scim_global_config_write (const String &key, const std::vector <String> &val);
+EAPI void scim_global_config_write (const String &key, const std::vector <String> &val);
/**
* @brief Write an int list into the user global config.
* @param key The key to be associated.
* @param val The int list to be written.
*/
-void scim_global_config_write (const String &key, const std::vector <int> &val);
+EAPI void scim_global_config_write (const String &key, const std::vector <int> &val);
/**
* @brief Reset the value associated to the specified key to its default value.
*
* @param key The key to be reset.
*/
-void scim_global_config_reset (const String &key);
+EAPI void scim_global_config_reset (const String &key);
/**
* @brief Flush the updated global config into user global config file.
* @return true if success.
*/
-bool scim_global_config_flush ();
+EAPI bool scim_global_config_flush ();
/** @} */
} // namespace scim
* The accessory classes to help develop and manage Client Helper objects.
* @{
*/
-class HelperError: public Exception
+class EAPI HelperError: public Exception
{
public:
HelperError (const String& what_arg)
* This class implements all Socket Transaction protocol between
* Helper object and Panel.
*/
-class HelperAgent
+class EAPI HelperAgent
{
class HelperAgentImpl;
HelperAgentImpl *m_impl;
* @brief This class is used to manage all helper objects.
*
*/
-class HelperManager
+class EAPI HelperManager
{
class HelperManagerImpl;
HelperManagerImpl *m_impl;
m_set_arg_info (argc, argv);
}
-int scim_get_helper_module_list (std::vector <String> &mod_list)
+EAPI int scim_get_helper_module_list (std::vector <String> &mod_list)
{
return scim_get_module_list (mod_list, "Helper");
}
*
* This class should not be used directly. HelperManager should be used instead.
*/
-class HelperModule
+class EAPI HelperModule
{
Module m_module;
* @param mod_list - the result list will be stored here.
* @return the number of the modules, equal to mod_list.size ().
*/
-int scim_get_helper_module_list (std::vector <String> &mod_list);
+EAPI int scim_get_helper_module_list (std::vector <String> &mod_list);
/** @} */
} // namespace scim
* If there are large amount of hotkeys to be matched, this class can provide
* very good performance.
*/
-class HotkeyMatcher
+class EAPI HotkeyMatcher
{
class HotkeyMatcherImpl;
/**
* @brief This class hold all Hotkeys for each IMEngines.
*/
-class IMEngineHotkeyMatcher
+class EAPI IMEngineHotkeyMatcher
{
class IMEngineHotkeyMatcherImpl;
/**
* @brief This class hold all FrontEnd specific Hotkeys, such as trigger keys, on/off keys, etc.
*/
-class FrontEndHotkeyMatcher
+class EAPI FrontEndHotkeyMatcher
{
class FrontEndHotkeyMatcherImpl;
/**
* @brief A class to convert strings between UCS-4 and local encodings.
*/
-class IConvert
+class EAPI IConvert
{
class IConvertImpl;
* scim::IMEngineBase and its derived classes must throw
* scim::IMEngineError object when error.
*/
-class IMEngineError: public Exception
+class EAPI IMEngineError: public Exception
{
public:
IMEngineError (const String& what_arg)
* Each input method should implement a class derived from scim::IMEngineFactoryBase,
* which takes charge of holding shared data, creating IMEngineInstances etc.
*/
-class IMEngineFactoryBase : public ReferencedObject
+class EAPI IMEngineFactoryBase : public ReferencedObject
{
class IMEngineFactoryBaseImpl;
* Each input method should implement a class derived from scim::IMEngineInstanceBase,
* which takes charge of recording Input Context status and processing user input events.
*/
-class IMEngineInstanceBase : public ReferencedObject
+class EAPI IMEngineInstanceBase : public ReferencedObject
{
class IMEngineInstanceBaseImpl;
/**
* @brief A trivial IMEngine that do nothing.
*/
-class DummyIMEngineFactory : public IMEngineFactoryBase
+class EAPI DummyIMEngineFactory : public IMEngineFactoryBase
{
public:
DummyIMEngineFactory ();
virtual IMEngineInstancePointer create_instance (const String& encoding, int id = -1);
};
-class DummyIMEngineInstance : public IMEngineInstanceBase
+class EAPI DummyIMEngineInstance : public IMEngineInstanceBase
{
public:
DummyIMEngineInstance (DummyIMEngineFactory *factory,
return m_module_name;
}
-int scim_get_imengine_module_list (std::vector <String>& engine_list)
+EAPI int scim_get_imengine_module_list (std::vector <String>& engine_list)
{
return scim_get_module_list (engine_list, "IMEngine");
}
* This is a wrapper of scim::Module class, which is specially
* for manipulating the IMEngine modules.
*/
-class IMEngineModule
+class EAPI IMEngineModule
{
Module m_module;
String m_module_name;
* @param mod_list - the result list will be stored here.
* @return the number of the modules, equal to mod_list.size ().
*/
-int scim_get_imengine_module_list (std::vector <String> &mod_list);
+EAPI int scim_get_imengine_module_list (std::vector <String> &mod_list);
/** @} */
* IMEngine should use its derivation class.
* This class is the interface that uses within FrontEnd class.
*/
-class LookupTable
+class EAPI LookupTable
{
class LookupTableImpl;
* This class implements the LookupTable interface in a common way.
*
*/
-class CommonLookupTable : public LookupTable
+class EAPI CommonLookupTable : public LookupTable
{
class CommonLookupTableImpl;
}
}
-int
+EAPI int
scim_get_module_list (std::vector <String>& mod_list, const String& type)
{
std::vector<String> paths;
* @{
*/
-class ModuleError: public Exception
+class EAPI ModuleError: public Exception
{
public:
ModuleError (const String& what_arg)
: Exception (String("scim::Module: ") + what_arg) { }
};
-class Module
+class EAPI Module
{
class ModuleImpl;
ModuleImpl *m_impl;
void * symbol (const String & sym) const;
};
-int scim_get_module_list (std::vector <String>& mod_list, const String& type = "");
+EAPI int scim_get_module_list (std::vector <String>& mod_list, const String& type = "");
/** @} */
* on the heap, you free the memory and destroy the object by
* calling unref(), not delete.
*/
-class ReferencedObject
+class EAPI ReferencedObject
{
template<typename T> friend class Pointer;
#include "scim_stl_map.h"
-scim::CommonLookupTable g_isf_candidate_table;
+EAPI scim::CommonLookupTable g_isf_candidate_table;
namespace scim {
* two signals are used to provide a thread lock to PanelAgent, so that PanelAgent
* can run correctly within a multi-threading Panel program.
*/
-class PanelAgent
+class EAPI PanelAgent
{
class PanelAgentImpl;
PanelAgentImpl *m_impl;
* FrontEnd may just register some slots to the corresponding signals to handle
* the events sent from Panel.
*/
-class PanelClient
+class EAPI PanelClient
{
class PanelClientImpl;
PanelClientImpl *m_impl;
* @{
*/
-class PanelError: public Exception
+class EAPI PanelError: public Exception
{
public:
PanelError (const String& what_arg)
*
* All strings should be encoded into UTF-8.
*/
-class Property
+class EAPI Property
{
String m_key;
String m_label;
//! @class SlotNode
//! @brief A node class for managing slots connected to scim::Signal's.
-class SlotNode : public Node
+class EAPI SlotNode : public Node
{
friend class Signal;
//! @class Signal
//! @brief Base class for the C++ signal interface.
-class Signal
+class EAPI Signal
{
Signal(const Signal&);
Signal& operator=(const Signal&);
//! @class Slot
//! @brief Base class for slots that can connect to scim::Signals.
-class Slot : public ReferencedObject
+class EAPI Slot : public ReferencedObject
{
Slot(const Slot&);
Slot& operator=(const Slot&);
* scim::Socket and its derived classes must throw
* scim::SocketError object when error.
*/
-class SocketError: public Exception
+class EAPI SocketError: public Exception
{
public:
SocketError (const String& what_arg)
* A unix or local socket address. It's a full path of a socket file.
* For example: local:/tmp/scim-socket-frontend
*/
-class SocketAddress
+class EAPI SocketAddress
{
class SocketAddressImpl;
SocketAddressImpl *m_impl;
* Only the object of its derived classes SocketServer and SocketClient
* can be created directly.
*/
-class Socket
+class EAPI Socket
{
class SocketImpl;
* Class SocketServer provides basic operations to create a Socket Server,
* such as create, run etc.
*/
-class SocketServer : public Socket
+class EAPI SocketServer : public Socket
{
class SocketServerImpl;
* Class SocketClient provides basic operations to create a Socket Client,
* such as connect, read, write, etc.
*/
-class SocketClient : public Socket
+class EAPI SocketClient : public Socket
{
bool m_connected;
*
* SocketFrontEnd should listen on this address by default.
*/
-String scim_get_default_socket_frontend_address ();
+EAPI String scim_get_default_socket_frontend_address ();
/**
* @brief Get the default socket address of SocketIMEngine
*
* SocketIMEngine should connect to this address by default.
*/
-String scim_get_default_socket_imengine_address ();
+EAPI String scim_get_default_socket_imengine_address ();
/**
* @brief Get the default socket address of SocketConfig
*
* SocketConfig should connect to this address by default.
*/
-String scim_get_default_socket_config_address ();
+EAPI String scim_get_default_socket_config_address ();
/**
* @brief Get the default socket address of the Panel running on localhost.
* The panel running on local host should listen on this address by default.
* All FrontEnds which need panel should connect to this address by default.
*/
-String scim_get_default_panel_socket_address (const String &display);
+EAPI String scim_get_default_panel_socket_address (const String &display);
/**
* @brief Get the default socket address of Helper Manager Server running on localhost.
*/
-String scim_get_default_helper_manager_socket_address ();
+EAPI String scim_get_default_helper_manager_socket_address ();
/**
* @brief Get the default socket timeout value.
*
* All socket connection should use this timeout value.
*/
-int scim_get_default_socket_timeout ();
+EAPI int scim_get_default_socket_timeout ();
/**
* @brief Helper function to open a connection to a socket server
* @return true if the connection was established successfully, otherwise
* return false, and the client should close the socket.
*/
-bool scim_socket_open_connection (uint32 &key,
+EAPI bool scim_socket_open_connection (uint32 &key,
const String &client_type,
const String &server_type,
const Socket &socket,
* @return The type of the accepted socket client, or an empty string if the
* connection could not be established.
*/
-String scim_socket_accept_connection (uint32 &key,
+EAPI String scim_socket_accept_connection (uint32 &key,
const String &server_types,
const String &client_types,
const Socket &socket,
* scim::Transaction and its related classes must throw
* scim::TransactionError object when error.
*/
-class TransactionError: public Exception
+class EAPI TransactionError: public Exception
{
public:
TransactionError (const String& what_arg)
* @brief This class is used to pack up many data and commands into one package
* and send them via socket.
*/
-class Transaction
+class EAPI Transaction
{
friend class TransactionReader;
/**
* @brief This class is used to read data from a transaction without changing it.
*/
-class TransactionReader
+class EAPI TransactionReader
{
class TransactionReaderImpl;
namespace scim {
-int
+EAPI int
utf8_mbtowc (ucs4_t *pwc, const unsigned char *src, int src_len)
{
if (!pwc)
return RET_ILSEQ;
}
-int
+EAPI int
utf8_wctomb (unsigned char *dest, ucs4_t wc, int dest_size)
{
if (!dest)
return count;
}
-ucs4_t
+EAPI ucs4_t
utf8_read_wchar (std::istream &is)
{
unsigned char utf8[6];
return 0;
}
-WideString
+EAPI WideString
utf8_read_wstring (std::istream &is, ucs4_t delim, bool rm_delim)
{
WideString str;
return str;
}
-std::ostream &
+EAPI std::ostream &
utf8_write_wchar (std::ostream &os, ucs4_t wc)
{
unsigned char utf8[6];
return os;
}
-std::ostream &
+EAPI std::ostream &
utf8_write_wstring (std::ostream &os, const WideString & wstr)
{
for (unsigned int i=0; i<wstr.size (); ++i)
return os;
}
-WideString
+EAPI WideString
utf8_mbstowcs (const String & str)
{
WideString wstr;
return wstr;
}
-WideString
+EAPI WideString
utf8_mbstowcs (const char *str, int len)
{
WideString wstr;
return wstr;
}
-String
+EAPI String
utf8_wcstombs (const WideString & wstr)
{
String str;
return str;
}
-String
+EAPI String
utf8_wcstombs (const ucs4_t *wstr, int len)
{
String str;
return str;
}
-String
+EAPI String
scim_validate_locale (const String& locale)
{
String good;
return good;
}
-String
+EAPI String
scim_get_locale_encoding (const String& locale)
{
String last = String (setlocale (LC_CTYPE, 0));
return encoding;
}
-int
+EAPI int
scim_get_locale_maxlen (const String& locale)
{
int maxlen;
return maxlen;
}
-int
+EAPI int
scim_split_string_list (std::vector<String>& vec, const String& str, char delim)
{
int count = 0;
return count;
}
-String
+EAPI String
scim_combine_string_list (const std::vector<String>& vec, char delim)
{
String result;
return result;
}
-bool
+EAPI bool
scim_if_wchar_ucs4_equal ()
{
if (sizeof (wchar_t) != sizeof (ucs4_t))
/**
* convert a half width unicode char to full width char
*/
-ucs4_t
+EAPI ucs4_t
scim_wchar_to_full_width (ucs4_t code)
{
int i=0;
/**
* convert a full width unicode char to half width char
*/
-ucs4_t
+EAPI ucs4_t
scim_wchar_to_half_width (ucs4_t code)
{
int i=0;
return code;
}
-String
+EAPI String
scim_get_home_dir ()
{
const char * home_dir = 0;
return String (home_dir);
}
-String
+EAPI String
scim_get_user_name ()
{
struct passwd *pw;
return String (uid_str);
}
-String
+EAPI String
scim_get_user_data_dir ()
{
String dir = scim_get_home_dir () + String ("/.scim");
return dir;
}
-String
+EAPI String
scim_get_current_locale ()
{
char *locale = setlocale (LC_CTYPE, 0);
return String ();
}
-String scim_get_current_language ()
+EAPI String scim_get_current_language ()
{
return scim_get_locale_language (scim_get_current_locale ());
}
-bool
+EAPI bool
scim_is_little_endian ()
{
short endian = 1;
return (*((char *)&endian) != 0);
}
-size_t
+EAPI size_t
scim_load_file (const String &filename, char **bufptr)
{
if (!filename.length ())
return size;
}
-bool
+EAPI bool
scim_make_dir (const String &dir)
{
std::vector <String> paths;
return NULL;
}
-String
+EAPI String
scim_get_language_name (const String &lang)
{
return String (_(scim_get_language_name_english (lang).c_str ()));
}
-String
+EAPI String
scim_get_language_name_english (const String &lang)
{
__Language *result = __find_language (lang);
return String ("Other");
}
-String
+EAPI String
scim_get_language_name_untranslated (const String &lang)
{
__Language *result = __find_language (lang);
return String (_("Other"));
}
-String
+EAPI String
scim_get_language_locales (const String &lang)
{
__Language *result = __find_language (lang);
return scim_combine_string_list (locales, ',');
}
-String
+EAPI String
scim_get_locale_language (const String &locale)
{
if (locale.length () == 0) return String ();
return scim_validate_language (str.substr (0, str.find ('@')));
}
-String
+EAPI String
scim_validate_language (const String &lang)
{
__Language *result = __find_language (lang);
return String ("~other");
}
-String
+EAPI String
scim_get_normalized_language (const String &lang)
{
__Language *result = __find_language (lang);
#define SCIM_LAUNCHER (SCIM_LIBEXECDIR "/scim-launcher")
#endif
-int scim_launch (bool daemon,
+EAPI int scim_launch (bool daemon,
const String &config,
const String &imengines,
const String &frontend,
#define SCIM_PANEL_PROGRAM (SCIM_BINDIR "/scim-panel-gtk")
#endif
-int scim_launch_panel (bool daemon,
+EAPI int scim_launch_panel (bool daemon,
const String &config,
const String &display,
char * const argv [])
return -1;
}
-void
+EAPI void
scim_usleep (unsigned int usec)
{
if (usec == 0) return;
#endif
}
-void scim_daemon ()
+EAPI void scim_daemon ()
{
#if HAVE_DAEMON
if (daemon (0, 0) == -1)
return;
}
-void gettime (clock_t clock_start, const char* str)
+EAPI void gettime (clock_t clock_start, const char* str)
{
#ifdef ISF_PROF
struct tms tiks_buf;
*
* @return number of chars in s actually converted.
*/
-int utf8_mbtowc (ucs4_t *pwc, const unsigned char *src, int src_len);
+EAPI int utf8_mbtowc (ucs4_t *pwc, const unsigned char *src, int src_len);
/**
* @brief Convert an ucs4 code to utf8 char sequence.
*
* @return the number of bytes actually written into dest.
*/
-int utf8_wctomb (unsigned char *dest, ucs4_t wc, int dest_size);
+EAPI int utf8_wctomb (unsigned char *dest, ucs4_t wc, int dest_size);
/**
* @brief Convert an utf8 string to an ucs4 string.
* @param str source utf8 string.
* @return the destination widestring.
*/
-WideString utf8_mbstowcs (const String & str);
+EAPI WideString utf8_mbstowcs (const String & str);
/**
* @brief Convert an utf8 string to an ucs4 string.
* @param len length of the source string.
* @return the destination widestring.
*/
-WideString utf8_mbstowcs (const char *str, int len = -1);
+EAPI WideString utf8_mbstowcs (const char *str, int len = -1);
/**
* @brief Convert an ucs4 string to an utf8 string.
*
* @return the destination utf8 string.
*/
-String utf8_wcstombs (const WideString & wstr);
+EAPI String utf8_wcstombs (const WideString & wstr);
/**
* @brief Convert an ucs4 string to an utf8 string.
*
* @return the destination utf8 string.
*/
-String utf8_wcstombs (const ucs4_t *wstr, int len = -1);
+EAPI String utf8_wcstombs (const ucs4_t *wstr, int len = -1);
/**
* @brief Read a wide char from istream.
*
* @return if equal to 0 then got the end of the stream or error occurred.
*/
-ucs4_t utf8_read_wchar (std::istream &is);
+EAPI ucs4_t utf8_read_wchar (std::istream &is);
/**
* @brief Write a wide char to ostream.
* @param wc the wide char to be written to the stream.
* @return the same stream object reference.
*/
-std::ostream & utf8_write_wchar (std::ostream &os, ucs4_t wc);
+EAPI std::ostream & utf8_write_wchar (std::ostream &os, ucs4_t wc);
/**
* @brief Read a wide string from istream.
* @param rm_delim if the delim should be removed from the destination string.
* @return the wide string read from the given stream.
*/
-WideString utf8_read_wstring (std::istream &is, ucs4_t delim = (ucs4_t) '\n', bool rm_delim = true);
+EAPI WideString utf8_read_wstring (std::istream &is, ucs4_t delim = (ucs4_t) '\n', bool rm_delim = true);
/**
* @brief Write a wide string to ostream.
* @param wstr the wide string to be written into the stream.
* @return the same stream object reference.
*/
-std::ostream & utf8_write_wstring (std::ostream &os, const WideString & wstr);
+EAPI std::ostream & utf8_write_wstring (std::ostream &os, const WideString & wstr);
/**
* @brief Convert an uint32 variable into a sequence of bytes.
* @param bytes the buffer to store the result.
* @param n the variable to be converted.
*/
-inline
+EAPI inline
void scim_uint32tobytes (unsigned char *bytes, uint32 n)
{
bytes [0] = (unsigned char) ((n & 0xFF));
* @param bytes the buffer contains the bytes to be converted.
* @return the result uint32 value.
*/
-inline
+EAPI inline
uint32 scim_bytestouint32 (const unsigned char *bytes)
{
return ((uint32) bytes [0])
* @param bytes the buffer to store the result.
* @param n the variable to be converted.
*/
-inline
+EAPI inline
void scim_uint16tobytes (unsigned char *bytes, uint16 n)
{
bytes [0] = (unsigned char) ((n & 0xFF));
* @param bytes the buffer contains the bytes to be converted.
* @return the result uint16 value.
*/
-inline
+EAPI inline
uint16 scim_bytestouint16 (const unsigned char *bytes)
{
return ((uint16) bytes [0]) | (((uint16) bytes [1]) << 8);
* @param locale the locale to be tested.
* @return If the locale is valid, it's the good locale name, otherwise empty.
*/
-String scim_validate_locale (const String& locale);
+EAPI String scim_validate_locale (const String& locale);
/**
* @brief Get the encoding for a locale.
* @param locale the name of the locale.
* @return The encoding used by the given locale.
*/
-String scim_get_locale_encoding (const String& locale);
+EAPI String scim_get_locale_encoding (const String& locale);
/**
* @brief Get current system locale.
* @return The current system locale.
*/
-String scim_get_current_locale ();
+EAPI String scim_get_current_locale ();
/**
* @brief Get current system language.
* @return The current system language.
*/
-String scim_get_current_language ();
+EAPI String scim_get_current_language ();
/**
* @brief Get the max length of the multibyte char of a locale.
* @param locale the name of the locale.
* @return the maxlen of this locale.
*/
-int scim_get_locale_maxlen (const String& locale);
+EAPI int scim_get_locale_maxlen (const String& locale);
/**
* @brief Split string list into a string vector according to the delim char.
* @param delim the delimiter to split the strings.
* @return the number of the strings in the result list.
*/
-int scim_split_string_list (std::vector<String>& vec, const String& str, char delim = ',');
+EAPI int scim_split_string_list (std::vector<String>& vec, const String& str, char delim = ',');
/**
* @brief Combine a string vector into one string list, separated by char delim.
* @param delim the delimiter which should be put between two strings.
* @return the result string.
*/
-String scim_combine_string_list (const std::vector<String>& vec, char delim = ',');
+EAPI String scim_combine_string_list (const std::vector<String>& vec, char delim = ',');
/**
* @brief Get machine endian type
* @return 1 little endian, 0 big endian
*/
-bool scim_is_little_endian ();
+EAPI bool scim_is_little_endian ();
/**
* @brief Test if wchar_t is using UCS4 encoding.
*/
-bool scim_if_wchar_ucs4_equal ();
+EAPI bool scim_if_wchar_ucs4_equal ();
/**
* @brief Convert a half width unicode char to its full width counterpart.
*/
-ucs4_t scim_wchar_to_full_width (ucs4_t code);
+EAPI ucs4_t scim_wchar_to_full_width (ucs4_t code);
/**
* @brief Convert a full width unicode char to its half width counterpart.
*/
-ucs4_t scim_wchar_to_half_width (ucs4_t code);
+EAPI ucs4_t scim_wchar_to_half_width (ucs4_t code);
/**
* @brief Get the home dir of current user.
*/
-String scim_get_home_dir ();
+EAPI String scim_get_home_dir ();
/**
* @brief Get the name of current user.
*/
-String scim_get_user_name ();
+EAPI String scim_get_user_name ();
/**
* @brief Get SCIM data dir of current user.
*/
-String scim_get_user_data_dir ();
+EAPI String scim_get_user_data_dir ();
/**
* @brief Load a file into memory.
* @return the size of the data actually loaded (mostly, it's the file size),
* zero means load failed.
*/
-size_t scim_load_file (const String &filename, char **bufptr);
+EAPI size_t scim_load_file (const String &filename, char **bufptr);
/**
* @brief Make a directory.
*
* @return true if sucess.
*/
-bool scim_make_dir (const String &dir);
+EAPI bool scim_make_dir (const String &dir);
/**
* @brief Get the localized name of a language id.
* @param lang the language id.
* @return the localized name of this language, in utf8 encoding.
*/
-String scim_get_language_name (const String &lang);
+EAPI String scim_get_language_name (const String &lang);
/**
* @brief Get the English name of a language id.
* @param lang the language id.
* @return the English name of this language, in utf8 encoding.
*/
-String scim_get_language_name_english (const String &lang);
+EAPI String scim_get_language_name_english (const String &lang);
/**
* @brief Get the untranslated name of a language id.
* @param lang the language id.
* @return the untranslated name of this language, in utf8 encoding.
*/
-String scim_get_language_name_untranslated (const String &lang);
+EAPI String scim_get_language_name_untranslated (const String &lang);
/**
* @brief Get the supported locales for a language.
* @param lang the language id.
* @return the supported locales separated by comma.
*/
-String scim_get_language_locales (const String &lang);
+EAPI String scim_get_language_locales (const String &lang);
/**
* @brief Get the language id for a locale.
* @param locale the locale name
* @return the language id for this locale.
*/
-String scim_get_locale_language (const String &locale);
+EAPI String scim_get_locale_language (const String &locale);
/**
* @brief Test if the language is valid, and return the good language code.
* @param lang the language to be tested.
* @return If the language is valid, return the good language id, otherwise return "~other".
*/
-String scim_validate_language (const String &lang);
+EAPI String scim_validate_language (const String &lang);
/**
* @brief Get the normalized language id of a language.
* @param lang the original language
* @return the normalized language code.
*/
-String scim_get_normalized_language (const String &lang);
+EAPI String scim_get_normalized_language (const String &lang);
/**
* @brief Launch a SCIM process with specific options.
* @return Return 0 means the process started/exited without any problem, otherwise
* means an error occurred.
*/
-int scim_launch (bool daemon,
+EAPI int scim_launch (bool daemon,
const String &config,
const String &imengines,
const String &frontend,
* @return Return 0 means the process started/exited without any problem, otherwise
* means an error occurred.
*/
-int scim_launch_panel (bool daemon,
+EAPI int scim_launch_panel (bool daemon,
const String &config,
const String &display,
char * const argv [] = 0);
*
* @param usec The amount of microseconds to be sleeped.
*/
-void scim_usleep (unsigned int usec);
+EAPI void scim_usleep (unsigned int usec);
/**
* @brief Switch process into daemon mode.
*/
-void scim_daemon ();
+EAPI void scim_daemon ();
/**
* @brief Save string to ISF log file.
#define ISF_LOG(fmt, ...)
#endif
-void gettime (clock_t clock_start, const char* str);
+EAPI void gettime (clock_t clock_start, const char* str);
typedef struct rectinfo
{
--- /dev/null
+/*
+ * ISF(Input Service Framework)
+ *
+ * ISF is based on SCIM 1.4.7 and extended for supporting more mobile fitable.
+ * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
+ *
+ * Contact: Haifeng Deng <haifeng.deng@samsung.com>, Li Zhang <li2012.zhang@samsung.com>
+ *
+ * This library is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software Foundation, Inc., 51
+ * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#ifndef __SCIM_VISIBILITY_H
+#define __SCIM_VISIBILITY_H
+
+#ifdef EAPI
+# undef EAPI
+#endif
+
+#ifdef IAPI
+# undef IAPI
+#endif
+
+#if defined _WIN32 || defined __CYGWIN__
+# ifdef ISF_BUILDING_DLL
+# ifdef __GNUC__
+# define EAPI __attribute__ ((dllexport))
+# else
+# define EAPI __declspec(dllexport) // Note: actually gcc seems to also supports this syntax.
+# endif
+# else
+# ifdef __GNUC__
+# define EAPI __attribute__ ((dllimport))
+# else
+# define EAPI __declspec(dllimport) // Note: actually gcc seems to also supports this syntax.
+# endif
+# endif
+# define IAPI
+#else
+# if __GNUC__ >= 4
+# define EAPI __attribute__ ((visibility ("default")))
+# define IAPI __attribute__ ((visibility ("hidden")))
+# else
+# define EAPI
+# define IAPI
+# endif
+#endif
+
+#endif
XFreeModifiermap (mods);
}
-KeyEvent
+EAPI KeyEvent
scim_x11_keyevent_x11_to_scim (Display *display, const XKeyEvent &xkey)
{
KeyEvent scimkey;
return scimkey;
}
-XKeyEvent
+EAPI XKeyEvent
scim_x11_keyevent_scim_to_x11 (Display *display, const KeyEvent &scimkey)
{
XKeyEvent xkey;
return xkey;
}
-uint16
+EAPI uint16
scim_x11_keymask_x11_to_scim (Display *display, unsigned int xkeystate)
{
uint16 mask = 0;
return mask;
}
-unsigned int scim_x11_keymask_scim_to_x11 (Display *display, uint16 scimkeymask)
+EAPI unsigned int scim_x11_keymask_scim_to_x11 (Display *display, uint16 scimkeymask)
{
unsigned int state = 0;
/**
* @brief Translate a X11 KeyEvent to a scim KeyEvent according to the given Display
*/
-scim::KeyEvent scim_x11_keyevent_x11_to_scim (Display *display, const XKeyEvent &xkey);
+EAPI scim::KeyEvent scim_x11_keyevent_x11_to_scim (Display *display, const XKeyEvent &xkey);
/**
* @brief Translate a scim KeyEvent to a X11 KeyEvent according to the given Display
*/
-XKeyEvent scim_x11_keyevent_scim_to_x11 (Display *display, const scim::KeyEvent &scimkey);
+EAPI XKeyEvent scim_x11_keyevent_scim_to_x11 (Display *display, const scim::KeyEvent &scimkey);
/**
* @brief Translate X11 key state to scim key mask.
*/
-scim::uint16 scim_x11_keymask_x11_to_scim (Display *display, unsigned int xkeystate);
+EAPI scim::uint16 scim_x11_keymask_x11_to_scim (Display *display, unsigned int xkeystate);
/**
* @brief Translate scim key mask to X11 key state.
*/
-unsigned int scim_x11_keymask_scim_to_x11 (Display *display, scim::uint16 scimkeymask);
+EAPI unsigned int scim_x11_keymask_scim_to_x11 (Display *display, scim::uint16 scimkeymask);
#endif
Name: isf
Summary: Input Service Framework
-Version: 2.4.6319
+Version: 2.4.6322
Release: 1
Group: System Environment/Libraries
License: LGPL
%setup -q
%build
+CFLAGS+=" -fvisibility=hidden "; export CFLAGS
+CXXFLAGS+=" -fvisibility=hidden -fvisibility-inlines-hidden ";export CXXFLAGS
%autogen
%configure --disable-static \
+ISF 2.4.6322 :
+ 1. Add visibility gcc options
+
+
ISF 2.4.6319 :
1. [isf-panel-efl] Update aux style
2. Fix path for 3rd ISE development