Eolian: Integration of Label
This commit is contained in:
parent
3ba96095e6
commit
7780b975ad
|
@ -601,7 +601,9 @@ BUILT_SOURCES = \
|
|||
elm_index.eo.c \
|
||||
elm_index.eo.h \
|
||||
elm_inwin.eo.c \
|
||||
elm_inwin.eo.h
|
||||
elm_inwin.eo.h \
|
||||
elm_label.eo.c \
|
||||
elm_label.eo.h
|
||||
|
||||
EXTRA_DIST += \
|
||||
elm_widget.eo \
|
||||
|
@ -642,7 +644,8 @@ EXTRA_DIST += \
|
|||
elm_image.eo \
|
||||
elm_icon.eo \
|
||||
elm_index.eo \
|
||||
elm_inwin.eo
|
||||
elm_inwin.eo \
|
||||
elm_label.eo
|
||||
|
||||
nodist_includesunstable_HEADERS = \
|
||||
elm_widget.eo.h \
|
||||
|
@ -683,5 +686,6 @@ nodist_includesunstable_HEADERS = \
|
|||
elm_image.eo.h \
|
||||
elm_icon.eo.h \
|
||||
elm_index.eo.h \
|
||||
elm_inwin.eo.h
|
||||
elm_inwin.eo.h \
|
||||
elm_label.eo.h
|
||||
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
#include "elm_widget_layout.h"
|
||||
#include "elm_widget_label.h"
|
||||
|
||||
EAPI Eo_Op ELM_OBJ_LABEL_BASE_ID = EO_NOOP;
|
||||
|
||||
#define MY_CLASS ELM_OBJ_LABEL_CLASS
|
||||
|
||||
#define MY_CLASS_NAME "Elm_Label"
|
||||
|
@ -165,32 +163,29 @@ _label_slide_change(Evas_Object *obj)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_label_smart_theme(Eo *obj, void *_pd, va_list *list)
|
||||
EOLIAN static Eina_Bool
|
||||
_elm_label_elm_widget_theme_apply(Eo *obj, Elm_Label_Data *sd)
|
||||
{
|
||||
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
|
||||
Eina_Bool int_ret = EINA_FALSE;
|
||||
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
|
||||
|
||||
evas_event_freeze(evas_object_evas_get(obj));
|
||||
|
||||
eo_do_super(obj, MY_CLASS, elm_obj_widget_theme_apply(&int_ret));
|
||||
if (!int_ret) goto end;
|
||||
if (!int_ret) return EINA_FALSE;
|
||||
|
||||
_label_format_set(wd->resize_obj, sd->format);
|
||||
_label_slide_change(obj);
|
||||
|
||||
end:
|
||||
evas_event_thaw(evas_object_evas_get(obj));
|
||||
evas_event_thaw_eval(evas_object_evas_get(obj));
|
||||
if (ret) *ret = int_ret;
|
||||
|
||||
return int_ret;
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_label_smart_sizing_eval(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
|
||||
EOLIAN static void
|
||||
_elm_label_elm_layout_sizing_eval(Eo *obj, Elm_Label_Data *_pd EINA_UNUSED)
|
||||
{
|
||||
Evas_Coord minw = -1, minh = -1;
|
||||
Evas_Coord resw, resh;
|
||||
|
@ -318,18 +313,12 @@ _stringshare_key_value_replace(const char **srcstring, const char *key, const ch
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_label_smart_text_set(Eo *obj, void *_pd, va_list *list)
|
||||
EOLIAN static Eina_Bool
|
||||
_elm_label_elm_layout_text_set(Eo *obj, Elm_Label_Data *sd, const char *part, const char *label)
|
||||
{
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
const char *part = va_arg(*list, const char *);
|
||||
const char *label = va_arg(*list, const char *);
|
||||
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
|
||||
Eina_Bool int_ret = EINA_FALSE;
|
||||
|
||||
if (ret) *ret = EINA_FALSE;
|
||||
|
||||
if (!label) label = "";
|
||||
_label_format_set(wd->resize_obj, sd->format);
|
||||
|
||||
|
@ -339,7 +328,7 @@ _elm_label_smart_text_set(Eo *obj, void *_pd, va_list *list)
|
|||
sd->lastw = 0;
|
||||
eo_do(obj, elm_obj_layout_sizing_eval());
|
||||
}
|
||||
if (ret) *ret = int_ret;
|
||||
return int_ret;
|
||||
}
|
||||
|
||||
static char *
|
||||
|
@ -365,10 +354,9 @@ _on_slide_end(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
evas_object_smart_callback_call(data, SIG_SLIDE_END, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_label_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
||||
EOLIAN static void
|
||||
_elm_label_evas_smart_add(Eo *obj, Elm_Label_Data *priv)
|
||||
{
|
||||
Elm_Label_Smart_Data *priv = _pd;
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
|
||||
eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
|
||||
|
@ -414,8 +402,8 @@ elm_label_add(Evas_Object *parent)
|
|||
return obj;
|
||||
}
|
||||
|
||||
static void
|
||||
_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
|
||||
EOLIAN static void
|
||||
_elm_label_eo_base_constructor(Eo *obj, Elm_Label_Data *_pd EINA_UNUSED)
|
||||
{
|
||||
eo_do_super(obj, MY_CLASS, eo_constructor());
|
||||
eo_do(obj,
|
||||
|
@ -423,21 +411,12 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
|
|||
evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_label_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap)
|
||||
EOLIAN static void
|
||||
_elm_label_line_wrap_set(Eo *obj, Elm_Label_Data *sd, Elm_Wrap_Type wrap)
|
||||
{
|
||||
ELM_LABEL_CHECK(obj);
|
||||
eo_do(obj, elm_obj_label_line_wrap_set(wrap));
|
||||
}
|
||||
|
||||
static void
|
||||
_line_wrap_set(Eo *obj, void *_pd, va_list *list)
|
||||
{
|
||||
Elm_Wrap_Type wrap = va_arg(*list, Elm_Wrap_Type);
|
||||
const char *wrap_str, *text;
|
||||
int len;
|
||||
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
|
||||
if (sd->linewrap == wrap) return;
|
||||
|
@ -475,35 +454,15 @@ _line_wrap_set(Eo *obj, void *_pd, va_list *list)
|
|||
}
|
||||
}
|
||||
|
||||
EAPI Elm_Wrap_Type
|
||||
elm_label_line_wrap_get(const Evas_Object *obj)
|
||||
EOLIAN static Elm_Wrap_Type
|
||||
_elm_label_line_wrap_get(Eo *obj EINA_UNUSED, Elm_Label_Data *sd)
|
||||
{
|
||||
ELM_LABEL_CHECK(obj) EINA_FALSE;
|
||||
Elm_Wrap_Type ret = EINA_FALSE;
|
||||
eo_do((Eo *) obj, elm_obj_label_line_wrap_get(&ret));
|
||||
return ret;
|
||||
return sd->linewrap;
|
||||
}
|
||||
|
||||
static void
|
||||
_line_wrap_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
EOLIAN static void
|
||||
_elm_label_wrap_width_set(Eo *obj, Elm_Label_Data *sd, Evas_Coord w)
|
||||
{
|
||||
Elm_Wrap_Type *ret = va_arg(*list, Elm_Wrap_Type *);
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
*ret = sd->linewrap;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_label_wrap_width_set(Evas_Object *obj, Evas_Coord w)
|
||||
{
|
||||
ELM_LABEL_CHECK(obj);
|
||||
eo_do(obj, elm_obj_label_wrap_width_set(w));
|
||||
}
|
||||
|
||||
static void
|
||||
_wrap_width_set(Eo *obj, void *_pd, va_list *list)
|
||||
{
|
||||
Evas_Coord w = va_arg(*list, Evas_Coord);
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
|
||||
if (w < 0) w = 0;
|
||||
|
@ -517,39 +476,19 @@ _wrap_width_set(Eo *obj, void *_pd, va_list *list)
|
|||
elm_layout_sizing_eval(obj);
|
||||
}
|
||||
|
||||
EAPI Evas_Coord
|
||||
elm_label_wrap_width_get(const Evas_Object *obj)
|
||||
EOLIAN static Evas_Coord
|
||||
_elm_label_wrap_width_get(Eo *obj EINA_UNUSED, Elm_Label_Data *sd)
|
||||
{
|
||||
ELM_LABEL_CHECK(obj) 0;
|
||||
Evas_Coord ret = 0;
|
||||
eo_do((Eo *) obj, elm_obj_label_wrap_width_get(&ret));
|
||||
return ret;
|
||||
return sd->wrap_w;
|
||||
}
|
||||
|
||||
static void
|
||||
_wrap_width_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
EOLIAN static void
|
||||
_elm_label_ellipsis_set(Eo *obj, Elm_Label_Data *sd, Eina_Bool ellipsis)
|
||||
{
|
||||
Evas_Coord *ret = va_arg(*list, Evas_Coord *);
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
*ret = sd->wrap_w;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_label_ellipsis_set(Evas_Object *obj, Eina_Bool ellipsis)
|
||||
{
|
||||
ELM_LABEL_CHECK(obj);
|
||||
eo_do(obj, elm_obj_label_ellipsis_set(ellipsis));
|
||||
}
|
||||
|
||||
static void
|
||||
_ellipsis_set(Eo *obj, void *_pd, va_list *list)
|
||||
{
|
||||
Eina_Bool ellipsis = va_arg(*list, int);
|
||||
Eina_Strbuf *fontbuf = NULL;
|
||||
int len, removeflag = 0;
|
||||
const char *text;
|
||||
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
|
||||
if (sd->ellipsis == ellipsis) return;
|
||||
|
@ -576,53 +515,22 @@ _ellipsis_set(Eo *obj, void *_pd, va_list *list)
|
|||
eina_strbuf_free(fontbuf);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
elm_label_ellipsis_get(const Evas_Object *obj)
|
||||
EOLIAN static Eina_Bool
|
||||
_elm_label_ellipsis_get(Eo *obj EINA_UNUSED, Elm_Label_Data *sd)
|
||||
{
|
||||
ELM_LABEL_CHECK(obj) EINA_FALSE;
|
||||
Eina_Bool ret = EINA_FALSE;
|
||||
eo_do((Eo *) obj, elm_obj_label_ellipsis_get(&ret));
|
||||
return ret;
|
||||
return sd->ellipsis;
|
||||
}
|
||||
|
||||
static void
|
||||
_ellipsis_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
EOLIAN static void
|
||||
_elm_label_slide_mode_set(Eo *obj EINA_UNUSED, Elm_Label_Data *sd, Elm_Label_Slide_Mode mode)
|
||||
{
|
||||
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
*ret = sd->ellipsis;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_label_slide_mode_set(Evas_Object *obj, Elm_Label_Slide_Mode mode)
|
||||
{
|
||||
ELM_LABEL_CHECK(obj);
|
||||
eo_do(obj, elm_obj_label_slide_mode_set(mode));
|
||||
}
|
||||
|
||||
static void
|
||||
_slide_mode_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
Elm_Label_Slide_Mode mode = va_arg(*list, Elm_Label_Slide_Mode);
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
sd->slide_mode = mode;
|
||||
}
|
||||
|
||||
EAPI Elm_Label_Slide_Mode
|
||||
elm_label_slide_mode_get(const Evas_Object *obj)
|
||||
EOLIAN static Elm_Label_Slide_Mode
|
||||
_elm_label_slide_mode_get(Eo *obj EINA_UNUSED, Elm_Label_Data *sd)
|
||||
{
|
||||
ELM_LABEL_CHECK(obj) ELM_LABEL_SLIDE_MODE_NONE;
|
||||
Elm_Label_Slide_Mode ret = ELM_LABEL_SLIDE_MODE_NONE;
|
||||
eo_do((Eo *) obj, elm_obj_label_slide_mode_get(&ret));
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
_slide_mode_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
Elm_Label_Slide_Mode *ret = va_arg(*list, Elm_Label_Slide_Mode *);
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
*ret = sd->slide_mode;
|
||||
return sd->slide_mode;
|
||||
}
|
||||
|
||||
EINA_DEPRECATED EAPI void
|
||||
|
@ -643,166 +551,61 @@ elm_label_slide_get(const Evas_Object *obj)
|
|||
return ret;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_label_slide_duration_set(Evas_Object *obj, double duration)
|
||||
EOLIAN static void
|
||||
_elm_label_slide_duration_set(Eo *obj EINA_UNUSED, Elm_Label_Data *sd, double duration)
|
||||
{
|
||||
ELM_LABEL_CHECK(obj);
|
||||
eo_do(obj, elm_obj_label_slide_duration_set(duration));
|
||||
}
|
||||
|
||||
static void
|
||||
_slide_duration_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
double duration = va_arg(*list, double);
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
sd->slide_duration = duration;
|
||||
sd->use_slide_speed = EINA_FALSE;
|
||||
}
|
||||
|
||||
EAPI double
|
||||
elm_label_slide_duration_get(const Evas_Object *obj)
|
||||
EOLIAN static void
|
||||
_elm_label_slide_speed_set(Eo *obj EINA_UNUSED, Elm_Label_Data *sd, double speed)
|
||||
{
|
||||
ELM_LABEL_CHECK(obj) 0.0;
|
||||
double ret = 0.0;
|
||||
eo_do((Eo *) obj, elm_obj_label_slide_duration_get(&ret));
|
||||
return ret;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_label_slide_speed_set(Evas_Object *obj, double speed)
|
||||
{
|
||||
ELM_LABEL_CHECK(obj);
|
||||
eo_do(obj, elm_obj_label_slide_speed_set(speed));
|
||||
}
|
||||
|
||||
static void
|
||||
_slide_speed_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
double speed = va_arg(*list, double);
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
sd->slide_speed = speed;
|
||||
sd->use_slide_speed = EINA_TRUE;
|
||||
}
|
||||
|
||||
EAPI double
|
||||
elm_label_slide_speed_get(const Evas_Object *obj)
|
||||
EOLIAN static double
|
||||
_elm_label_slide_speed_get(Eo *obj EINA_UNUSED, Elm_Label_Data *sd)
|
||||
{
|
||||
ELM_LABEL_CHECK(obj) 0.0;
|
||||
double ret = 0.0;
|
||||
eo_do((Eo *) obj, elm_obj_label_slide_speed_get(&ret));
|
||||
return ret;
|
||||
return sd->slide_speed;
|
||||
}
|
||||
|
||||
static void
|
||||
_slide_speed_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
{
|
||||
double *ret = va_arg(*list, double *);
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
*ret = sd->slide_speed;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_label_slide_go(Evas_Object *obj)
|
||||
{
|
||||
ELM_LABEL_CHECK(obj);
|
||||
eo_do((Eo *) obj, elm_obj_label_slide_go());
|
||||
}
|
||||
|
||||
static void
|
||||
_slide_go(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
|
||||
EOLIAN static void
|
||||
_elm_label_slide_go(Eo *obj, Elm_Label_Data *_pd EINA_UNUSED)
|
||||
{
|
||||
_label_slide_change(obj);
|
||||
elm_layout_sizing_eval(obj);
|
||||
}
|
||||
|
||||
static void
|
||||
_slide_duration_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
|
||||
EOLIAN static double
|
||||
_elm_label_slide_duration_get(Eo *obj EINA_UNUSED, Elm_Label_Data *sd)
|
||||
{
|
||||
double *ret = va_arg(*list, double *);
|
||||
Elm_Label_Smart_Data *sd = _pd;
|
||||
*ret = sd->slide_duration;
|
||||
return sd->slide_duration;
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_label_smart_text_aliases_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
|
||||
EOLIAN static const Elm_Layout_Part_Alias_Description*
|
||||
_elm_label_elm_layout_text_aliases_get(Eo *obj EINA_UNUSED, Elm_Label_Data *_pd EINA_UNUSED)
|
||||
{
|
||||
const Elm_Layout_Part_Alias_Description **aliases = va_arg(*list, const Elm_Layout_Part_Alias_Description **);
|
||||
*aliases = _text_aliases;
|
||||
return _text_aliases;
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_label_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
|
||||
EOLIAN static Eina_Bool
|
||||
_elm_label_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, Elm_Label_Data *_pd EINA_UNUSED)
|
||||
{
|
||||
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
|
||||
*ret = EINA_FALSE;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_label_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
|
||||
EOLIAN static Eina_Bool
|
||||
_elm_label_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Elm_Label_Data *_pd EINA_UNUSED)
|
||||
{
|
||||
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
|
||||
*ret = EINA_FALSE;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
_class_constructor(Eo_Class *klass)
|
||||
EOLIAN static void
|
||||
_elm_label_class_constructor(Eo_Class *klass)
|
||||
{
|
||||
const Eo_Op_Func_Description func_desc[] = {
|
||||
EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor),
|
||||
|
||||
EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _elm_label_smart_add),
|
||||
|
||||
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), _elm_label_smart_theme),
|
||||
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_label_smart_focus_next_manager_is),
|
||||
EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_label_smart_focus_direction_manager_is),
|
||||
|
||||
EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), _elm_label_smart_sizing_eval),
|
||||
EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_TEXT_SET), _elm_label_smart_text_set),
|
||||
EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_TEXT_ALIASES_GET), _elm_label_smart_text_aliases_get),
|
||||
|
||||
EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_LINE_WRAP_SET), _line_wrap_set),
|
||||
EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_LINE_WRAP_GET), _line_wrap_get),
|
||||
EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_WRAP_WIDTH_SET), _wrap_width_set),
|
||||
EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_WRAP_WIDTH_GET), _wrap_width_get),
|
||||
EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_ELLIPSIS_SET), _ellipsis_set),
|
||||
EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_ELLIPSIS_GET), _ellipsis_get),
|
||||
EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_MODE_SET), _slide_mode_set),
|
||||
EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_MODE_GET), _slide_mode_get),
|
||||
EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_SET), _slide_duration_set),
|
||||
EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_GET), _slide_duration_get),
|
||||
EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_GO), _slide_go),
|
||||
EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_SPEED_SET), _slide_speed_set),
|
||||
EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_SPEED_GET), _slide_speed_get),
|
||||
EO_OP_FUNC_SENTINEL
|
||||
};
|
||||
eo_class_funcs_set(klass, func_desc);
|
||||
|
||||
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
|
||||
}
|
||||
static const Eo_Op_Description op_desc[] = {
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_LINE_WRAP_SET, "Set the wrapping behavior of the label."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_LINE_WRAP_GET, "Get the wrapping behavior of the label."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_WRAP_WIDTH_SET, "Set wrap width of the label."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_WRAP_WIDTH_GET, "Get wrap width of the label."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_ELLIPSIS_SET, "Set the ellipsis behavior of the label."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_ELLIPSIS_GET, "Get the ellipsis behavior of the label."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_SLIDE_MODE_SET, "Set slide effect mode of label widget."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_SLIDE_MODE_GET, "Get current slide effect mode."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_SET, "Set the slide duration of the label."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_GET, "Get the slide duration of the label."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_SLIDE_GO, "Start slide effect."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_SLIDE_SPEED_SET, "Set the slide speed of the label."),
|
||||
EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_SLIDE_SPEED_GET, "Get the slide speed of the label."),
|
||||
EO_OP_DESCRIPTION_SENTINEL
|
||||
};
|
||||
static const Eo_Class_Description class_desc = {
|
||||
EO_VERSION,
|
||||
MY_CLASS_NAME,
|
||||
EO_CLASS_TYPE_REGULAR,
|
||||
EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_LABEL_BASE_ID, op_desc, ELM_OBJ_LABEL_SUB_ID_LAST),
|
||||
NULL,
|
||||
sizeof(Elm_Label_Smart_Data),
|
||||
_class_constructor,
|
||||
NULL
|
||||
};
|
||||
EO_DEFINE_CLASS(elm_obj_label_class_get, &class_desc, ELM_OBJ_LAYOUT_CLASS, NULL);
|
||||
|
||||
#include "elm_label.eo.c"
|
||||
|
|
|
@ -0,0 +1,207 @@
|
|||
class Elm_Label (Elm_Layout)
|
||||
{
|
||||
eo_prefix: elm_obj_label;
|
||||
properties {
|
||||
wrap_width {
|
||||
set {
|
||||
/*@
|
||||
@brief Set wrap width of the label
|
||||
|
||||
This function sets the maximum width size hint of the label.
|
||||
|
||||
@warning This is only relevant if the label is inside a container.
|
||||
|
||||
@ingroup Label */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
@brief Get wrap width of the label
|
||||
|
||||
@return The wrap width in pixels at a minimum where words need to wrap
|
||||
|
||||
@see elm_label_wrap_width_set()
|
||||
|
||||
@ingroup Label */
|
||||
}
|
||||
values {
|
||||
Evas_Coord w; /*@ The wrap width in pixels at a minimum where words need to wrap */
|
||||
}
|
||||
}
|
||||
slide_speed {
|
||||
set {
|
||||
/*@
|
||||
@brief Set the slide speed of the label
|
||||
|
||||
@see elm_label_slide_duration_set()
|
||||
|
||||
@ingroup Label */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
@brief Get the slide speed of the label
|
||||
|
||||
@return The slide animation speed in px per seconds
|
||||
|
||||
@note If you set the duration of the slide using elm_label_slide_duration_set()
|
||||
you cannot get the correct speed using this function until the label
|
||||
is actually rendered and resized.
|
||||
|
||||
@see elm_label_slide_speed_set()
|
||||
|
||||
@ingroup Label */
|
||||
}
|
||||
values {
|
||||
double speed; /*@ The speed of the slide animation in px per seconds */
|
||||
}
|
||||
}
|
||||
slide_mode {
|
||||
set {
|
||||
/*@
|
||||
@brief Set the slide mode of the label widget.
|
||||
|
||||
elm_label_slide_mode_set() changes label slide mode.
|
||||
By default, slide mode is none. Possible values for @p mode are:
|
||||
@li ELM_LABEL_SLIDE_MODE_NONE - no slide effect
|
||||
@li ELM_LABEL_SLIDE_MODE_AUTO - slide only if the label area is bigger than
|
||||
the text width length
|
||||
@li ELM_LABEL_SLIDE_MODE_ALWAYS -slide always
|
||||
|
||||
@warning ELM_LABEL_SLIDE_MODE_AUTO, ELM_LABEL_SLIDE_MODE_ALWAYS only work
|
||||
with the themes "slide_short", "slide_long" and "slide_bounce".
|
||||
@warning ELM_LABEL_SLIDE_MODE_AUTO, ELM_LABEL_SLIDE_MODE_ALWAYS don't work
|
||||
if the line wrap(elm_label_line_wrap_set()) or
|
||||
ellipsis(elm_label_ellipsis_set()) is set.
|
||||
|
||||
@see elm_label_slide_mode_get().
|
||||
@since 1.8
|
||||
|
||||
@ingroup Label */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
@brief Get the slide mode of the label widget.
|
||||
|
||||
@return The slide mode
|
||||
|
||||
@see elm_label_slide_mode_set()
|
||||
@since 1.8
|
||||
|
||||
@ingroup Label */
|
||||
}
|
||||
values {
|
||||
Elm_Label_Slide_Mode mode; /*@ The slide mode */
|
||||
}
|
||||
}
|
||||
slide_duration {
|
||||
set {
|
||||
/*@
|
||||
@brief Set the slide duration of the label
|
||||
|
||||
@see elm_label_slide_speed_set()
|
||||
|
||||
@ingroup Label */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
@brief Get the slide duration of the label
|
||||
|
||||
@return The duration time in moving text from slide begin position to slide end position
|
||||
|
||||
@note If you set the speed of the slide using elm_label_slide_speed_set()
|
||||
you cannot get the correct duration using this function until the label
|
||||
is actually rendered and resized.
|
||||
|
||||
@see elm_label_slide_duration_set()
|
||||
|
||||
@ingroup Label */
|
||||
}
|
||||
values {
|
||||
double duration; /*@ The duration in seconds in moving text from slide begin position
|
||||
to slide end position */
|
||||
}
|
||||
}
|
||||
line_wrap {
|
||||
set {
|
||||
/*@
|
||||
@brief Set the wrapping behavior of the label
|
||||
|
||||
By default no wrapping is done. Possible values for @p wrap are:
|
||||
@li ELM_WRAP_NONE - No wrapping
|
||||
@li ELM_WRAP_CHAR - wrap between characters
|
||||
@li ELM_WRAP_WORD - wrap between words
|
||||
@li ELM_WRAP_MIXED - Word wrap, and if that fails, char wrap
|
||||
|
||||
@ingroup Label */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
@brief Get the wrapping behavior of the label
|
||||
|
||||
@return Wrap type
|
||||
|
||||
@see elm_label_line_wrap_set()
|
||||
|
||||
@ingroup Label */
|
||||
}
|
||||
values {
|
||||
Elm_Wrap_Type wrap; /*@ To wrap text or not */
|
||||
}
|
||||
}
|
||||
ellipsis {
|
||||
set {
|
||||
/*@
|
||||
@brief Set the ellipsis behavior of the label
|
||||
|
||||
If set to true and the text doesn't fit in the label an ellipsis("...")
|
||||
will be shown at the end of the widget.
|
||||
|
||||
@warning This doesn't work with slide(elm_label_slide_set()) or if the
|
||||
chosen wrap method was #ELM_WRAP_WORD.
|
||||
|
||||
@ingroup Label */
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
@brief Get the ellipsis behavior of the label
|
||||
|
||||
@return If true, an ellipsis will be shown at the end of the label area.
|
||||
|
||||
@see elm_label_ellipsis_set()
|
||||
|
||||
@ingroup Label */
|
||||
}
|
||||
values {
|
||||
Eina_Bool ellipsis; /*@ To ellipsis text or not */
|
||||
}
|
||||
}
|
||||
}
|
||||
methods {
|
||||
slide_go {
|
||||
/*@
|
||||
@brief Start slide effect.
|
||||
|
||||
@see elm_label_slide_mode_set()
|
||||
@since 1.8
|
||||
|
||||
@ingroup Label */
|
||||
|
||||
}
|
||||
}
|
||||
implements {
|
||||
class::constructor;
|
||||
Eo_Base::constructor;
|
||||
Evas_Smart::add;
|
||||
Elm_Widget::focus_next_manager_is;
|
||||
Elm_Widget::focus_direction_manager_is;
|
||||
Elm_Widget::theme_apply;
|
||||
Elm_Layout::text_set;
|
||||
Elm_Layout::text_aliases::get;
|
||||
Elm_Layout::sizing_eval;
|
||||
}
|
||||
events {
|
||||
language,changed;
|
||||
access,changed;
|
||||
slide,end;
|
||||
}
|
||||
|
||||
}
|
|
@ -3,6 +3,8 @@
|
|||
*
|
||||
* @{
|
||||
*/
|
||||
#include "elm_label.eo.h"
|
||||
#if 0
|
||||
#define ELM_OBJ_LABEL_CLASS elm_obj_label_class_get()
|
||||
|
||||
const Eo_Class *elm_obj_label_class_get(void) EINA_CONST;
|
||||
|
@ -209,6 +211,8 @@ enum
|
|||
* @ingroup Label
|
||||
*/
|
||||
#define elm_obj_label_slide_go() ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_GO)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
/**
|
||||
* Base layout smart data extended with label instance data.
|
||||
*/
|
||||
typedef struct _Elm_Label_Smart_Data Elm_Label_Smart_Data;
|
||||
struct _Elm_Label_Smart_Data
|
||||
typedef struct _Elm_Label_Data Elm_Label_Data;
|
||||
struct _Elm_Label_Data
|
||||
{
|
||||
const char *format;
|
||||
double slide_duration;
|
||||
|
@ -25,7 +25,7 @@ struct _Elm_Label_Smart_Data
|
|||
};
|
||||
|
||||
#define ELM_LABEL_DATA_GET(o, sd) \
|
||||
Elm_Label_Smart_Data * sd = eo_data_scope_get(o, ELM_OBJ_LABEL_CLASS)
|
||||
Elm_Label_Data * sd = eo_data_scope_get(o, ELM_OBJ_LABEL_CLASS)
|
||||
|
||||
#define ELM_LABEL_DATA_GET_OR_RETURN(o, ptr) \
|
||||
ELM_LABEL_DATA_GET(o, ptr); \
|
||||
|
|
Loading…
Reference in New Issue