Add visibility gcc options
authorLi Zhang <li2012.zhang@samsung.com>
Fri, 22 Mar 2013 02:58:26 +0000 (10:58 +0800)
committerJihoon Kim <jihoon48.kim@samsung.com>
Tue, 26 Mar 2013 07:18:42 +0000 (16:18 +0900)
Change-Id: I9029cd9bfc29b16ee5156d202b6c5ed3aaf35807

81 files changed:
configure.ac
ism/extras/efl_immodule/Makefile.am
ism/extras/efl_immodule/isf_imf_context.cpp
ism/extras/efl_immodule/isf_imf_context.h
ism/extras/efl_immodule/isf_imf_control.cpp
ism/extras/efl_immodule/isf_imf_control_ui.cpp
ism/extras/efl_panel/isf_panel_efl.cpp
ism/extras/gtk2_immodule/Makefile.am
ism/extras/gtk_panel/scim_panel_gtk.cpp
ism/modules/config/Makefile.am
ism/modules/config/scim_simple_config.cpp
ism/modules/config/scim_simple_config.h
ism/modules/config/scim_socket_config.cpp
ism/modules/config/scim_socket_config.h
ism/modules/filter/Makefile.am
ism/modules/filter/scim_sctc_filter.cpp
ism/modules/filter/scim_sctc_filter.h
ism/modules/frontend/Makefile.am
ism/modules/frontend/scim_socket_frontend.cpp
ism/modules/frontend/scim_socket_frontend.h
ism/modules/frontend/scim_x11_frontend.cpp
ism/modules/frontend/scim_x11_frontend.h
ism/modules/imengine/Makefile.am
ism/modules/imengine/scim_socket_imengine.cpp
ism/modules/imengine/scim_socket_imengine.h
ism/src/Makefile.am
ism/src/isf_control.cpp
ism/src/isf_control.h
ism/src/isf_imcontrol_client.h
ism/src/isf_query_utility.cpp
ism/src/isf_query_utility.h
ism/src/scim.h
ism/src/scim_attribute.h
ism/src/scim_backend.h
ism/src/scim_compose_key.h
ism/src/scim_config_base.h
ism/src/scim_config_module.cpp
ism/src/scim_config_module.h
ism/src/scim_connection.h
ism/src/scim_debug.h
ism/src/scim_event.cpp
ism/src/scim_event.h
ism/src/scim_exception.h
ism/src/scim_filter.h
ism/src/scim_filter_manager.h
ism/src/scim_filter_module.cpp
ism/src/scim_filter_module.h
ism/src/scim_frontend.h
ism/src/scim_frontend_module.cpp
ism/src/scim_frontend_module.h
ism/src/scim_global_config.cpp
ism/src/scim_global_config.h
ism/src/scim_helper.h
ism/src/scim_helper_manager.h
ism/src/scim_helper_module.cpp
ism/src/scim_helper_module.h
ism/src/scim_hotkey.h
ism/src/scim_iconv.h
ism/src/scim_imengine.h
ism/src/scim_imengine_module.cpp
ism/src/scim_imengine_module.h
ism/src/scim_lookup_table.h
ism/src/scim_module.cpp
ism/src/scim_module.h
ism/src/scim_object.h
ism/src/scim_panel_agent.cpp
ism/src/scim_panel_agent.h
ism/src/scim_panel_client.h
ism/src/scim_panel_common.h
ism/src/scim_property.h
ism/src/scim_signals.h
ism/src/scim_slot.h
ism/src/scim_socket.h
ism/src/scim_transaction.h
ism/src/scim_utility.cpp
ism/src/scim_utility.h
ism/src/scim_visibility.h [new file with mode: 0644]
ism/utils/scim_x11_utils.cpp
ism/utils/scim_x11_utils.h
packaging/isf.spec
releasenote.txt

index 74280e5..75adc7c 100755 (executable)
@@ -1,6 +1,6 @@
 # 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_])
 
@@ -11,7 +11,7 @@ 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
 
@@ -616,6 +616,9 @@ AC_SUBST(ISF_BUILD_PANEL_EFL)
 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"
index f94a4f5..95ecefa 100644 (file)
@@ -15,7 +15,8 @@ INCLUDES       = -I$(top_builddir) \
                  -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
index f0a1c7b..de96d5a 100644 (file)
@@ -304,24 +304,24 @@ public:
 
 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;
@@ -496,7 +496,7 @@ _x_prop_change (void *data, int type, void *event)
     return ECORE_CALLBACK_PASS_ON;
 }
 
-int
+EAPI int
 register_key_handler ()
 {
     SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
@@ -512,7 +512,7 @@ register_key_handler ()
     return EXIT_SUCCESS;
 }
 
-int
+EAPI int
 unregister_key_handler ()
 {
     SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
@@ -688,7 +688,7 @@ done:
     return ret;
 }
 
-Eina_Bool
+EAPI Eina_Bool
 caps_mode_check (Ecore_IMF_Context *ctx, Eina_Bool force, Eina_Bool noti)
 {
     Eina_Bool uppercase;
index 9091bd3..bbb849c 100644 (file)
@@ -46,38 +46,38 @@ struct _EcoreIMFContextISF {
     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 */
 
index 7aae068..2748827 100644 (file)
@@ -141,7 +141,7 @@ static void connect_panel (void)
     }
 }
 
-EAPI void _isf_imf_control_finalize (void)
+void _isf_imf_control_finalize (void)
 {
     IMFCONTROLDBG ("%s ...\n", __FUNCTION__);
 
@@ -153,7 +153,7 @@ EAPI void _isf_imf_control_finalize (void)
     }
 }
 
-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 ();
@@ -163,7 +163,7 @@ EAPI int _isf_imf_context_input_panel_show (int client_id, int context, void *da
     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 ();
@@ -172,7 +172,7 @@ EAPI int _isf_imf_context_input_panel_hide (int client_id, int context)
     return 0;
 }
 
-EAPI int _isf_imf_context_control_panel_show (void)
+int _isf_imf_context_control_panel_show (void)
 {
     connect_panel ();
     _imcontrol_client.prepare ();
@@ -181,7 +181,7 @@ EAPI int _isf_imf_context_control_panel_show (void)
     return 0;
 }
 
