Eina_Bool exist_in_view;
enum indicator_icon_ani ani;
-#ifdef _SUPPORT_SCREEN_READER
- int (*register_tts) (void*, int);
- char *(*access_cb)(void *, Evas_Object *);
- int tts_enable;
-#endif
int digit_area;
Eina_Bool initialized; /* TRUE is module was correctly initialized */
} icon_s;
*/
extern void modules_init_first(void *data);
-#ifdef _SUPPORT_SCREEN_READER
-extern void modules_register_tts(void *data);
-#endif
-
/**
* @}
*/
*/
bool util_string_prefix_check(const char *prefix, const char *str);
-#ifdef _SUPPORT_SCREEN_READER
-extern Evas_Object *util_access_object_register(Evas_Object *object, Evas_Object *layout);
-extern void util_access_object_unregister(Evas_Object *object);
-extern void util_access_object_info_set(Evas_Object *object, int info_type, char *info_text);
-extern void util_icon_access_register(icon_s *icon);
-extern void util_icon_access_unregister(icon_s *icon);
-#endif /** _SUPPORT_SCREEN_READER */
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
}
}
PART_SWALLOW_SET( "elm.swallow.icon", "padding.left", "padding.right" )
-
-#ifdef _SUPPORT_SCREEN_READER
- part {
- name: "elm.rect.icon.access";
- type: RECT;
- scale: 0;
- description {
- state: "default" 0.0;
- rel1.to: "elm.swallow.icon";
- rel2.to: "elm.swallow.icon";
- color:0 0 0 0;
- visible: 1;
- }
- }
-#endif
}
+
programs {
PROGRAM_SET( "elm.swallow.icon", "elm.swallow.icon")
}
visible: 0;
}
}
-
-#ifdef _SUPPORT_SCREEN_READER
- part {
- name: "elm.rect.icon.access";
- type: RECT;
- scale: 0;
- description {
- state: "default" 0.0;
- rel1.to: "elm.swallow.icon";
- rel2.to: "elm.swallow.icon";
- color:0 0 0 0;
- visible: 1;
- }
- }
-#endif
}
programs {
PROGRAM_SET( "elm.swallow.icon", "elm.swallow.icon")
visible: 0;
}
}
-
-#ifdef _SUPPORT_SCREEN_READER
- part {
- name: "elm.rect.icon.access";
- type: RECT;
- scale: 0;
- description {
- state: "default" 0.0;
- rel1.to: "elm.swallow.icon";
- rel2.to: "elm.swallow.icon";
- color:0 0 0 0;
- visible: 1;
- }
- }
-#endif
}
programs {
PROGRAM_SET( "elm.swallow.icon", "elm.swallow.icon")
/* more */
FIXED_RECT_FROM_RIGHT( "elm.rect.more_noti", "elm.swallow.noti", "elm.rect.bg", DEFAULT_ICON_PADDING, 0 0 255 255, 1)
-#ifdef _SUPPORT_SCREEN_READER
- part {
- name: elm.swallow.fixed9.access;
- type: RECT;
- scale: 0;
- description {
- state: "default" 0.0;
- fixed: 1 0;
- rel1.to: elm.swallow.fixed9;
- rel2.to: elm.swallow.fixed9;
- visible: 1;
- color:0 0 0 0;
- }
- description {
- state: "hide" 0.0;
- inherit: "default" 0.0;
- visible: 0;
- }
- }
-#endif
-
part {
name: "elm.swallow.more_noti";
type: SWALLOW;
align: 0.0 0.0;
}
}
-
-#ifdef _SUPPORT_SCREEN_READER
- part {
- name: "elm.rect.clock.access";
- type: RECT;
- scale: 0;
- description {
- state: "default" 0.0;
- rel1 { relative: 0.0 0.0; to_x: "elm.swallow.fixed5"; to_y: "elm.swallow.fixed5"; }
- rel2 { relative: 1.0 1.0; to_x: "elm.rect.clock"; to_y: "elm.rect.clock"; }
- visible: 1;
- color:0 0 0 0;
- }
- }
-#endif
}
programs {
_E("default");
break;
}
-#ifdef _SUPPORT_SCREEN_READER
- util_icon_access_register(icon);
-#endif
}
_E("default");
break;
}
-#ifdef _support_screen_reader
- util_icon_access_register(icon);
-#endif
if (icon->area == INDICATOR_ICON_AREA_NOTI || icon->area == INDICATOR_ICON_AREA_ALARM)
util_start_noti_ani(icon);
icon->exist_in_view = EINA_FALSE;
*list = eina_list_remove(*list, icon);
-#ifdef _SUPPORT_SCREEN_READER
- util_icon_access_unregister(icon);
-#endif
-
if (icon->obj_exist == EINA_TRUE) {
if (icon_del(icon) == EINA_TRUE) {
icon->obj_exist = EINA_FALSE;
}
}
-static void _indicator_ecore_evas_msg_parent_handle(Ecore_Evas *ee, int msg_domain, int msg_id, void *data, int size)
-{
- ret_if(!data);
-
-#ifdef _SUPPORT_SCREEN_READER
- if (msg_domain == MSG_DOMAIN_CONTROL_ACCESS) {
- struct appdata *ad = (struct appdata *)ecore_evas_data_get(ee,"indicator_app_data");
-
- ret_if(!ad);
-
- Elm_Access_Action_Info *action_info;
- Evas_Object* win = NULL;
- action_info = data;
-
- win = ad->win.win;
-
- if (msg_id == ELM_ACCESS_ACTION_ACTIVATE) {
- elm_access_action(win, action_info->action_type,action_info);
- } else if (msg_id == ELM_ACCESS_ACTION_HIGHLIGHT_NEXT) {
- action_info->highlight_cycle = EINA_TRUE;
- elm_access_action(win,action_info->action_type,action_info);
- } else if (msg_id == ELM_ACCESS_ACTION_HIGHLIGHT_PREV) {
- action_info->highlight_cycle = EINA_TRUE;
- elm_access_action(win,action_info->action_type,action_info);
- } else if (msg_id == ELM_ACCESS_ACTION_UNHIGHLIGHT) {
- elm_access_action(win,action_info->action_type,action_info);
- } else if (msg_id == ELM_ACCESS_ACTION_READ) {
- elm_access_action(win,action_info->action_type,action_info);
- }
- }
-#endif /* _SUPPORT_SCREEN_READER */
-}
-
-static void _register_event_handler_both(win_info *win, void *data)
-{
- Ecore_Evas *ee;
-
- ret_if(!win);
-
- ee = ecore_evas_ecore_evas_get(evas_object_evas_get(win->win));
-
- evas_object_smart_callback_add(win->win,"delete,request", _indicator_window_delete_cb, data);
- ecore_evas_callback_msg_parent_handle_set(ee, _indicator_ecore_evas_msg_parent_handle);
- ecore_evas_data_set(ee,"indicator_app_data",data);
-}
-
-
static void register_event_handler(void *data)
{
struct appdata *ad = data;
ad->active_indi_win = -1;
- _register_event_handler_both(&(ad->win),data);
+ evas_object_smart_callback_add(ad->win.win,"delete,request", _indicator_window_delete_cb, data);
int err = device_add_callback(DEVICE_CALLBACK_DISPLAY_STATE, _indicator_notify_pm_state_cb, ad);
if (err != DEVICE_ERROR_NONE) {
static int language_changed_cb(void *data);
static int region_changed_cb(void *data);
static int wake_up_cb(void *data);
-#ifdef _SUPPORT_SCREEN_READER
-static int register_clock_tts(void *data,int win_type);
-#endif
#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED8
#define MODULE_NAME "clock"
static void indicator_get_apm_by_region(char* output, void* data);
static void indicator_get_time_by_region(char* output, void* data);
-#ifdef _SUPPORT_SCREEN_READER
-static void ICU_set_timezone(const char *timezone);
-#endif
-
icon_s sysclock = {
.type = INDICATOR_TXT_ICON,
.name = MODULE_NAME,
return;
}
-
-
-#ifdef _SUPPORT_SCREEN_READER
-static void ICU_set_timezone(const char *timezone)
-{
- i18n_timezone_h tmz;
-
- if (timezone == NULL) {
- _E("TIMEZONE is NULL");
- return;
- }
-
- int ret = i18n_timezone_create(&tmz, timezone);
- if (ret != I18N_ERROR_NONE) {
- _E("Unable to create timezone handle from %s: %d", timezone, ret);
- return;
- }
-
- ret = i18n_timezone_set_default(tmz);
- if (ret != I18N_ERROR_NONE) {
- _E("Unable to set default timezone to %s: %d", timezone, ret);
- }
-
- i18n_timezone_destroy(tmz);
-}
-#endif
-
-
-
-#ifdef _SUPPORT_SCREEN_READER
-static char *_access_info_cb(void *data, Evas_Object *obj)
-{
- Evas_Object *item = data;
- char *tmp = NULL;
- char time_str[32];
- char time_buf[128], ampm_buf[128];
- char buf[CLOCK_STR_LEN];
- char buf1[CLOCK_STR_LEN];
- int ret = 0;
- int battery_percentage = 0;
- int hour = 0;
- int minute = 0;
- char strHour[128] = { 0, };
- char strMin[128] = { 0, };
-
-
- struct tm *ts = NULL;
- time_t ctime;
- int len;
-
- retvm_if(data == NULL, NULL, "Invalid parameter!");
- char *timezone = util_get_timezone_str();
- ICU_set_timezone(timezone);
- if(timezone!=NULL)
- free(timezone);
-
- /* Set time */
- ctime = time(NULL);
- ts = localtime(&ctime);
- if (ts == NULL)
- return NULL;
-
- memset(time_str, 0x00, sizeof(time_str));
- memset(time_buf, 0x00, sizeof(time_buf));
- memset(ampm_buf, 0x00, sizeof(ampm_buf));
- memset(buf, 0x00, sizeof(buf));
- memset(buf1, 0x00, sizeof(buf1));
-
- if (clock_mode == INDICATOR_CLOCK_MODE_12H) {
- char bf1[32] = { 0, };
-
- if (ts->tm_hour >= 0 && ts->tm_hour < 12)
- strncpy(ampm_buf, _("IDS_IDLE_OPT_AM_ABB"),sizeof(ampm_buf)-1);
- else
- strncpy(ampm_buf, _("IDS_IDLE_OPT_PM_ABB"),sizeof(ampm_buf)-1);
-
- strftime(bf1, sizeof(bf1), "%l", ts);
- hour = atoi(bf1);
- strftime(bf1, sizeof(bf1), "%M", ts);
- minute = atoi(bf1);
- }
- else{
- char bf1[32] = { 0, };
-
- strftime(bf1, sizeof(bf1), "%H", ts);
- hour = atoi(bf1);
- strftime(bf1, sizeof(bf1), "%M", ts);
- minute = atoi(bf1);
- }
-
- if(hour ==1)
- {
- strncpy(strHour, _("IDS_COM_BODY_1_HOUR"),sizeof(strHour));
- }
- else
- {
- snprintf(strHour, sizeof(strHour), _("IDS_COM_POP_PD_HOURS"),hour);
- }
-
- if(minute ==1)
- {
- strncpy(strMin, _("IDS_COM_BODY_1_MINUTE"),sizeof(strMin));
- }
- else
- {
- snprintf(strMin, sizeof(strMin), _("IDS_COM_BODY_PD_MINUTES"),minute);
- }
-
- if(clock_mode == INDICATOR_CLOCK_MODE_12H)
- snprintf(time_str, sizeof(time_str), "%s, %s, %s", strHour, strMin,ampm_buf);
- else
- snprintf(time_str, sizeof(time_str), "%s, %s", strHour, strMin);
-
-
- ret = device_battery_get_percent(&battery_percentage);
- if (ret != DEVICE_ERROR_NONE)
- {
- return NULL;
- }
-
- snprintf(buf1, sizeof(buf1), _("IDS_IDLE_BODY_PD_PERCENT_OF_BATTERY_POWER_REMAINING"), battery_percentage);
-
- snprintf(buf, sizeof(buf), "%s, %s, %s", time_str, buf1, _("IDS_IDLE_BODY_STATUS_BAR_ITEM"));
-
- _D("buf: %s", buf);
- tmp = strdup(buf);
- if (!tmp) return NULL;
- return tmp;
-}
-
-
-
-static int register_clock_tts(void *data,int win_type)
-{
- int r = 0, ret = -1;
-
- retvm_if(data == NULL, FAIL, "Invalid parameter!");
-
- Evas_Object *to = NULL;
- Evas_Object *ao = NULL;
- struct appdata *ad = data;
-
- to = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(ad->win[win_type].layout), "elm.rect.clock.access");
- ao = util_access_object_register(to, ad->win[win_type].layout);
- util_access_object_info_cb_set(ao,ELM_ACCESS_INFO,_access_info_cb,data);
- return 0;
-}
-#endif
-
static int bShown = 0;
static int register_alarm_module(void *data);
static int unregister_alarm_module(void);
-#ifdef _SUPPORT_SCREEN_READER
-static char *access_info_cb(void *data, Evas_Object *obj);
-#endif
icon_s useralarm = {
.type = INDICATOR_IMG_ICON,
.area = INDICATOR_ICON_AREA_SYSTEM,
.init = register_alarm_module,
.fini = unregister_alarm_module,
-#ifdef _SUPPORT_SCREEN_READER
- .tts_enable = EINA_TRUE,
- .access_cb = access_info_cb,
-#endif
};
static char *icon_path[] = {
}
-
static void indicator_alarm_change_cb(keynode_t *node, void *data)
{
int status = 0;
}
-
-#ifdef _SUPPORT_SCREEN_READER
-static char *access_info_cb(void *data, Evas_Object *obj)
-{
- char *tmp = NULL;
- char buf[256] = {0,};
-
- int status = 0;
-
- vconf_get_int(VCONFKEY_ALARM_STATE, &status);
-
- if (status > 0)
- snprintf(buf, sizeof(buf), "%s, %s, %s", _("IDS_COM_BODY_ALARM"), _("IDS_IDLE_BODY_ICON"), _("IDS_IDLE_BODY_STATUS_BAR_ITEM"));
-
- tmp = strdup(buf);
- if (!tmp) return NULL;
- return tmp;
-}
-#endif
-
-
-
static int register_alarm_module(void *data)
{
int ret = -1;
}
}
-
-#ifdef _SUPPORT_SCREEN_READER
-void modules_register_tts(void *data)
-{
- int i;
- /* add items to list */
- for (i = 0; modules[i]; i++) {
- modules[i]->ad = data;
- if (modules[i]->register_tts && modules[i]->initialized)
- {
- modules[i]->register_tts(data);
- }
- }
-}
-#endif
-
static int wake_up_cb(void *data);
static void _view_update(void *user_data);
static void _flight_mode(system_settings_key_e key, void *data);
-#ifdef _SUPPORT_SCREEN_READER
-static char *access_info_cb(void *data, Evas_Object *obj);
-#endif
static telephony_handle_list_s tel_list;
.fini = unregister_rssi_module,
.lang_changed = language_changed_cb,
.wake_up = wake_up_cb,
-#ifdef _SUPPORT_SCREEN_READER
- .tts_enable = EINA_TRUE,
- .access_cb = access_info_cb
-#endif
},
{
.type = INDICATOR_IMG_ICON,
.fini = unregister_rssi_module,
.lang_changed = language_changed_cb,
.wake_up = wake_up_cb,
-#ifdef _SUPPORT_SCREEN_READER
- .tts_enable = EINA_TRUE,
- .access_cb = access_info_cb
-#endif
}};
typedef enum {
return INDICATOR_ERROR_NONE;
}
-#ifdef _SUPPORT_SCREEN_READER
-static char *access_info_cb(void *data, Evas_Object *obj)
-{
- char buf[256] = {0,};
- telephony_network_rssi_e level;
-
- if (tel_list.count <= 0) {
- return NULL;
- }
-
- int err = telephony_network_get_rssi(tel_list.handle[0], &level);
- retvm_if(err != TELEPHONY_ERROR_NONE, NULL, "telephony_network_get_rssi failed: %s", get_error_message(err));
-
- snprintf(buf, sizeof(buf), _("IDS_IDLE_BODY_PD_OUT_OF_4_BARS_OF_SIGNAL_STRENGTH"), level);
-
- _D("buf: %s", buf);
-
- return strdup(buf);
-}
-#endif
-
static rssi_icon_e icon_enum_get(bool roaming_enabled, telephony_network_rssi_e rssi)
{
switch (rssi) {
static int register_call_divert_module(void *data);
static int unregister_call_divert_module(void);
static void _on_noti(void *user_data);
-#ifdef _SUPPORT_SCREEN_READER
-static char *access_info_cb(void *data, Evas_Object *obj);
-#endif
icon_s call_divert = {
.type = INDICATOR_IMG_ICON,
.init = register_call_divert_module,
.fini = unregister_call_divert_module,
.area = INDICATOR_ICON_AREA_CONNECTION_SYSTEM,
-#ifdef _SUPPORT_SCREEN_READER
- .tts_enable = EINA_TRUE,
- .access_cb = access_info_cb
-#endif
};
static telephony_handle_list_s list;
icon_hide(&call_divert);
}
-#ifdef _SUPPORT_SCREEN_READER
-static char *access_info_cb(void *data, Evas_Object *obj)
-{
- char *tmp = NULL;
- char buf[256] = {0,};
- int status = 0;
- int ret;
-
- ret = vconf_get_int(VCONFKEY_TELEPHONY_CALL_FORWARD_STATE, &status);
- retv_if(ret != 0, NULL);
-
- switch (status) {
- case VCONFKEY_TELEPHONY_CALL_FORWARD_ON:
- snprintf(buf, sizeof(buf), "%s, %s, %s", _("IDS_CST_BODY_CALL_FORWARDING"),
- _("IDS_IDLE_BODY_ICON"), _("IDS_IDLE_BODY_STATUS_BAR_ITEM"));
- break;
- default:
- break;
- }
-
- return strdup(buf);
-}
-#endif
-
-
static void _on_noti(void *user_data)
{
int ret = 0;
static int wake_up_cb(void *data);
static void show_image_icon(void *data, int index);
static void hide_image_icon(void);
-#ifdef _SUPPORT_SCREEN_READER
-static char *access_info_cb(void *data, Evas_Object *obj);
-#endif
-
icon_s bluetooth = {
.type = INDICATOR_IMG_ICON,
.init = register_bluetooth_module,
.fini = unregister_bluetooth_module,
.wake_up = wake_up_cb,
-#ifdef _SUPPORT_SCREEN_READER
- .tts_enable = EINA_TRUE,
- .access_cb = access_info_cb
-#endif
};
#define NO_DEVICE (0x00)
return OK;
}
-#ifdef _SUPPORT_SCREEN_READER
-static char *access_info_cb(void *data, Evas_Object *obj)
-{
- char *tmp = NULL;
- char buf[256] = {0,};
-
- switch(prevIndex)
- {
- case LEVEL_BT_ON:
- snprintf(buf, sizeof(buf), "%s, %s", _("IDS_IDLE_BODY_BLUETOOTH_ON"),_("IDS_IDLE_BODY_STATUS_BAR_ITEM"));
- break;
- case LEVEL_BT_CONNECTED:
- snprintf(buf, sizeof(buf), "%s, %s", _("Bluetooth On and Connected"),_("IDS_IDLE_BODY_STATUS_BAR_ITEM"));
- break;
- case LEVEL_BT_HEADSET:
- snprintf(buf, sizeof(buf), "%s, %s", _("Bluetooth On and Connected headset"),_("IDS_IDLE_BODY_STATUS_BAR_ITEM"));
- break;
- }
-
- tmp = strdup(buf);
- if (!tmp) return NULL;
- return tmp;
-}
-#endif
-
-
static int register_bluetooth_module(void *data)
{
int ret = -1;
static int register_silent_module(void *data);
static int unregister_silent_module(void);
-#ifdef _SUPPORT_SCREEN_READER
-static char *access_info_cb(void *data, Evas_Object *obj);
-#endif
-
icon_s silent = {
.type = INDICATOR_IMG_ICON,
.area = INDICATOR_ICON_AREA_SYSTEM,
.init = register_silent_module,
.fini = unregister_silent_module,
-#ifdef _SUPPORT_SCREEN_READER
- .tts_enable = EINA_TRUE,
- .access_cb = access_info_cb
-#endif
};
enum {
_display_sound_profile();
}
-#ifdef _SUPPORT_SCREEN_READER
-static char *access_info_cb(void *data, Evas_Object *obj)
-{
- char *tmp = NULL;
- char buf[256] = {0,};
- bool silent_mode = false;
- bool vib_status = false;
-
- if (!_get_sound_profile(&silent_mode, &vib_status))
- return NULL;
-
- if (silent_mode && !vib_status) {
- /* Mute Mode */
- snprintf(buf, sizeof(buf), "%s, %s, %s", _("IDS_IDLE_BODY_MUTE"),_("Sound profile"),_("IDS_IDLE_BODY_STATUS_BAR_ITEM"));
- } else if (!silent_mode && vib_status) {
- /* Vibration Only Mode */
- snprintf(buf, sizeof(buf), "%s, %s, %s", _("IDS_IDLE_BODY_VIBRATE"),_("Sound profile"),_("IDS_IDLE_BODY_STATUS_BAR_ITEM"));
- } else {
- //do nothing;
- }
-
- tmp = strdup(buf);
- if (!tmp)
- return NULL;
-
- return tmp;
-}
-#endif
-
static int register_silent_module(void *data)
{
int ret;
}
-#ifdef _SUPPORT_SCREEN_READER
-Evas_Object *util_access_object_register(Evas_Object *object, Evas_Object *layout)
-{
- if ((object == NULL) || (layout == NULL)) {
- _E("Access object doesn't exist!!! %x %x", object, layout);
- return NULL;
- }
-
- return elm_access_object_register(object, layout);
-}
-
-
-void util_access_object_unregister(Evas_Object *object)
-{
- if (object == NULL) {
- _E("Access object doesn't exist!!! %x", object);
- return NULL;
- }
-
- elm_access_object_unregister(object);
-}
-
-
-void util_access_object_info_cb_set(Evas_Object *object, int type, Elm_Access_Info_Cb info_cb, void *cb_data)
-{
- if ((object == NULL) || (info_cb == NULL)) {
- _E("Access info cb set fails %x %x!!!", object, info_cb);
- return;
- }
-
- elm_access_info_cb_set(object, type, info_cb, cb_data);
-}
-
-
-void util_icon_access_register(icon_s *icon)
-{
-
- if (icon == NULL) {
- _E("ICON NULL");
- return;
- }
-
- if (icon->tts_enable == EINA_TRUE && icon->ao == NULL) {
- Evas_Object *to = NULL;
-
- to = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(icon->img_obj.obj), "elm.rect.icon.access");
- icon->ao = util_access_object_register(to, icon->img_obj.obj);
-
- if (icon->access_cb != NULL)
- util_access_object_info_cb_set(icon->ao, ELM_ACCESS_INFO, icon->access_cb, icon->ad);
- }
-}
-
-
-void util_icon_access_unregister(icon_s *icon)
-{
- if (icon == NULL) {
- _E("ICON NULL");
- return;
- }
-
- if (icon->tts_enable == EINA_TRUE && icon->ao != NULL) {
- util_access_object_unregister(icon->ao);
- icon->ao = NULL;
- }
-}
-#endif /* _SUPPORT_SCREEN_READER */
-
-
void util_get_timezone_str(char **timezone)
{
int ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, timezone);
}
}
-
-#if 0
-int util_get_block_width(void *data, const char *part)
-{
- Evas_Object *eo = NULL;
- int geo_dx = 0;
- int geo_dy = 0;
- retvm_if(data == NULL, -1, "Invalid parameter!");
- retvm_if(part == NULL, -1, "Invalid parameter!");
-
- win_info *win = (win_info *)data;
-
- eo = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(win->layout), part);
-
- evas_object_geometry_get(eo, NULL, NULL, &geo_dx, &geo_dy);
-
- return geo_dx;
-}
-
-
-int util_get_string_width(void *data, const char *part)
-{
- Evas_Object *eo = NULL;
- int text_dx = 0;
- int text_dy = 0;
- retvm_if(data == NULL, -1, "Invalid parameter!");
- retvm_if(part == NULL, -1, "Invalid parameter!");
-
- win_info *win = (win_info *)data;
-
- eo = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(win->layout), part);
-
- evas_object_textblock_size_formatted_get(eo, &text_dx, &text_dy);
-
- return text_dx;
-}
-#endif
-
-
int util_check_noti_ani(const char *path)
{
retv_if(!path, 0);