void *data;
}popup_cb_data;
+void im_setting_list_update_window(void *data);
+
static void im_setting_list_text_domain_set(void)
{
bindtextdomain(IM_SETTING_PACKAGE, IM_SETTING_LOCALE_DIR);
return (iter-g_ime_info_list.begin());
}
-static void im_setting_list_show_ise_selector(void)
+static void
+im_setting_list_app_control_reply_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data)
+{
+ if (!request || !reply) {
+ LOGD("app_control handle is null");
+ return;
+ }
+ if (result == APP_CONTROL_RESULT_SUCCEEDED) {
+ char *value = NULL;
+ int res = app_control_get_extra_data(reply, "result", &value);
+ if (APP_CONTROL_ERROR_NONE == res && NULL != value) {
+ im_setting_list_update_window(user_data);
+ }
+ if (value){
+ free(value);
+ }
+ }
+}
+
+static void im_setting_list_show_ise_selector(void *data)
{
int ret;
app_control_h app_control;
}
app_control_add_extra_data(app_control, "caller", "settings");
- ret = app_control_send_launch_request(app_control, NULL, NULL);
+ ret = app_control_send_launch_request(app_control, im_setting_list_app_control_reply_cb, data);
if (ret != APP_CONTROL_ERROR_NONE) {
LOGD("app_control_send_launch_request returned %d, %s\n", ret, get_error_message(ret));
app_control_destroy(app_control);
{
Elm_Object_Item *item = (Elm_Object_Item *)event_info;
elm_genlist_item_selected_set (item, EINA_FALSE);
- im_setting_list_show_ise_selector();
+ im_setting_list_show_ise_selector(data);
}
static void im_setting_list_keyboard_setting_item_sel_cb(void *data, Evas_Object *obj, void *event_info)
NULL,
ELM_GENLIST_ITEM_NONE,
im_setting_list_set_default_keyboard_item_sel_cb,
- NULL);
+ data);
sprintf(item_text[1].main_text, "%s", IM_SETTING_LIST_KEYBOARD_SETTING);
Elm_Object_Item *item = elm_genlist_item_append(ad->genlist,
static Evas_Object *group_radio = NULL;
static int g_active_ime_id = -1;
+typedef struct {
+ void *data;
+ int index;
+}sel_cb_data;
+
static void im_setting_selector_text_domain_set(void)
{
bindtextdomain(IM_SETTING_PACKAGE, IM_SETTING_LOCALE_DIR);
static void im_setting_selector_ise_sel_cb(void *data, Evas_Object *obj, void *event_info)
{
- int index = (int)data;
+ sel_cb_data * cb_data = (sel_cb_data *)data;
+ int index = cb_data->index;
+ appdata *ad = (appdata *)(cb_data->data);
+
Elm_Object_Item *item = (Elm_Object_Item *)event_info;
if (!item)
return;
im_setting_selector_update_radio_state(item, obj, index);
+
+ if(ad->caller){
+ app_control_h reply;
+ app_control_create(&reply);
+ app_control_add_extra_data(reply, "result", g_ime_info_list[g_active_ime_id].appid);
+ app_control_reply_to_launch_request(reply, ad->caller, APP_CONTROL_RESULT_SUCCEEDED);
+ app_control_destroy(reply);
+ }
+ delete cb_data;
ui_app_exit();
}
/* keyboard list */
for (i = 0; i < g_ime_info_list.size(); i++) {
+ sel_cb_data *cb_data = new sel_cb_data;
+ cb_data->data = data;
+ cb_data->index = i;
elm_genlist_item_append(ad->genlist,
itc_im_selector,
(void *)(i),
NULL,
ELM_GENLIST_ITEM_NONE,
im_setting_selector_ise_sel_cb,
- (void *)(i));
+ (void *)(cb_data));
}
elm_radio_value_set(group_radio, g_active_ime_id);
}