-EAPI int _isf_imf_context_control_panel_hide (void)
+int _isf_imf_context_control_panel_hide (void)
 {
     connect_panel ();
     _imcontrol_client.prepare ();
@@ -190,7 +190,7 @@ EAPI int _isf_imf_context_control_panel_hide (void)
     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 ();
@@ -199,7 +199,7 @@ EAPI int _isf_imf_context_input_panel_language_set (Ecore_IMF_Input_Panel_Lang l
     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 ();
@@ -207,7 +207,7 @@ EAPI int _isf_imf_context_input_panel_language_locale_get (char **locale)
     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 ();
@@ -216,7 +216,7 @@ EAPI int _isf_imf_context_input_panel_imdata_set (const void *data, int len)
     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 ();
@@ -224,7 +224,7 @@ EAPI int _isf_imf_context_input_panel_imdata_get (void *data, int *len)
     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 ();
@@ -232,7 +232,7 @@ EAPI int _isf_imf_context_input_panel_geometry_get (int *x, int *y, int *w, int
     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 ();
@@ -241,7 +241,7 @@ EAPI int _isf_imf_context_input_panel_return_key_type_set (Ecore_IMF_Input_Panel
     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 ();
@@ -251,7 +251,7 @@ EAPI int _isf_imf_context_input_panel_return_key_type_get (Ecore_IMF_Input_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 ();
@@ -260,7 +260,7 @@ EAPI int _isf_imf_context_input_panel_return_key_disabled_set (Eina_Bool disable
     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 ();
@@ -270,7 +270,7 @@ EAPI int _isf_imf_context_input_panel_return_key_disabled_get (Eina_Bool &disabl
     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;
 
@@ -281,7 +281,7 @@ EAPI int _isf_imf_context_input_panel_layout_set (Ecore_IMF_Input_Panel_Layout l
     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;
 
@@ -293,7 +293,7 @@ EAPI int _isf_imf_context_input_panel_layout_get (Ecore_IMF_Input_Panel_Layout *
     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 ();
 
@@ -303,7 +303,7 @@ EAPI int _isf_imf_context_input_panel_caps_mode_set (unsigned int mode)
     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 ();
@@ -311,7 +311,7 @@ EAPI int _isf_imf_context_candidate_window_geometry_get (int *x, int *y, int *w,
     return 0;
 }
 
-EAPI int _isf_imf_context_control_focus_in (void)
+int _isf_imf_context_control_focus_in (void)
 {
     connect_panel ();
     _imcontrol_client.prepare ();
@@ -320,7 +320,7 @@ EAPI int _isf_imf_context_control_focus_in (void)
     return 0;
 }
 
-EAPI int _isf_imf_context_control_focus_out (void)
+int _isf_imf_context_control_focus_out (void)
 {
     connect_panel ();
     _imcontrol_client.prepare ();
@@ -329,7 +329,7 @@ EAPI int _isf_imf_context_control_focus_out (void)
     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 ();
@@ -338,7 +338,7 @@ EAPI int _isf_imf_context_input_panel_send_will_show_ack (void)
     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 ();
index 5f00eb0..cacf196 100644 (file)
@@ -340,12 +340,12 @@ static Eina_Bool _client_window_focus_out_cb (void *data, int ev_type, void *ev)
     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;
@@ -362,7 +362,7 @@ EAPI Eina_Bool check_focus_out_by_lockscreen (Ecore_IMF_Context *ctx)
     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 ();
@@ -370,7 +370,7 @@ EAPI void isf_imf_context_control_panel_show (Ecore_IMF_Context *ctx)
     _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 ();
@@ -378,7 +378,7 @@ EAPI void isf_imf_context_control_panel_hide (Ecore_IMF_Context *ctx)
     _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;
 
@@ -398,7 +398,7 @@ EAPI void isf_imf_input_panel_init (void)
     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);
@@ -426,7 +426,7 @@ EAPI void isf_imf_input_panel_shutdown (void)
     _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;
@@ -552,7 +552,7 @@ EAPI void isf_imf_context_input_panel_show (Ecore_IMF_Context* ctx)
     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);
 
@@ -562,7 +562,7 @@ EAPI void isf_imf_context_input_panel_hide (Ecore_IMF_Context *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;
@@ -570,7 +570,7 @@ EAPI void isf_imf_context_input_panel_instant_hide (Ecore_IMF_Context *ctx)
     _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);
 
@@ -582,14 +582,14 @@ EAPI void isf_imf_context_input_panel_language_set (Ecore_IMF_Context *ctx, Ecor
         _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 ();
@@ -598,14 +598,14 @@ EAPI void isf_imf_context_input_panel_language_locale_get (Ecore_IMF_Context *ct
         _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);
 
@@ -623,7 +623,7 @@ EAPI void isf_imf_context_input_panel_caps_lock_mode_set (Ecore_IMF_Context *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);
 
@@ -638,7 +638,7 @@ EAPI void isf_imf_context_input_panel_imdata_set (Ecore_IMF_Context *ctx, const
  * @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 ();
@@ -655,7 +655,7 @@ EAPI void isf_imf_context_input_panel_imdata_get (Ecore_IMF_Context *ctx, void*
  * @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 ();
@@ -670,7 +670,7 @@ EAPI void isf_imf_context_input_panel_geometry_get (Ecore_IMF_Context *ctx, int
  * @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);
 
@@ -689,7 +689,7 @@ EAPI void isf_imf_context_input_panel_return_key_type_set (Ecore_IMF_Context *ct
  *
  * @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);
 
@@ -709,7 +709,7 @@ EAPI Ecore_IMF_Input_Panel_Return_Key_Type isf_imf_context_input_panel_return_ke
  * @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);
 
@@ -727,7 +727,7 @@ EAPI void isf_imf_context_input_panel_return_key_disabled_set (Ecore_IMF_Context
  *
  * @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);
 
@@ -747,7 +747,7 @@ EAPI Eina_Bool isf_imf_context_input_panel_return_key_disabled_get (Ecore_IMF_Co
  * @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);
@@ -766,7 +766,7 @@ isf_imf_context_input_panel_layout_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_
 *
 * @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)
@@ -783,14 +783,14 @@ EAPI Ecore_IMF_Input_Panel_Layout isf_imf_context_input_panel_layout_get (Ecore_
  *
  * @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);
 
@@ -808,7 +808,7 @@ EAPI void isf_imf_context_input_panel_event_callback_clear (Ecore_IMF_Context *c
  * @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 ();
@@ -822,7 +822,7 @@ EAPI void isf_imf_context_candidate_window_geometry_get (Ecore_IMF_Context *ctx,
  *
  * @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 ();
@@ -837,7 +837,7 @@ EAPI void isf_imf_context_control_focus_in (Ecore_IMF_Context *ctx)
  *
  * @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 ();
@@ -845,7 +845,7 @@ EAPI void isf_imf_context_control_focus_out (Ecore_IMF_Context *ctx)
     _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 ();
@@ -854,7 +854,7 @@ EAPI void isf_imf_context_input_panel_send_will_show_ack ()
     _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 ();
index 0f0978c..888cdb5 100644 (file)
@@ -98,7 +98,7 @@ extern std::vector<String>          _icons;
 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;
 
 
 /////////////////////////////////////////////////////////////////////////////
index 4e3c829..ecb1681 100644 (file)
@@ -17,7 +17,8 @@ INCLUDES              = -I$(top_builddir) \
                          -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
index 2a9258c..3416676 100644 (file)
@@ -145,7 +145,7 @@ extern std::vector < String >       _isf_app_list;
 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.
index e7736b6..585e107 100644 (file)
@@ -29,7 +29,8 @@ INCLUDES              = -I$(top_builddir) \
                          -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
 
index 89a994c..db75bf6 100644 (file)
 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 ();
index 51126d5..bb897d1 100644 (file)
@@ -36,7 +36,7 @@ namespace scim {
 
 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;
index e930a00..73675be 100644 (file)
 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 ();
index 4f75134..efeb5bf 100644 (file)
@@ -33,7 +33,7 @@
 
 namespace scim {
 
-class SocketConfig : public ConfigBase
+class EAPI SocketConfig : public ConfigBase
 {
     String               m_socket_address;
     int                  m_socket_timeout;
index 7ff4179..49450b4 100644 (file)
@@ -30,7 +30,8 @@ INCLUDES              = -I$(top_builddir) \
                          -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
index a0b9552..5561909 100644 (file)
@@ -100,7 +100,7 @@ static WideString __tc_to_sc (const WideString &tc);
 
 //Module Interface
 extern "C" {
-    void scim_module_init (void)
+    EAPI void scim_module_init (void)
     {
         //Initialize encoding information.
         __sc_encodings.push_back ("GB2312");
@@ -112,16 +112,16 @@ extern "C" {
         __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 ();
@@ -129,7 +129,7 @@ extern "C" {
         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;
index 81994c1..79d7cbb 100644 (file)
@@ -45,7 +45,7 @@ enum SCTCWorkMode
     SCTC_MODE_FORCE_TC_TO_SC
 };
 
-class SCTCFilterFactory : public FilterFactoryBase
+class EAPI SCTCFilterFactory : public FilterFactoryBase
 {
     bool   m_sc_ok;
     String m_sc_encoding;
@@ -69,7 +69,7 @@ public:
     virtual IMEngineInstancePointer create_instance (const String& encoding, int id = -1);
 };
 
-class SCTCFilterInstance : public FilterInstanceBase
+class EAPI SCTCFilterInstance : public FilterInstanceBase
 {
     SCTCFilterFactory *m_factory;
 
index 885d6c4..1d75c9d 100644 (file)
@@ -32,7 +32,8 @@ INCLUDES             = -I$(top_builddir) \
                        -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
index 7ca7ef5..9ceb919 100644 (file)
@@ -85,18 +85,18 @@ static char   **_argv = NULL;
 
 //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)
@@ -109,7 +109,7 @@ extern "C" {
         }
     }
 
-    void scim_frontend_module_run (void)
+    EAPI void scim_frontend_module_run (void)
     {
         struct tms tiks_buf;
         clock_t start = times (&tiks_buf);
index cf5de4d..d279434 100644 (file)
@@ -49,7 +49,7 @@
 
 using namespace scim;
 
-class SocketFrontEnd : public FrontEndBase
+class EAPI SocketFrontEnd : public FrontEndBase
 {
     enum ClientType {
         UNKNOWN_CLIENT,
index 1c01d4d..cb4b4fe 100644 (file)
@@ -83,18 +83,18 @@ static Pointer <X11FrontEnd> _scim_frontend (0);
 
 //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)
@@ -109,7 +109,7 @@ extern "C" {
         }
     }
 
-    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";
index 158c931..388f159 100644 (file)
@@ -40,7 +40,7 @@
 
 using namespace scim;
 
-class X11FrontEnd : public FrontEndBase
+class EAPI X11FrontEnd : public FrontEndBase
 {
 // first = UUID.
 // second= siid.
index 062c413..c665722 100644 (file)
@@ -31,7 +31,8 @@ INCLUDES              = -I$(top_builddir) \
                          -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
index 0d35fc1..a2e43b4 100644 (file)
@@ -123,13 +123,13 @@ static SocketIMEngineGlobal *global = 0;
 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;
@@ -137,14 +137,14 @@ extern "C" {
         }
     }
 
-    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;
index b8e711a..1fd6610 100644 (file)
@@ -45,7 +45,7 @@ namespace scim {
 
 class SocketFactory;
 
-class SocketFactory : public IMEngineFactoryBase
+class EAPI SocketFactory : public IMEngineFactoryBase
 {
     WideString m_name;
 
@@ -83,7 +83,7 @@ private:
     int  create_peer_instance (const String &encoding);
 };
 
-class SocketInstance : public IMEngineInstanceBase
+class EAPI SocketInstance : public IMEngineInstanceBase
 {
     SocketFactory *m_factory;
     int            m_peer_id;
index 8f078c0..5dbd494 100644 (file)
@@ -33,7 +33,8 @@ INCLUDES              = -I$(top_builddir) \
                          -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 \
@@ -88,7 +89,8 @@ libsciminclude_HEADERS        = scim.h \
                          scim_utility.h \
                          isf_control.h \
                          isf_imcontrol_client.h \
-                         ise_context.h
+                         ise_context.h \
+                         scim_visibility.h
 
 noinst_LTLIBRARIES     = libltdlc.la
 
index 17b3a28..e5507a2 100644 (file)
@@ -35,7 +35,7 @@
 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;
@@ -48,7 +48,7 @@ int isf_control_set_active_ise_by_uuid (const char *uuid)
     return 0;
 }
 
-int isf_control_get_active_ise (char **uuid)
+EAPI int isf_control_get_active_ise (char **uuid)
 {
     if (uuid == NULL)
         return -1;
@@ -65,7 +65,7 @@ int isf_control_get_active_ise (char **uuid)
     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;
@@ -79,7 +79,7 @@ int isf_control_get_ise_list (char ***uuid_list)
     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;
@@ -102,7 +102,7 @@ int isf_control_get_ise_info (const char *uuid, char **name, char **language, IS
     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 ();
@@ -114,7 +114,7 @@ int isf_control_set_active_ise_to_default (void)
     return 0;
 }
 
-int isf_control_reset_ise_option (void)
+EAPI int isf_control_reset_ise_option (void)
 {
     IMControlClient imcontrol_client;
     imcontrol_client.open_connection ();
index b5b280e..128a84f 100644 (file)
@@ -38,7 +38,6 @@ typedef enum
     SOFTWARE_KEYBOARD_ISE       /* Software keyboard ISE */
 } ISE_TYPE_T;
 
-
 /////////////////////////////////////////////////////////////////////////////
 // Declaration of global functions.
 /////////////////////////////////////////////////////////////////////////////
@@ -49,7 +48,7 @@ typedef enum
  *
  * @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.
@@ -59,7 +58,7 @@ int isf_control_set_active_ise_by_uuid (const char *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.
@@ -69,7 +68,7 @@ int isf_control_get_active_ise (char **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.
@@ -82,21 +81,21 @@ int isf_control_get_ise_list (char ***uuid_list);
  *
  * @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
 }
index 5a45d25..78bdea7 100644 (file)
@@ -31,7 +31,7 @@ namespace scim
 typedef Slot1<void, int> IMControlClientSlotVoid;
 
 
-class IMControlClient
+class EAPI IMControlClient
 {
     class IMControlClientImpl;
     IMControlClientImpl *m_impl;
index 9616e18..23180f9 100644 (file)
@@ -53,7 +53,7 @@ using namespace scim;
  *
  * @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);
@@ -66,7 +66,7 @@ String isf_get_normalized_language (String 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;
@@ -101,7 +101,7 @@ void isf_get_ise_info_from_string (const char *str, ISEINFO &info)
     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 (":") +
@@ -109,7 +109,7 @@ String isf_combine_ise_info_string (String name, String uuid, String module, Str
         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");
@@ -130,7 +130,7 @@ bool isf_read_ise_info_list (const char *filename, std::vector<ISEINFO> &info_li
     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;
@@ -242,7 +242,7 @@ static void remove_ise_info_from_list (std::vector<ISEINFO> &info_list, const ch
     }
 }
 
-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;
@@ -256,7 +256,7 @@ bool isf_add_keyboard_info_to_file (const char *filename, const char *module_nam
     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;
@@ -270,7 +270,7 @@ bool isf_add_helper_info_to_file (const char *filename, const char *module_name)
     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;
@@ -281,7 +281,7 @@ void isf_remove_ise_info_from_file (const char *filename, const char *module_nam
     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;
index 9c8452d..bc18008 100644 (file)
@@ -53,16 +53,16 @@ typedef struct {
     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 */
 
index 1fff6e2..13194f9 100644 (file)
@@ -35,6 +35,7 @@
  */
 
 /* 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
index 995743a..ad79e49 100644 (file)
@@ -94,7 +94,7 @@ const unsigned int SCIM_ATTR_DECORATE_BGCOLOR4   = 8;    ///< Draw the text in u
  * 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;
index 6ea2463..f71acd3 100644 (file)
@@ -47,7 +47,7 @@ namespace scim {
  * 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)
@@ -65,7 +65,7 @@ public:
  * Most developer should just use the default implementation
  * scim::CommonBackEnd.
  */
-class BackEndBase : public ReferencedObject
+class EAPI BackEndBase : public ReferencedObject
 {
     class BackEndBaseImpl;
 
@@ -215,7 +215,7 @@ typedef Pointer <BackEndBase> BackEndPointer;
 /**
  * @brief The default implementation of scim::BackEndBase interface.
  */
-class CommonBackEnd : public BackEndBase
+class EAPI CommonBackEnd : public BackEndBase
 {
     class CommonBackEndImpl;
     CommonBackEndImpl *m_impl;
index 3acff00..b47eae6 100644 (file)
@@ -44,7 +44,7 @@ namespace scim {
 /**
  * @brief A simple IMEngine to deal with the Compose keys.
  */
-class ComposeKeyFactory : public IMEngineFactoryBase
+class EAPI ComposeKeyFactory : public IMEngineFactoryBase
 {
 public:
     ComposeKeyFactory ();
@@ -63,7 +63,7 @@ public:
     virtual IMEngineInstancePointer create_instance (const String& encoding, int id = -1);
 };
 
-class ComposeKeyInstance : public IMEngineInstanceBase
+class EAPI ComposeKeyInstance : public IMEngineInstanceBase
 {
     uint32 m_compose_buffer [8];
 
index 6988a1a..ec4ab6d 100644 (file)
@@ -49,7 +49,7 @@ namespace scim {
  * 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)
@@ -85,7 +85,7 @@ typedef Signal1<void, const ConfigPointer &> ConfigSignalVoid;
  * 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;
 
@@ -373,7 +373,7 @@ public:
  * 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:
index c52c9c0..a834212 100644 (file)
@@ -86,7 +86,7 @@ ConfigModule::create_config () const
     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");
 }
index 3b674d3..353cb2e 100644 (file)
@@ -67,7 +67,7 @@ typedef ConfigPointer (*ConfigModuleCreateConfigFunc) ();
  * This is a wrapper of scim::Module class, which is specially
  * for manipulating the config modules.
  */
-class ConfigModule
+class EAPI ConfigModule
 {
     Module      m_module;
 
@@ -125,7 +125,7 @@ public:
  * @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);
 
 /** @} */
 
index a259145..320216c 100644 (file)
@@ -52,7 +52,7 @@ class Slot;
  * from a signal's connect() method.
  */
 
-class Node : public ReferencedObject
+class EAPI Node : public ReferencedObject
 {
     Pointer <Slot> slot_;
 
@@ -86,7 +86,7 @@ public:
  * a signal connection.
  */
 
-class Connection
+class EAPI Connection
 {
     mutable Pointer<Node> node_;
 
index 05963ff..3955d52 100644 (file)
@@ -86,7 +86,7 @@ namespace scim {
 /**
  * @brief The class to filter and redirect the debug messages.
  */
-class DebugOutput
+class EAPI DebugOutput
 {
 private:
     static uint32          current_verbose;
index 889d60d..762ffb9 100644 (file)
@@ -260,14 +260,14 @@ KeyEvent::map_to_layout (KeyboardLayout new_layout) const
     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;
@@ -308,7 +308,7 @@ scim_string_to_key (KeyEvent &key, const String & str)
     return key.code != 0;
 }
 
-bool
+EAPI bool
 scim_key_list_to_string (String &str, const std::vector<KeyEvent> & keylist)
 {
     std::vector<String> strlist;
@@ -323,7 +323,7 @@ scim_key_list_to_string (String &str, const std::vector<KeyEvent> & keylist)
     return str.length () != 0;
 }
 
-bool
+EAPI bool
 scim_string_to_key_list (std::vector<KeyEvent> &keylist, const String &str)
 {
     std::vector <String> strlist;
@@ -340,7 +340,7 @@ scim_string_to_key_list (std::vector<KeyEvent> &keylist, const String &str)
 }
 
 
-String
+EAPI String
 scim_keyboard_layout_to_string (KeyboardLayout layout)
 {
     if (layout >= 0 && layout < SCIM_KEYBOARD_NUM_LAYOUTS)
@@ -349,7 +349,7 @@ scim_keyboard_layout_to_string (KeyboardLayout layout)
     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;
@@ -367,7 +367,7 @@ scim_string_to_keyboard_layout (const String &str)
     return SCIM_KEYBOARD_Unknown;
 }
 
-String
+EAPI String
 scim_keyboard_layout_get_display_name (KeyboardLayout layout)
 {
     if (layout >= 0 && layout < SCIM_KEYBOARD_NUM_LAYOUTS)
@@ -376,7 +376,7 @@ scim_keyboard_layout_get_display_name (KeyboardLayout layout)
     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);
@@ -385,7 +385,7 @@ scim_get_default_keyboard_layout ()
     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);
index ad14e13..47d85e1 100644 (file)
@@ -2009,7 +2009,7 @@ typedef std::vector<KeyEvent> KeyEventList;
  * @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.
@@ -2017,7 +2017,7 @@ bool scim_key_to_string (String &str, const KeyEvent & key);
  * @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.
@@ -2025,7 +2025,7 @@ bool scim_string_to_key (KeyEvent &key, const String & str);
  * @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.
@@ -2033,28 +2033,28 @@ bool scim_key_list_to_string (String &str, const KeyEventList & keylist);
  * @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.
@@ -2065,7 +2065,7 @@ String scim_keyboard_layout_get_display_name (KeyboardLayout layout);
  * 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.
@@ -2076,7 +2076,7 @@ KeyboardLayout scim_get_default_keyboard_layout ();
  * 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.
@@ -2088,7 +2088,7 @@ void scim_set_default_keyboard_layout (KeyboardLayout layout);
  * 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 */
index 77e1b0f..83b32ff 100644 (file)
@@ -45,7 +45,7 @@ namespace scim {
  * 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:
index be0300f..cc7d4ea 100644 (file)
@@ -50,7 +50,7 @@ namespace scim {
  * 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)
@@ -84,7 +84,7 @@ struct FilterInfo
  * 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;
 
@@ -272,7 +272,7 @@ typedef Pointer <FilterFactoryBase> FilterFactoryPointer;
  * 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;
 
index 90fe802..c658da6 100644 (file)
@@ -43,7 +43,7 @@ namespace scim {
  * @{
  */
 
-class FilterManager
+class EAPI FilterManager
 {
     class FilterManagerImpl;
     FilterManagerImpl *m_impl;
index 2d8ed91..408da99 100644 (file)
@@ -119,7 +119,7 @@ FilterModule::number_of_filters () const
 }
 
 
-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");
 }
index 07eeee3..202add3 100644 (file)
@@ -104,7 +104,7 @@ typedef bool (*FilterModuleGetFilterInfoFunc) (unsigned int index, FilterInfo &i
  * This is a wrapper of scim::Module class, which is specially
  * for manipulating the Filter modules.
  */
-class FilterModule
+class EAPI FilterModule
 {
     Module m_module;
 
@@ -191,7 +191,7 @@ public:
  * @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);
 
 /** @} */
 
index c83eea1..110ee9f 100644 (file)
@@ -57,7 +57,7 @@ namespace scim {
  * 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)
@@ -80,7 +80,7 @@ typedef Pointer <FrontEndBase> FrontEndPointer;
  * 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;
 
index 1085aa6..511eedd 100644 (file)
@@ -91,7 +91,7 @@ FrontEndModule::run () const
         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");
 }
index 544fe06..afe1841 100644 (file)
@@ -71,7 +71,7 @@ typedef void (*FrontEndModuleRunFunc)  (void);
  * This is a wrapper of scim::Module class, which is specially
  * for manipulating the frontend modules.
  */
-class FrontEndModule
+class EAPI FrontEndModule
 {
     Module       m_module;
 
@@ -139,7 +139,7 @@ public:
  * @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);
 
 /** @} */
 
index 58571b7..4e75466 100644 (file)
@@ -175,7 +175,7 @@ __initialize_config ()
     }
 }
 
-String
+EAPI String
 scim_global_config_read (const String &key, const String &defVal)
 {
     if (!__config_repository.initialized) __initialize_config ();
@@ -195,7 +195,7 @@ scim_global_config_read (const String &key, const String &defVal)
     return defVal;
 }
 
-int
+EAPI int
 scim_global_config_read (const String &key, int defVal)
 {
     if (!__config_repository.initialized) __initialize_config ();
@@ -216,7 +216,7 @@ scim_global_config_read (const String &key, int defVal)
     return defVal;
 }
 
-bool
+EAPI bool
 scim_global_config_read (const String &key, bool defVal)
 {
     if (!__config_repository.initialized) __initialize_config ();
@@ -241,7 +241,7 @@ scim_global_config_read (const String &key, bool defVal)
     return defVal;
 }
 
-double
+EAPI double
 scim_global_config_read (const String &key, double defVal)
 {
     if (!__config_repository.initialized) __initialize_config ();
@@ -262,7 +262,7 @@ scim_global_config_read (const String &key, double defVal)
     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 ();
@@ -286,7 +286,7 @@ scim_global_config_read (const String &key, const std::vector <String> &defVal)
     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 ();
@@ -316,7 +316,7 @@ scim_global_config_read (const String &key, const std::vector <int> &defVal)
     return defVal;
 }
 
-void
+EAPI void
 scim_global_config_write (const String &key, const String &val)
 {
     if (!__config_repository.initialized) __initialize_config ();
@@ -327,7 +327,7 @@ scim_global_config_write (const String &key, const String &val)
     }
 }
 
-void
+EAPI void
 scim_global_config_write (const String &key, int val)
 {
     if (!__config_repository.initialized) __initialize_config ();
@@ -340,7 +340,7 @@ scim_global_config_write (const String &key, int val)
     }
 }
 
-void
+EAPI void
 scim_global_config_write (const String &key, bool val)
 {
     if (!__config_repository.initialized) __initialize_config ();
@@ -351,7 +351,7 @@ scim_global_config_write (const String &key, bool val)
     }
 }
 
-void
+EAPI void
 scim_global_config_write (const String &key, double val)
 {
     if (!__config_repository.initialized) __initialize_config ();
@@ -364,7 +364,7 @@ scim_global_config_write (const String &key, double val)
     }
 }
 
-void
+EAPI void
 scim_global_config_write (const String &key, const std::vector <String> &val)
 {
     if (!__config_repository.initialized) __initialize_config ();
@@ -375,7 +375,7 @@ scim_global_config_write (const String &key, const std::vector <String> &val)
     }
 }
 
-void
+EAPI void
 scim_global_config_write (const String &key, const std::vector <int> &val)
 {
     if (!__config_repository.initialized) __initialize_config ();
@@ -392,7 +392,7 @@ scim_global_config_write (const String &key, const std::vector <int> &val)
     }
 }
 
-void
+EAPI void
 scim_global_config_reset (const String &key)
 {
     if (!__config_repository.initialized) __initialize_config ();
@@ -403,7 +403,7 @@ scim_global_config_reset (const String &key)
     }
 }
 
-bool
+EAPI bool
 scim_global_config_flush ()
 {
     if (!__config_repository.initialized)
index 29816b5..0152dc7 100644 (file)
@@ -54,7 +54,7 @@ namespace scim {
  *
  * @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.
@@ -64,7 +64,7 @@ String scim_global_config_read (const String &key, const String &defVal = String
  *
  * @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.
@@ -74,7 +74,7 @@ int    scim_global_config_read (const String &key, int defVal);
  *
  * @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.
@@ -84,7 +84,7 @@ bool   scim_global_config_read (const String &key, bool defVal);
  *
  * @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.
@@ -94,7 +94,7 @@ double scim_global_config_read (const String &key, double defVal);
  *
  * @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.
@@ -104,7 +104,7 @@ std::vector <String> scim_global_config_read (const String &key, const std::vect
  *
  * @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.
@@ -112,7 +112,7 @@ std::vector <int>    scim_global_config_read (const String &key, const std::vect
  * @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.
@@ -120,7 +120,7 @@ void scim_global_config_write (const String &key, const String &val);
  * @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.
@@ -128,7 +128,7 @@ void scim_global_config_write (const String &key, int val);
  * @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.
@@ -136,7 +136,7 @@ void scim_global_config_write (const String &key, bool val);
  * @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.
@@ -144,7 +144,7 @@ void scim_global_config_write (const String &key, double val);
  * @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.
@@ -152,20 +152,20 @@ void scim_global_config_write (const String &key, const std::vector <String> &va
  * @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
index 328592c..8e68a78 100644 (file)
@@ -54,7 +54,7 @@ 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)
@@ -205,7 +205,7 @@ typedef Slot2<void, const HelperAgent *, const std::vector<uint32> &>
  * This class implements all Socket Transaction protocol between
  * Helper object and Panel.
  */
-class HelperAgent
+class EAPI HelperAgent
 {
     class HelperAgentImpl;
     HelperAgentImpl *m_impl;
index 35358e5..bd85ce4 100644 (file)
@@ -53,7 +53,7 @@ namespace scim {
  * @brief This class is used to manage all helper objects.
  *
  */
-class HelperManager
+class EAPI HelperManager
 {
     class HelperManagerImpl;
     HelperManagerImpl *m_impl;
index 91cc809..85b5e44 100644 (file)
@@ -165,7 +165,7 @@ HelperModule::set_arg_info (int argc, char *argv []) const
         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");
 }
index f02ac72..1ad682a 100644 (file)
@@ -137,7 +137,7 @@ typedef void (*HelperModuleSetPathInfoFunc)       (const char *path);
  *
  * This class should not be used directly. HelperManager should be used instead.
  */
-class HelperModule
+class EAPI HelperModule
 {
     Module                          m_module;
 
@@ -233,7 +233,7 @@ public:
  * @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
index 39bddf7..98f0a9b 100644 (file)
@@ -48,7 +48,7 @@ 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;
 
@@ -158,7 +158,7 @@ typedef struct {
 /**
  * @brief This class hold all Hotkeys for each IMEngines.
  */
-class IMEngineHotkeyMatcher
+class EAPI IMEngineHotkeyMatcher
 {
     class IMEngineHotkeyMatcherImpl;
 
@@ -273,7 +273,7 @@ enum FrontEndHotkeyAction
 /**
  * @brief This class hold all FrontEnd specific Hotkeys, such as trigger keys, on/off keys, etc.
  */
-class FrontEndHotkeyMatcher
+class EAPI FrontEndHotkeyMatcher
 {
     class FrontEndHotkeyMatcherImpl;
 
index 985c2e0..a7f63af 100644 (file)
@@ -44,7 +44,7 @@ namespace scim {
 /**
  * @brief A class to convert strings between UCS-4 and local encodings.
  */
-class IConvert
+class EAPI IConvert
 {
     class IConvertImpl;
 
index 06fc975..1c2ae62 100644 (file)
@@ -88,7 +88,7 @@ enum IMEngineOption
  * 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)
@@ -160,7 +160,7 @@ typedef Slot3<void, IMEngineInstanceBase*,ISF_CANDIDATE_PORTRAIT_LINE_T,ISF_CAND
  * 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;
 
@@ -396,7 +396,7 @@ protected:
  * 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;
 
@@ -937,7 +937,7 @@ protected:
 /**
  * @brief A trivial IMEngine that do nothing.
  */
-class DummyIMEngineFactory : public IMEngineFactoryBase
+class EAPI DummyIMEngineFactory : public IMEngineFactoryBase
 {
 public:
     DummyIMEngineFactory ();
@@ -956,7 +956,7 @@ public:
     virtual IMEngineInstancePointer create_instance (const String& encoding, int id = -1);
 };
 
-class DummyIMEngineInstance : public IMEngineInstanceBase
+class EAPI DummyIMEngineInstance : public IMEngineInstanceBase
 {
 public:
     DummyIMEngineInstance (DummyIMEngineFactory *factory,
index 9d766d0..b0cefd9 100644 (file)
@@ -121,7 +121,7 @@ IMEngineModule::get_module_name () const
     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");
 }
index dd36567..452c6d9 100644 (file)
@@ -74,7 +74,7 @@ typedef IMEngineFactoryPointer (*IMEngineModuleCreateFactoryFunc) (unsigned int
  * 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;
@@ -152,7 +152,7 @@ public:
  * @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);
 
 /** @} */
 
index 1a48c0b..5165705 100644 (file)
@@ -56,7 +56,7 @@ namespace scim {
  * IMEngine should use its derivation class.
  * This class is the interface that uses within FrontEnd class.
  */
-class LookupTable
+class EAPI LookupTable
 {
     class LookupTableImpl;
 
@@ -251,7 +251,7 @@ public:
  * This class implements the LookupTable interface in a common way.
  *
  */
-class CommonLookupTable : public LookupTable
+class EAPI CommonLookupTable : public LookupTable
 {
     class CommonLookupTableImpl;
 
index 72c79c8..f1f7ef7 100644 (file)
@@ -86,7 +86,7 @@ _scim_get_module_paths (std::vector <String> &paths, const String &type)
     }
 }
 
-int
+EAPI int
 scim_get_module_list (std::vector <String>& mod_list, const String& type)
 {
     std::vector<String> paths;
index d47e129..4a22100 100644 (file)
@@ -39,14 +39,14 @@ namespace scim {
  * @{
  */
 
-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;
@@ -72,7 +72,7 @@ public:
     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 = "");
 
 /** @} */
 
index 5843948..925ea7f 100644 (file)
@@ -58,7 +58,7 @@ namespace scim {
  * 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;
 
index 5efd176..485f730 100644 (file)
@@ -67,7 +67,7 @@
 #include "scim_stl_map.h"
 
 
-scim::CommonLookupTable g_isf_candidate_table;
+EAPI scim::CommonLookupTable g_isf_candidate_table;
 
 
 namespace scim {
index d94ea2a..327d02a 100644 (file)
@@ -184,7 +184,7 @@ typedef struct DefaultIse
  * 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;
index a7fdb72..f040cac 100644 (file)
@@ -93,7 +93,7 @@ typedef Slot2<void, int, const std::vector<uint32> &>
  * 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;
index 10dc246..f49ae50 100644 (file)
@@ -42,7 +42,7 @@ namespace scim {
  * @{
  */
 
-class PanelError: public Exception
+class EAPI PanelError: public Exception
 {
 public:
     PanelError (const String& what_arg)
index 6e36711..21b723f 100644 (file)
@@ -69,7 +69,7 @@ namespace scim {
  *
  * All strings should be encoded into UTF-8.
  */
-class Property
+class EAPI Property
 {
     String m_key;
     String m_label;
index 1437b7e..83a4911 100644 (file)
@@ -56,7 +56,7 @@ class Signal;
 //! @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;
 
@@ -131,7 +131,7 @@ public:
 //! @class Signal
 //! @brief Base class for the C++ signal interface.
 
-class Signal
+class EAPI Signal
 {
     Signal(const Signal&);
     Signal& operator=(const Signal&);
index 37523ff..94ddef0 100644 (file)
@@ -54,7 +54,7 @@ namespace scim {
 //! @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&);
index 1a628ec..8ba937d 100644 (file)
@@ -62,7 +62,7 @@ typedef Signal2<void, SocketServer *, const Socket &>
  * 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)
@@ -99,7 +99,7 @@ enum SocketFamily
  *    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;
@@ -183,7 +183,7 @@ public:
  * Only the object of its derived classes SocketServer and SocketClient
  * can be created directly.
  */
-class Socket
+class EAPI Socket
 {
     class SocketImpl;
 
@@ -339,7 +339,7 @@ protected:
  * 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;
 
@@ -504,7 +504,7 @@ public:
  * 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;
 
@@ -553,21 +553,21 @@ public:
  *
  * 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.
@@ -575,19 +575,19 @@ String scim_get_default_socket_config_address ();
  * 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
@@ -615,7 +615,7 @@ int    scim_get_default_socket_timeout ();
  * @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,
@@ -645,7 +645,7 @@ bool   scim_socket_open_connection   (uint32       &key,
  * @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,
index 3835a52..e28c777 100644 (file)
@@ -72,7 +72,7 @@ enum TransactionDataType
  * 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)
@@ -86,7 +86,7 @@ class TransactionReader;
  * @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;
 
@@ -338,7 +338,7 @@ public:
 /**
  * @brief This class is used to read data from a transaction without changing it.
  */
-class TransactionReader
+class EAPI TransactionReader
 {
     class TransactionReaderImpl;
 
index 2254cbd..d261b74 100644 (file)
@@ -54,7 +54,7 @@
 
 namespace scim {
 
-int
+EAPI int
 utf8_mbtowc (ucs4_t *pwc, const unsigned char *src, int src_len)
 {
     if (!pwc)
@@ -129,7 +129,7 @@ utf8_mbtowc (ucs4_t *pwc, const unsigned char *src, int src_len)
         return RET_ILSEQ;
 }
 
-int
+EAPI int
 utf8_wctomb (unsigned char *dest, ucs4_t wc, int dest_size)
 {
     if (!dest)
@@ -163,7 +163,7 @@ utf8_wctomb (unsigned char *dest, ucs4_t wc, int dest_size)
     return count;
 }
 
-ucs4_t
+EAPI ucs4_t
 utf8_read_wchar (std::istream &is)
 {
     unsigned char utf8[6];
@@ -181,7 +181,7 @@ utf8_read_wchar (std::istream &is)
     return 0;
 }
 
-WideString
+EAPI WideString
 utf8_read_wstring (std::istream &is, ucs4_t delim, bool rm_delim)
 {
     WideString str;
@@ -198,7 +198,7 @@ utf8_read_wstring (std::istream &is, ucs4_t delim, bool rm_delim)
     return str;
 }
 
-std::ostream &
+EAPI std::ostream &
 utf8_write_wchar (std::ostream &os, ucs4_t wc)
 {
     unsigned char utf8[6];
@@ -210,7 +210,7 @@ utf8_write_wchar (std::ostream &os, ucs4_t wc)
     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)
@@ -219,7 +219,7 @@ utf8_write_wstring (std::ostream &os, const WideString & wstr)
     return os;
 }
 
-WideString
+EAPI WideString
 utf8_mbstowcs (const String & str)
 {
     WideString wstr;
@@ -238,7 +238,7 @@ utf8_mbstowcs (const String & str)
     return wstr;
 }
 
-WideString
+EAPI WideString
 utf8_mbstowcs (const char *str, int len)
 {
     WideString wstr;
@@ -260,7 +260,7 @@ utf8_mbstowcs (const char *str, int len)
     return wstr;
 }
 
-String
+EAPI String
 utf8_wcstombs (const WideString & wstr)
 {
     String str;
@@ -275,7 +275,7 @@ utf8_wcstombs (const WideString & wstr)
     return str;
 }
 
-String
+EAPI String
 utf8_wcstombs (const ucs4_t *wstr, int len)
 {
     String str;
@@ -298,7 +298,7 @@ utf8_wcstombs (const ucs4_t *wstr, int len)
     return str;
 }
 
-String
+EAPI String
 scim_validate_locale (const String& locale)
 {
     String good;
@@ -328,7 +328,7 @@ scim_validate_locale (const String& locale)
     return good;
 }
 
-String
+EAPI String
 scim_get_locale_encoding (const String& locale)
 {
     String last = String (setlocale (LC_CTYPE, 0));
@@ -357,7 +357,7 @@ scim_get_locale_encoding (const String& locale)
     return encoding;
 }
 
-int
+EAPI int
 scim_get_locale_maxlen (const String& locale)
 {
     int maxlen;
@@ -373,7 +373,7 @@ scim_get_locale_maxlen (const String& locale)
     return maxlen;
 }
 
-int
+EAPI int
 scim_split_string_list (std::vector<String>& vec, const String& str, char delim)
 {
     int count = 0;
@@ -401,7 +401,7 @@ scim_split_string_list (std::vector<String>& vec, const String& str, char delim)
     return count;
 }
 
-String
+EAPI String
 scim_combine_string_list (const std::vector<String>& vec, char delim)
 {
     String result;
@@ -413,7 +413,7 @@ scim_combine_string_list (const std::vector<String>& vec, char delim)
     return result;
 }
 
-bool
+EAPI bool
 scim_if_wchar_ucs4_equal ()
 {
     if (sizeof (wchar_t) != sizeof (ucs4_t))
@@ -520,7 +520,7 @@ static struct {
 /**
  * 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;
@@ -538,7 +538,7 @@ scim_wchar_to_full_width (ucs4_t code)
 /**
  * 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;
@@ -553,7 +553,7 @@ scim_wchar_to_half_width (ucs4_t code)
     return code;
 }
 
-String
+EAPI String
 scim_get_home_dir ()
 {
     const char * home_dir = 0;
@@ -575,7 +575,7 @@ scim_get_home_dir ()
     return String (home_dir);
 }
 
-String
+EAPI String
 scim_get_user_name ()
 {
     struct passwd *pw;
@@ -597,7 +597,7 @@ scim_get_user_name ()
     return String (uid_str);
 }
 
-String
+EAPI String
 scim_get_user_data_dir ()
 {
     String dir = scim_get_home_dir () + String ("/.scim");
@@ -605,7 +605,7 @@ scim_get_user_data_dir ()
     return dir;
 }
 
-String
+EAPI String
 scim_get_current_locale ()
 {
     char *locale = setlocale (LC_CTYPE, 0);
@@ -614,19 +614,19 @@ scim_get_current_locale ()
     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 ())
@@ -673,7 +673,7 @@ scim_load_file (const String &filename, char **bufptr)
     return size;
 }
 
-bool
+EAPI bool
 scim_make_dir (const String &dir)
 {
     std::vector <String> paths;
@@ -1000,13 +1000,13 @@ __find_language (const String &lang)
     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);
@@ -1017,7 +1017,7 @@ scim_get_language_name_english (const String &lang)
     return String ("Other");
 }
 
-String
+EAPI String
 scim_get_language_name_untranslated (const String &lang)
 {
     __Language *result = __find_language (lang);
@@ -1032,7 +1032,7 @@ scim_get_language_name_untranslated (const String &lang)
     return String (_("Other"));
 }
 
-String
+EAPI String
 scim_get_language_locales (const String &lang)
 {
     __Language *result = __find_language (lang);
@@ -1069,7 +1069,7 @@ scim_get_language_locales (const String &lang)
     return scim_combine_string_list (locales, ',');
 }
 
-String
+EAPI String
 scim_get_locale_language (const String &locale)
 {
     if (locale.length () == 0) return String ();
@@ -1078,7 +1078,7 @@ scim_get_locale_language (const String &locale)
     return scim_validate_language (str.substr (0, str.find ('@')));
 }
 
-String
+EAPI String
 scim_validate_language (const String &lang)
 {
     __Language *result = __find_language (lang);
@@ -1090,7 +1090,7 @@ scim_validate_language (const String &lang)
     return String ("~other");
 }
 
-String
+EAPI String
 scim_get_normalized_language (const String &lang)
 {
     __Language *result = __find_language (lang);
@@ -1109,7 +1109,7 @@ scim_get_normalized_language (const String &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,
@@ -1172,7 +1172,7 @@ int  scim_launch (bool          daemon,
   #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 [])
@@ -1244,7 +1244,7 @@ int scim_launch_panel (bool          daemon,
     return -1;
 }
 
-void
+EAPI void
 scim_usleep (unsigned int usec)
 {
     if (usec == 0) return;
@@ -1272,7 +1272,7 @@ scim_usleep (unsigned int usec)
 #endif
 }
 
-void scim_daemon ()
+EAPI void scim_daemon ()
 {
 #if HAVE_DAEMON
     if (daemon (0, 0) == -1)
@@ -1367,7 +1367,7 @@ void ISF_PROF_DEBUG_TIME (char const* func, int line, char const* str)
     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;
index bd13535..a4e067e 100644 (file)
@@ -73,7 +73,7 @@ namespace scim {
  *
  * @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.
@@ -84,7 +84,7 @@ int utf8_mbtowc (ucs4_t *pwc, const unsigned char *src, int src_len);
  *
  * @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.
@@ -92,7 +92,7 @@ int utf8_wctomb (unsigned char *dest, ucs4_t wc, int dest_size);
  * @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.
@@ -101,7 +101,7 @@ WideString utf8_mbstowcs (const String & str);
  * @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.
@@ -110,7 +110,7 @@ WideString utf8_mbstowcs (const char *str, int len = -1);
  *
  * @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.
@@ -120,7 +120,7 @@ String utf8_wcstombs (const WideString & wstr);
  *
  * @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.
@@ -131,7 +131,7 @@ String utf8_wcstombs (const ucs4_t *wstr, int len = -1);
  *
  * @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.
@@ -142,7 +142,7 @@ ucs4_t utf8_read_wchar (std::istream &is);
  * @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.
@@ -154,7 +154,7 @@ std::ostream & utf8_write_wchar (std::ostream &os, ucs4_t wc);
  * @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.
@@ -165,7 +165,7 @@ WideString utf8_read_wstring (std::istream &is, ucs4_t delim = (ucs4_t) '\n', bo
  * @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.
@@ -173,7 +173,7 @@ std::ostream & utf8_write_wstring (std::ostream &os, const WideString & wstr);
  * @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));
@@ -188,7 +188,7 @@ void scim_uint32tobytes (unsigned char *bytes, uint32 n)
  * @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])
@@ -203,7 +203,7 @@ uint32 scim_bytestouint32 (const unsigned char *bytes)
  * @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));
@@ -216,7 +216,7 @@ void scim_uint16tobytes (unsigned char *bytes, uint16 n)
  * @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);
@@ -228,7 +228,7 @@ uint16 scim_bytestouint16 (const unsigned char *bytes)
  * @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.
@@ -236,19 +236,19 @@ String scim_validate_locale (const String& 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.
@@ -256,7 +256,7 @@ String scim_get_current_language ();
  * @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.
@@ -266,7 +266,7 @@ int scim_get_locale_maxlen (const String& locale);
  * @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.
@@ -275,43 +275,43 @@ int scim_split_string_list (std::vector<String>& vec, const String& str, char de
  * @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.
@@ -324,7 +324,7 @@ String scim_get_user_data_dir ();
  * @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.
@@ -333,28 +333,28 @@ size_t scim_load_file (const String &filename, char **bufptr);
  *
  * @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.
@@ -364,21 +364,21 @@ String scim_get_language_name_untranslated (const String &lang);
  * @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.
@@ -393,7 +393,7 @@ String scim_validate_language (const String &lang);
  * @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.
@@ -410,7 +410,7 @@ String scim_get_normalized_language (const String &lang);
  * @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,
@@ -431,7 +431,7 @@ int  scim_launch (bool          daemon,
  * @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);
@@ -441,12 +441,12 @@ int scim_launch_panel (bool          daemon,
  *
  * @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.
@@ -489,7 +489,7 @@ void ISF_PROF_DEBUG_TIME_END (char const* format, char const* func, int line);
     #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
 {
diff --git a/ism/src/scim_visibility.h b/ism/src/scim_visibility.h
new file mode 100644 (file)
index 0000000..819c7ec
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * 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
index 2f07856..9146c19 100644 (file)
@@ -125,7 +125,7 @@ initialize_modifier_bits (Display *display)
     XFreeModifiermap (mods);
 }
 
-KeyEvent
+EAPI KeyEvent
 scim_x11_keyevent_x11_to_scim (Display *display, const XKeyEvent &xkey)
 {
     KeyEvent  scimkey;
@@ -157,7 +157,7 @@ scim_x11_keyevent_x11_to_scim (Display *display, const XKeyEvent &xkey)
     return scimkey;
 }
 
-XKeyEvent
+EAPI XKeyEvent
 scim_x11_keyevent_scim_to_x11 (Display *display, const KeyEvent &scimkey)
 {
     XKeyEvent xkey;
@@ -187,7 +187,7 @@ scim_x11_keyevent_scim_to_x11 (Display *display, const KeyEvent &scimkey)
     return xkey;
 }
 
-uint16
+EAPI uint16
 scim_x11_keymask_x11_to_scim (Display *display, unsigned int xkeystate)
 {
     uint16 mask = 0;
@@ -237,7 +237,7 @@ scim_x11_keymask_x11_to_scim (Display *display, unsigned int xkeystate)
     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;
 
index c4fb75e..57fb07a 100644 (file)
 /**
  * @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
index 076dc30..83c5bcc 100755 (executable)
@@ -3,7 +3,7 @@
 
 Name:       isf
 Summary:    Input Service Framework
-Version:    2.4.6319
+Version:    2.4.6322
 Release:    1
 Group:      System Environment/Libraries
 License:    LGPL
@@ -44,6 +44,8 @@ This package contains ISF header files for ISE development.
 %setup -q
 
 %build
+CFLAGS+=" -fvisibility=hidden "; export CFLAGS
+CXXFLAGS+=" -fvisibility=hidden -fvisibility-inlines-hidden ";export CXXFLAGS
 
 %autogen
 %configure --disable-static \
index 93a58a4..25d3f23 100644 (file)
@@ -1,3 +1,7 @@
+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