static void _label_sliding_change(Evas_Object *obj) { char *plaintxt; int plainlen = 0; ELM_LABEL_DATA_GET(obj, sd); // doesn't support multiline sliding effect if (sd->linewrap) { sd->slidingmode = EINA_FALSE; return; } plaintxt = _elm_util_mkup_to_text (edje_object_part_text_get (ELM_WIDGET_DATA(sd)->resize_obj, "elm.text")); if (plaintxt != NULL) { plainlen = strlen(plaintxt); free(plaintxt); } // too short to slide label if (plainlen < 1) { sd->slidingmode = EINA_TRUE; return; } if (sd->slidingmode) { Edje_Message_Float_Set *msg = alloca(sizeof(Edje_Message_Float_Set) + (sizeof(double))); if (sd->ellipsis) { sd->slidingellipsis = EINA_TRUE; elm_label_ellipsis_set(obj, EINA_FALSE); } msg->count = 1; msg->val[0] = sd->slide_duration; edje_object_message_send (ELM_WIDGET_DATA(sd)->resize_obj, EDJE_MESSAGE_FLOAT_SET, 0, msg); edje_object_signal_emit (ELM_WIDGET_DATA(sd)->resize_obj, "elm,state,slide,start", "elm"); } else { edje_object_signal_emit (ELM_WIDGET_DATA(sd)->resize_obj, "elm,state,slide,stop", "elm"); if (sd->slidingellipsis) { sd->slidingellipsis = EINA_FALSE; elm_label_ellipsis_set(obj, EINA_TRUE); } } }
static int metadata_set_text(Evas_Object *obj, Enna_File *file, const char *name, int bold) { int res = 0; const char *str = NULL; char *tmp = NULL; if (file) str = enna_file_meta_get(file, name); if (!str) res = -1; else tmp = strdup(str); if(bold && str) { tmp = enna_util_str_chomp(tmp); } else { tmp = enna_util_str_chomp(tmp); } elm_label_ellipsis_set(obj, EINA_TRUE); elm_object_text_set(obj, tmp); ENNA_FREE(tmp); eina_stringshare_del(str); return res; }