--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#include "ime_info.h"
+#include <vector>
+#include <iostream>
+#include <algorithm>
+#include <strings.h>
+
+class ime_info_compare
+{
+ public:
+ bool operator()(const ime_info_s &first, const ime_info_s &sec)
+ {
+ return (strcasecmp(first.label, sec.label) < 0);
+ }
+};
+
+void im_setting_sort_ime_info(std::vector<ime_info_s> &preinstall, std::vector<ime_info_s> &user, std::vector<ime_info_s> &ime_info_list)
+{
+ std::sort(preinstall.begin(), preinstall.end(), ime_info_compare());
+ std::sort(user.begin(), user.end(), ime_info_compare());
+ for (unsigned int i = 0; i < preinstall.size(); ++i)
+ {
+ ime_info_list.push_back(preinstall[i]);
+ }
+ for (unsigned int i = 0; i < user.size(); ++i)
+ {
+ ime_info_list.push_back(user[i]);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#include <vector>
+#include <isf_control.h>
+
+#ifndef __IME_INFO_H
+#define __IME_INFO_H
+
+void im_setting_sort_ime_info(std::vector<ime_info_s> &preinstall, std::vector<ime_info_s> &user, std::vector<ime_info_s> &ime_info_list);
+
+#endif
}
#endif
+Evas_Object *im_setting_genlist_item_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+ sel_cb_data *cb_data = (sel_cb_data *)data;
+ if (!cb_data)
+ return NULL;
+
+ int index = cb_data->index;
+ Elm_Object_Item *it = elm_genlist_nth_item_get(obj, index);
+
+ if (!strcmp(part, "elm.swallow.end") ||
+ !strcmp(part, "elm.icon")) {
+ Evas_Object *radio = elm_radio_add(obj);
+ elm_object_style_set(radio, "list");
+ elm_radio_state_value_set(radio, index);
+ evas_object_propagate_events_set(radio, EINA_TRUE);
+ elm_radio_group_add(radio, cb_data->group_radio);
+ evas_object_show(radio);
+
+ elm_atspi_accessible_relationship_append(it, ELM_ATSPI_RELATION_DESCRIBED_BY, radio);
+ elm_atspi_accessible_relationship_append(radio, ELM_ATSPI_RELATION_CONTROLLED_BY, it);
+
+ return radio;
+ }
+ return NULL;
+}
+
Evas_Object *im_setting_genlist_create(Evas_Object* parent, Evas_Object* conform, Evas_Object **cgenlist)
{
Evas_Object *genlist = elm_genlist_add(parent);
#ifndef __INPUTMETHOD_SETTING_GENLIST_H
#define __INPUTMETHOD_SETTING_GENLIST_H
+#ifdef _WEARABLE
+#define IME_SETTING_LIST_1LINE_STYLE "1text.1icon.1"
+#define IME_SETTING_LIST_2LINE_STYLE "1text.1icon.1"
+#elif _MOBILE
+#define IME_SETTING_LIST_1LINE_STYLE "type1"
+#define IME_SETTING_LIST_2LINE_STYLE "type1"
+#else
+#define IME_SETTING_LIST_1LINE_STYLE "1line"
+#define IME_SETTING_LIST_2LINE_STYLE "2line"
+#endif
+
+typedef struct {
+ void *data;
+ int index;
+ Evas_Object *group_radio;
+} sel_cb_data;
+
Evas_Object *im_setting_genlist_create(Evas_Object* parent, Evas_Object* conform, Evas_Object **cgenlist = NULL);
+Evas_Object *im_setting_genlist_item_icon_get(void *data, Evas_Object *obj, const char *part);
-#endif
\ No newline at end of file
+#endif
SET(SRC_LIST
../common/input_method_setting_genlist.cpp
+ ../common/ime_info.cpp
input_method_setting_list_ui.cpp
input_method_setting_list.cpp
input_method_setting_list_popup_view.cpp
#include "input_method_setting_list_ui.h"
#include "input_method_setting_list_popup_view.h"
#include "../common/input_method_setting_genlist.h"
+#include "../common/ime_info.h"
#include <string>
#include <efl_extension.h>
#include <vector>
#include <isf_control.h>
-#include <algorithm>
#include <inputmethod_manager.h>
#include <vconf.h>
static Evas_Object *group_radio = NULL;
static int g_active_ime_id = -1;
-typedef struct {
- void *data;
- int index;
-} sel_cb_data;
-
-class ime_info_compare
-{
- public:
- bool operator()(const ime_info_s &first, const ime_info_s &sec)
- {
- return (strcasecmp(first.label, sec.label) < 0);
- }
-};
-
static int selected_index = 0;
-static void im_setting_list_sort_ime_info(std::vector<ime_info_s> &preinstall, std::vector<ime_info_s> &user)
-{
- std::sort(preinstall.begin(), preinstall.end(), ime_info_compare());
- std::sort(user.begin(), user.end(), ime_info_compare());
- for (unsigned int i = 0; i < preinstall.size(); ++i)
- {
- g_active_ime_info_list.push_back(preinstall[i]);
- }
- for (unsigned int i = 0; i < user.size(); ++i)
- {
- g_active_ime_info_list.push_back(user[i]);
- }
-}
-
static void im_setting_list_load_active_ime_info(void)
{
std::vector<ime_info_s> active_ime_info_list_preinstall;
free(info);
}
- im_setting_list_sort_ime_info(active_ime_info_list_preinstall, active_ime_info_list_user);
+ im_setting_sort_ime_info(active_ime_info_list_preinstall, active_ime_info_list_user, g_active_ime_info_list);
for (unsigned int i = 0; i < g_active_ime_info_list.size(); ++i)
{
if (active_ime_appid && (!strcmp(active_ime_appid, g_active_ime_info_list[i].appid)))
return NULL;
}
-static Evas_Object *im_setting_list_genlist_item_icon_get(void *data, Evas_Object *obj, const char *part)
-{
- sel_cb_data *cb_data = (sel_cb_data *)data;
- if (!cb_data)
- return NULL;
-
- int index = cb_data->index;
- Elm_Object_Item *it = elm_genlist_nth_item_get(obj, index);
-
- if (!strcmp(part, "elm.swallow.end") ||
- !strcmp(part, "elm.icon")) {
- Evas_Object *radio = elm_radio_add(obj);
- elm_object_style_set(radio, "list");
- elm_radio_state_value_set(radio, index);
- evas_object_propagate_events_set(radio, EINA_TRUE);
- elm_radio_group_add(radio, group_radio);
- evas_object_show(radio);
-
- elm_atspi_accessible_relationship_append(it, ELM_ATSPI_RELATION_DESCRIBED_BY, radio);
- elm_atspi_accessible_relationship_append(radio, ELM_ATSPI_RELATION_CONTROLLED_BY, it);
-
- return radio;
- }
- return NULL;
-}
-
static void im_setting_list_genlist_item_del_cb(void *data, Evas_Object *obj)
{
sel_cb_data *cb_data = (sel_cb_data *)data;
{
itc_im_list = elm_genlist_item_class_new();
if (itc_im_list) {
-#ifdef _WEARABLE
- itc_im_list->item_style = "1text.1icon.1";
-#elif _MOBILE
- itc_im_list->item_style = "type1";
-#else
- itc_im_list->item_style = "1line";
-#endif
+ itc_im_list->item_style = IME_SETTING_LIST_1LINE_STYLE;
itc_im_list->func.text_get = im_setting_list_genlist_item_label_get;
- itc_im_list->func.content_get = im_setting_list_genlist_item_icon_get;
+ itc_im_list->func.content_get = im_setting_genlist_item_icon_get;
itc_im_list->func.state_get = NULL;
itc_im_list->func.del = im_setting_list_genlist_item_del_cb;
}
sel_cb_data *cb_data = new sel_cb_data;
cb_data->data = data;
cb_data->index = i;
+ cb_data->group_radio = group_radio;
elm_genlist_item_append(genlist,
itc_im_list,
(void *)(cb_data),
sel_cb_data *cb_data = new sel_cb_data;
cb_data->data = data;
cb_data->index = i;
+ cb_data->group_radio = group_radio;
elm_genlist_item_append(genlist,
itc_im_list,
(void *)(cb_data),
#include "input_method_setting_list_ui.h"
#include "input_method_setting_list_popup_view.h"
#include "../common/input_method_setting_genlist.h"
+#include "../common/ime_info.h"
#include <string>
#include <app.h>
#include <vector>
-#include <algorithm>
#include <tzplatform_config.h>
#include <inputmethod_manager.h>
#include <package_manager.h>
Elm_Object_Item *item;
} Item_Data;
-class ime_info_compare
-{
- public:
- bool operator()(const ime_info_s &first, const ime_info_s &sec)
- {
- return (strcasecmp(first.label, sec.label) < 0);
- }
-};
-
typedef void (*popup_ok_cb)(void *data, Evas_Object *obj, void *event_info);
typedef void (*popup_cancel_cb)(void *data, Evas_Object *obj, void *event_info);
-static std::vector<ime_info_s> g_ime_info_list;
+std::vector<ime_info_s> g_ime_info_list;
static Elm_Genlist_Item_Class *itc_im_list_keyboard_list = NULL;
static Elm_Genlist_Item_Class *itc_im_list_group = NULL;
static Elm_Genlist_Item_Class *itc_im_list_item = NULL;
return bg;
}
-static void im_setting_list_sort_ime_info(std::vector<ime_info_s> &preinstall, std::vector<ime_info_s> &user)
-{
- std::sort(preinstall.begin(), preinstall.end(), ime_info_compare());
- std::sort(user.begin(), user.end(), ime_info_compare());
- for (unsigned int i = 0; i < preinstall.size(); ++i)
- {
- g_ime_info_list.push_back(preinstall[i]);
- }
- for (unsigned int i = 0; i < user.size(); ++i)
- {
- g_ime_info_list.push_back(user[i]);
- }
-}
-
static void im_setting_list_load_ime_info(void)
{
std::vector<ime_info_s> ime_info_list_preinstall;
} else {
LOGW("isf_control_get_all_ime_info failed\n");
}
- im_setting_list_sort_ime_info(ime_info_list_preinstall, ime_info_list_user);
+ im_setting_sort_ime_info(ime_info_list_preinstall, ime_info_list_user, g_ime_info_list);
}
static int im_setting_list_get_active_ime_index(void)
itc_im_list_keyboard_list = elm_genlist_item_class_new();
if (itc_im_list_keyboard_list)
{
-#ifdef _WEARABLE
- itc_im_list_keyboard_list->item_style = "1text.1icon.1";
-#elif _MOBILE
- itc_im_list_keyboard_list->item_style = "type1";
-#else
- itc_im_list_keyboard_list->item_style = "2line";
-#endif
+ itc_im_list_keyboard_list->item_style = IME_SETTING_LIST_2LINE_STYLE;
itc_im_list_keyboard_list->func.text_get = im_setting_list_genlist_keyboard_list_item_label_get;
itc_im_list_keyboard_list->func.content_get = im_setting_list_genlist_keyboard_list_item_icon_get;
itc_im_list_keyboard_list->func.state_get = NULL;
SET(SRC_LIST
../common/input_method_setting_genlist.cpp
+ ../common/ime_info.cpp
input_method_setting_selector_ui.cpp
input_method_setting_selector.cpp
)
#include <app.h>
#include <vector>
#include <isf_control.h>
-#include <algorithm>
#include <tzplatform_config.h>
#include <inputmethod_manager.h>
#include "../common/input_method_setting_genlist.h"
+#include "../common/ime_info.h"
#define IM_SETTING_SELECTOR_PACKAGE PACKAGE
#define IM_SETTING_SELECTOR_LOCALE_DIR tzplatform_mkpath(TZ_SYS_RO_APP, PACKAGE_NAME"/res/locale")
static Evas_Object *group_radio = NULL;
static int g_active_ime_id = -1;
-typedef struct {
- void *data;
- int index;
-} sel_cb_data;
-
-class ime_info_compare
-{
- public:
- bool operator()(const ime_info_s &first, const ime_info_s &sec)
- {
- return (strcasecmp(first.label, sec.label) < 0);
- }
-};
-
static int selected_index = 0;
static void im_setting_selector_text_domain_set(void)
return eo;
}
-static void im_setting_selector_sort_ime_info(std::vector<ime_info_s> &preinstall, std::vector<ime_info_s> &user)
-{
- std::sort(preinstall.begin(), preinstall.end(), ime_info_compare());
- std::sort(user.begin(), user.end(), ime_info_compare());
- for (unsigned int i = 0; i < preinstall.size(); ++i)
- {
- g_ime_info_list.push_back(preinstall[i]);
- }
- for (unsigned int i = 0; i < user.size(); ++i)
- {
- g_ime_info_list.push_back(user[i]);
- }
-}
-
static void im_setting_selector_load_ime_info(void)
{
std::vector<ime_info_s> ime_info_list_preinstall;
free(info);
}
- im_setting_selector_sort_ime_info(ime_info_list_preinstall, ime_info_list_user);
+ im_setting_sort_ime_info(ime_info_list_preinstall, ime_info_list_user, g_ime_info_list);
for (unsigned int i = 0; i < g_ime_info_list.size(); ++i)
{
if (active_ime_appid && (!strcmp(active_ime_appid, g_ime_info_list[i].appid)))
return NULL;
}
-static Evas_Object *im_setting_selector_genlist_item_icon_get(void *data, Evas_Object *obj, const char *part)
-{
- sel_cb_data *cb_data = (sel_cb_data *)data;
- if (!cb_data)
- return NULL;
-
- int index = cb_data->index;
- Elm_Object_Item *it = elm_genlist_nth_item_get(obj, index);
-
- if (!strcmp(part, "elm.swallow.end") ||
- !strcmp(part, "elm.icon")) {
- Evas_Object *radio = elm_radio_add(obj);
- elm_object_style_set(radio, "list");
- elm_radio_state_value_set(radio, index);
- evas_object_propagate_events_set(radio, EINA_TRUE);
- elm_radio_group_add(radio, group_radio);
- evas_object_show(radio);
-
- elm_atspi_accessible_relationship_append(it, ELM_ATSPI_RELATION_DESCRIBED_BY, radio);
- elm_atspi_accessible_relationship_append(radio, ELM_ATSPI_RELATION_CONTROLLED_BY, it);
-
- return radio;
- }
- return NULL;
-}
-
static void
im_setting_selector_genlist_item_del_cb(void *data, Evas_Object *obj)
{
{
itc_im_selector = elm_genlist_item_class_new();
if (itc_im_selector) {
-#ifdef _WEARABLE
- itc_im_selector->item_style = "1text.1icon.1";
-#elif _MOBILE
- itc_im_selector->item_style = "type1";
-#else
- itc_im_selector->item_style = "1line";
-#endif
+ itc_im_selector->item_style = IME_SETTING_LIST_1LINE_STYLE;
itc_im_selector->func.text_get = im_setting_selector_genlist_item_label_get;
- itc_im_selector->func.content_get = im_setting_selector_genlist_item_icon_get;
+ itc_im_selector->func.content_get = im_setting_genlist_item_icon_get;
itc_im_selector->func.state_get = NULL;
itc_im_selector->func.del = im_setting_selector_genlist_item_del_cb;
}
sel_cb_data *cb_data = new sel_cb_data;
cb_data->data = data;
cb_data->index = i;
+ cb_data->group_radio = group_radio;
elm_genlist_item_append(ad->genlist,
itc_im_selector,
sel_cb_data *cb_data = new sel_cb_data;
cb_data->data = data;
cb_data->index = i;
+ cb_data->group_radio = group_radio;
+
elm_genlist_item_append(genlist,
itc_im_selector,
(void *)(cb_data),