2017-05-30 00:31:19 -07:00
|
|
|
#include "edje_private.h"
|
|
|
|
#include "edje_part_helper.h"
|
edje/elm: Rename _internal_ to _part_ (EO)
In Edje and Elementary, we have part objects, which are what is returned
by the interface efl_part(). Those objects can't be of an opaque type as
this doesn't work nicely with strongly typed languages such as C++ or
C#. In JS, Lua, C the types are weak and mostly runtime-based so it
doesn't matter much.
As a consequence, the documentation and the types need to look nice in
this EO API. Thus, we remove the abusive term "internal" and explicitly
call all those classes "part" something.
Eventually we want the types to be declared in the EO file so bindings
(C#, C++, ...) can generate the proper access methods, returning the
best possible types.
Note that right now a few of those part types are used in the legacy API
but don't actually need to be exposed externally.
This is kind of a mega commit that does all the renaming at once, but
it's really just a big sed operation. The power of good IDEs :)
Ref T5315
Ref T5306
2017-09-12 21:29:25 -07:00
|
|
|
#include "efl_canvas_layout_part_text.eo.h"
|
|
|
|
#define MY_CLASS EFL_CANVAS_LAYOUT_PART_TEXT_CLASS
|
2017-05-30 00:31:19 -07:00
|
|
|
|
2017-06-21 17:05:41 -07:00
|
|
|
PROXY_IMPLEMENTATION(text, MY_CLASS, EINA_FALSE)
|
2017-05-30 00:31:19 -07:00
|
|
|
#undef PROXY_IMPLEMENTATION
|
|
|
|
|
|
|
|
EOLIAN static void
|
edje/elm: Rename _internal_ to _part_ (EO)
In Edje and Elementary, we have part objects, which are what is returned
by the interface efl_part(). Those objects can't be of an opaque type as
this doesn't work nicely with strongly typed languages such as C++ or
C#. In JS, Lua, C the types are weak and mostly runtime-based so it
doesn't matter much.
As a consequence, the documentation and the types need to look nice in
this EO API. Thus, we remove the abusive term "internal" and explicitly
call all those classes "part" something.
Eventually we want the types to be declared in the EO file so bindings
(C#, C++, ...) can generate the proper access methods, returning the
best possible types.
Note that right now a few of those part types are used in the legacy API
but don't actually need to be exposed externally.
This is kind of a mega commit that does all the renaming at once, but
it's really just a big sed operation. The power of good IDEs :)
Ref T5315
Ref T5306
2017-09-12 21:29:25 -07:00
|
|
|
_efl_canvas_layout_part_text_efl_text_text_set(Eo *obj,
|
2017-05-30 00:31:19 -07:00
|
|
|
void *_pd EINA_UNUSED, const char *text)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
2018-04-06 04:30:40 -07:00
|
|
|
_edje_efl_text_text_set(obj, pd->ed, pd->part, text, EINA_FALSE, EINA_FALSE);
|
2017-05-30 00:31:19 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static const char *
|
2018-04-17 11:09:44 -07:00
|
|
|
_efl_canvas_layout_part_text_efl_text_text_get(const Eo *obj,
|
2017-05-30 00:31:19 -07:00
|
|
|
void *_pd EINA_UNUSED)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
2018-04-06 04:30:40 -07:00
|
|
|
return _edje_efl_text_text_get(obj, pd->ed, pd->part, EINA_FALSE, EINA_FALSE);
|
2017-05-30 00:31:19 -07:00
|
|
|
}
|
|
|
|
|
2017-09-27 23:46:42 -07:00
|
|
|
EOLIAN static const char *
|
2018-04-17 11:09:44 -07:00
|
|
|
_efl_canvas_layout_part_text_efl_text_markup_markup_get(const Eo *obj,
|
2017-09-27 23:46:42 -07:00
|
|
|
void *_pd EINA_UNUSED)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
2018-04-06 04:30:40 -07:00
|
|
|
return _edje_efl_text_text_get(obj, pd->ed, pd->part, EINA_FALSE, EINA_TRUE);
|
2017-09-27 23:46:42 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_part_text_efl_text_markup_markup_set(Eo *obj,
|
|
|
|
void *_pd EINA_UNUSED, const char *text)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
2018-04-06 04:30:40 -07:00
|
|
|
_edje_efl_text_text_set(obj, pd->ed, pd->part, text, EINA_FALSE, EINA_TRUE);
|
2017-09-27 23:46:42 -07:00
|
|
|
}
|
|
|
|
|
2018-11-06 06:52:53 -08:00
|
|
|
/* More Efl.Text.* API (@since 1.22) */
|
|
|
|
|
|
|
|
EOLIAN static void
|
2019-12-20 00:49:41 -08:00
|
|
|
_efl_canvas_layout_part_text_efl_text_style_text_background_type_set(Eo *obj,
|
2018-11-06 06:52:53 -08:00
|
|
|
void *_pd EINA_UNUSED,
|
2019-12-20 00:49:41 -08:00
|
|
|
Efl_Text_Style_Background_Type type)
|
2018-11-06 06:52:53 -08:00
|
|
|
{
|
|
|
|
Edje_User_Defined *eud;
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
|
|
|
|
|
|
|
|
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part);
|
|
|
|
|
|
|
|
eud->u.text_style.types |= EDJE_PART_TEXT_PROP_NONE;
|
2019-12-20 00:49:41 -08:00
|
|
|
efl_text_background_type_set(pd->rp->object, type);
|
2018-11-06 06:52:53 -08:00
|
|
|
}
|
|
|
|
|
2019-12-20 00:49:41 -08:00
|
|
|
EOLIAN static Efl_Text_Style_Background_Type
|
|
|
|
_efl_canvas_layout_part_text_efl_text_style_text_background_type_get(const Eo *obj,
|
2018-11-06 06:52:53 -08:00
|
|
|
void *_pd EINA_UNUSED)
|
|
|
|
{
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT)
|
2019-12-29 17:56:37 -08:00
|
|
|
return EFL_TEXT_STYLE_BACKGROUND_TYPE_NONE;
|
2018-11-06 06:52:53 -08:00
|
|
|
|
2019-12-20 00:49:41 -08:00
|
|
|
return efl_text_background_type_get(pd->rp->object);
|
2018-11-06 06:52:53 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
#define TEXT_COLOR_IMPL(x, X) \
|
|
|
|
EOLIAN static void \
|
|
|
|
_efl_canvas_layout_part_text_efl_text_style_ ##x ##_color_set(Eo *obj, \
|
|
|
|
void *_pd EINA_UNUSED, \
|
|
|
|
unsigned char r, unsigned char g, unsigned char b, unsigned char a) \
|
|
|
|
{ \
|
|
|
|
Edje_User_Defined *eud; \
|
|
|
|
\
|
|
|
|
PROXY_DATA_GET(obj, pd); \
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return; \
|
|
|
|
\
|
|
|
|
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part); \
|
|
|
|
\
|
|
|
|
eud->u.text_style.types |= EDJE_PART_TEXT_PROP_COLOR_ ##X; \
|
2019-12-20 00:49:41 -08:00
|
|
|
efl_ ##x ##_color_set(pd->rp->object, r, g, b, a); \
|
2018-11-06 06:52:53 -08:00
|
|
|
} \
|
|
|
|
\
|
|
|
|
EOLIAN static void \
|
|
|
|
_efl_canvas_layout_part_text_efl_text_style_ ##x ##_color_get(const Eo *obj, \
|
|
|
|
void *_pd EINA_UNUSED, \
|
|
|
|
unsigned char *r, unsigned char *g, unsigned char *b, unsigned char *a) \
|
|
|
|
{ \
|
|
|
|
PROXY_DATA_GET(obj, pd); \
|
|
|
|
*r = *g = *b = *a = 0; \
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return; \
|
2019-12-20 00:49:41 -08:00
|
|
|
efl_ ##x ##_color_get(pd->rp->object, r, g, b, a); \
|
2018-11-06 06:52:53 -08:00
|
|
|
}
|
|
|
|
|
2019-12-20 00:49:41 -08:00
|
|
|
TEXT_COLOR_IMPL(text_background, BACKING)
|
|
|
|
TEXT_COLOR_IMPL(text_glow, GLOW)
|
|
|
|
TEXT_COLOR_IMPL(text_glow2, GLOW2)
|
|
|
|
TEXT_COLOR_IMPL(text, NORMAL)
|
|
|
|
TEXT_COLOR_IMPL(text_outline, OUTLINE)
|
|
|
|
TEXT_COLOR_IMPL(text_shadow, SHADOW)
|
|
|
|
TEXT_COLOR_IMPL(text_strikethrough, STRIKETHROUGH)
|
|
|
|
TEXT_COLOR_IMPL(text_underline, UNDERLINE)
|
|
|
|
TEXT_COLOR_IMPL(text_underline2, UNDERLINE2)
|
|
|
|
TEXT_COLOR_IMPL(text_underline_dashed, UNDERLINE_DASHED)
|
2018-11-06 06:52:53 -08:00
|
|
|
|
|
|
|
EOLIAN static void
|
2019-12-20 00:49:41 -08:00
|
|
|
_efl_canvas_layout_part_text_efl_text_style_text_effect_type_set(Eo *obj,
|
2018-11-06 06:52:53 -08:00
|
|
|
void *_pd EINA_UNUSED,
|
|
|
|
Efl_Text_Style_Effect_Type type)
|
|
|
|
{
|
|
|
|
Edje_User_Defined *eud;
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
|
|
|
|
|
|
|
|
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part);
|
|
|
|
|
|
|
|
eud->u.text_style.types |= EDJE_PART_TEXT_PROP_EFFECT_TYPE;
|
|
|
|
efl_text_effect_type_set(pd->rp->object, type);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_part_text_efl_text_format_ellipsis_set(Eo *obj,
|
|
|
|
void *_pd EINA_UNUSED, double value)
|
|
|
|
{
|
|
|
|
Edje_User_Defined *eud;
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
|
|
|
|
|
|
|
|
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part);
|
|
|
|
|
|
|
|
eud->u.text_style.types |= EDJE_PART_TEXT_PROP_ELLIPSIS;
|
|
|
|
efl_text_ellipsis_set(pd->rp->object, value);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static double
|
|
|
|
_efl_canvas_layout_part_text_efl_text_format_ellipsis_get(const Eo *obj,
|
|
|
|
void *_pd EINA_UNUSED)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return 0.0;
|
|
|
|
|
|
|
|
return efl_text_ellipsis_get(pd->rp->object);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
2019-12-26 01:08:00 -08:00
|
|
|
_efl_canvas_layout_part_text_efl_text_font_properties_font_family_set(Eo *obj,
|
2019-11-27 23:55:26 -08:00
|
|
|
void *_pd EINA_UNUSED, const char *font)
|
2018-11-06 06:52:53 -08:00
|
|
|
{
|
|
|
|
Edje_User_Defined *eud;
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
|
|
|
|
|
|
|
|
|
|
|
|
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part);
|
|
|
|
|
|
|
|
eud->u.text_style.types |= EDJE_PART_TEXT_PROP_FONT;
|
2019-11-27 23:55:26 -08:00
|
|
|
efl_text_font_family_set(pd->rp->object, font);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static const char *
|
2019-12-26 01:08:00 -08:00
|
|
|
_efl_canvas_layout_part_text_efl_text_font_properties_font_family_get(const Eo *obj,
|
2019-11-27 23:55:26 -08:00
|
|
|
void *_pd EINA_UNUSED)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return NULL;
|
|
|
|
|
|
|
|
return efl_text_font_family_get(pd->rp->object);
|
2018-11-06 06:52:53 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
2019-12-26 01:08:00 -08:00
|
|
|
_efl_canvas_layout_part_text_efl_text_font_properties_font_size_set(Eo *obj,
|
2019-11-27 23:55:26 -08:00
|
|
|
void *_pd EINA_UNUSED, Efl_Font_Size size)
|
2018-11-06 06:52:53 -08:00
|
|
|
{
|
2019-11-27 23:55:26 -08:00
|
|
|
Edje_User_Defined *eud;
|
|
|
|
|
2018-11-06 06:52:53 -08:00
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
|
|
|
|
|
2019-11-27 23:55:26 -08:00
|
|
|
|
|
|
|
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part);
|
|
|
|
|
|
|
|
eud->u.text_style.types |= EDJE_PART_TEXT_PROP_FONT;
|
|
|
|
efl_text_font_size_set(pd->rp->object, size);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static Efl_Font_Size
|
2019-12-26 01:08:00 -08:00
|
|
|
_efl_canvas_layout_part_text_efl_text_font_properties_font_size_get(const Eo *obj,
|
2019-11-27 23:55:26 -08:00
|
|
|
void *_pd EINA_UNUSED)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return 0;
|
|
|
|
|
|
|
|
return efl_text_font_size_get(pd->rp->object);
|
2018-11-06 06:52:53 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
2019-12-20 00:49:41 -08:00
|
|
|
_efl_canvas_layout_part_text_efl_text_style_text_shadow_direction_set(Eo *obj,
|
2018-11-06 06:52:53 -08:00
|
|
|
void *_pd EINA_UNUSED,
|
|
|
|
Efl_Text_Style_Shadow_Direction type)
|
|
|
|
{
|
|
|
|
Edje_User_Defined *eud;
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
|
|
|
|
|
|
|
|
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part);
|
|
|
|
|
|
|
|
eud->u.text_style.types |= EDJE_PART_TEXT_PROP_SHADOW_DIRECTION;
|
|
|
|
efl_text_shadow_direction_set(pd->rp->object, type);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
2019-12-20 00:49:41 -08:00
|
|
|
_efl_canvas_layout_part_text_efl_text_style_text_strikethrough_type_set(Eo *obj,
|
2018-11-06 06:52:53 -08:00
|
|
|
void *_pd EINA_UNUSED,
|
|
|
|
Efl_Text_Style_Strikethrough_Type type)
|
|
|
|
{
|
|
|
|
Edje_User_Defined *eud;
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
|
|
|
|
|
|
|
|
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part);
|
|
|
|
|
|
|
|
eud->u.text_style.types |= EDJE_PART_TEXT_PROP_STRIKETHROUGH_TYPE;
|
|
|
|
efl_text_strikethrough_type_set(pd->rp->object, type);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
2019-12-20 00:49:41 -08:00
|
|
|
_efl_canvas_layout_part_text_efl_text_style_text_underline_type_set(Eo *obj,
|
2018-11-06 06:52:53 -08:00
|
|
|
void *_pd EINA_UNUSED,
|
|
|
|
Efl_Text_Style_Underline_Type type)
|
|
|
|
{
|
|
|
|
Edje_User_Defined *eud;
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
|
|
|
|
|
|
|
|
|
|
|
|
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part);
|
|
|
|
|
|
|
|
eud->u.text_style.types = EDJE_PART_TEXT_PROP_UNDERLINE_TYPE;
|
|
|
|
efl_text_underline_type_set(pd->rp->object, type);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
2019-12-20 00:49:41 -08:00
|
|
|
_efl_canvas_layout_part_text_efl_text_style_text_underline_height_set(Eo *obj,
|
2018-11-06 06:52:53 -08:00
|
|
|
void *_pd EINA_UNUSED,
|
|
|
|
double value)
|
|
|
|
{
|
|
|
|
Edje_User_Defined *eud;
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
|
|
|
|
|
|
|
|
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part);
|
|
|
|
|
|
|
|
eud->u.text_style.types |= EDJE_PART_TEXT_PROP_UNDERLINE_HEIGHT;
|
|
|
|
efl_text_underline_height_set(pd->rp->object, value);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
2019-12-20 00:49:41 -08:00
|
|
|
_efl_canvas_layout_part_text_efl_text_style_text_underline_dashed_width_set(Eo *obj,
|
2018-11-06 06:52:53 -08:00
|
|
|
void *_pd EINA_UNUSED,
|
|
|
|
int value)
|
|
|
|
{
|
|
|
|
Edje_User_Defined *eud;
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
|
|
|
|
|
|
|
|
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part);
|
|
|
|
|
|
|
|
eud->u.text_style.types |= EDJE_PART_TEXT_PROP_UNDERLINE_DASHED_WIDTH;
|
|
|
|
efl_text_underline_dashed_width_set(pd->rp->object, value);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
2019-12-20 00:49:41 -08:00
|
|
|
_efl_canvas_layout_part_text_efl_text_style_text_underline_dashed_gap_set(Eo *obj,
|
2018-11-06 06:52:53 -08:00
|
|
|
void *_pd EINA_UNUSED,
|
|
|
|
int value)
|
|
|
|
{
|
|
|
|
Edje_User_Defined *eud;
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
|
|
|
|
|
|
|
|
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part);
|
|
|
|
|
|
|
|
eud->u.text_style.types |= EDJE_PART_TEXT_PROP_UNDERLINE_DASHED_GAP;
|
|
|
|
efl_text_underline_dashed_gap_set(pd->rp->object, value);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_part_text_efl_text_format_wrap_set(Eo *obj,
|
|
|
|
void *_pd EINA_UNUSED, Efl_Text_Format_Wrap wrap)
|
|
|
|
{
|
|
|
|
Edje_User_Defined *eud;
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
|
|
|
|
|
|
|
|
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part);
|
|
|
|
|
|
|
|
eud->u.text_style.types |= EDJE_PART_TEXT_PROP_WRAP;
|
|
|
|
efl_text_wrap_set(pd->rp->object, wrap);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static Efl_Text_Format_Wrap
|
|
|
|
_efl_canvas_layout_part_text_efl_text_format_wrap_get(const Eo *obj,
|
|
|
|
void *_pd EINA_UNUSED)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT)
|
|
|
|
return EFL_TEXT_FORMAT_WRAP_NONE;
|
|
|
|
|
|
|
|
return efl_text_wrap_get(pd->rp->object);
|
|
|
|
}
|
|
|
|
|
|
|
|
static Edje_Part_Text_Prop *
|
|
|
|
_prop_new(Eina_List **props, Edje_Part_Text_Prop_Type type)
|
|
|
|
{
|
|
|
|
Edje_Part_Text_Prop *prop;
|
|
|
|
|
|
|
|
prop = malloc(sizeof(*prop));
|
|
|
|
prop->type = type;
|
|
|
|
|
|
|
|
*props = eina_list_append(*props, prop);
|
|
|
|
|
|
|
|
return prop;
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
_canvas_layout_user_text_collect(Edje *ed, Edje_User_Defined *eud)
|
|
|
|
{
|
|
|
|
Edje_Real_Part *rp;
|
|
|
|
Eina_List **props = &eud->u.text_style.props;
|
|
|
|
|
|
|
|
rp = _edje_real_part_recursive_get(&ed, eud->part);
|
2019-02-12 23:15:57 -08:00
|
|
|
if (!rp) return;
|
|
|
|
|
2018-11-06 06:52:53 -08:00
|
|
|
if (eud->u.text_style.types == EDJE_PART_TEXT_PROP_NONE) return;
|
|
|
|
|
|
|
|
if (eud->u.text_style.types & EDJE_PART_TEXT_PROP_BACKING_TYPE)
|
|
|
|
{
|
|
|
|
Edje_Part_Text_Prop *prop;
|
|
|
|
|
|
|
|
prop = _prop_new(props, EDJE_PART_TEXT_PROP_BACKING_TYPE);
|
2019-12-20 00:49:41 -08:00
|
|
|
prop->val.backing = efl_text_background_type_get(rp->object);
|
2018-11-06 06:52:53 -08:00
|
|
|
}
|
|
|
|
#define STYLE_COLOR_COLLECT(x, X) \
|
|
|
|
if (eud->u.text_style.types & EDJE_PART_TEXT_PROP_COLOR_ ##X) \
|
|
|
|
{ \
|
|
|
|
Edje_Part_Text_Prop *prop; \
|
|
|
|
prop = _prop_new(props, EDJE_PART_TEXT_PROP_COLOR_ ##X); \
|
2019-12-20 00:49:41 -08:00
|
|
|
efl_ ##x ##_color_get(rp->object, \
|
2018-11-06 06:52:53 -08:00
|
|
|
&prop->val.color.r, &prop->val.color.g, \
|
|
|
|
&prop->val.color.b, &prop->val.color.a); \
|
|
|
|
} \
|
|
|
|
|
2019-12-20 00:49:41 -08:00
|
|
|
STYLE_COLOR_COLLECT(text_background, BACKING)
|
|
|
|
STYLE_COLOR_COLLECT(text_glow, GLOW)
|
|
|
|
STYLE_COLOR_COLLECT(text_glow2, GLOW2)
|
|
|
|
STYLE_COLOR_COLLECT(text, NORMAL)
|
|
|
|
STYLE_COLOR_COLLECT(text_outline, OUTLINE)
|
|
|
|
STYLE_COLOR_COLLECT(text_shadow, SHADOW)
|
|
|
|
STYLE_COLOR_COLLECT(text_strikethrough, STRIKETHROUGH)
|
|
|
|
STYLE_COLOR_COLLECT(text_underline, UNDERLINE)
|
|
|
|
STYLE_COLOR_COLLECT(text_underline2, UNDERLINE2)
|
|
|
|
STYLE_COLOR_COLLECT(text_underline_dashed, UNDERLINE_DASHED)
|
2018-11-06 06:52:53 -08:00
|
|
|
#undef STYLE_COLOR_COLLECT
|
|
|
|
|
|
|
|
if (eud->u.text_style.types & EDJE_PART_TEXT_PROP_EFFECT_TYPE)
|
|
|
|
{
|
|
|
|
Edje_Part_Text_Prop *prop;
|
|
|
|
|
|
|
|
prop = _prop_new(props, EDJE_PART_TEXT_PROP_EFFECT_TYPE);
|
|
|
|
prop->val.effect = efl_text_effect_type_get(rp->object);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (eud->u.text_style.types & EDJE_PART_TEXT_PROP_ELLIPSIS)
|
|
|
|
{
|
|
|
|
Edje_Part_Text_Prop *prop;
|
|
|
|
|
|
|
|
prop = _prop_new(props, EDJE_PART_TEXT_PROP_ELLIPSIS);
|
|
|
|
prop->val.nd = efl_text_ellipsis_get(rp->object);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (eud->u.text_style.types & EDJE_PART_TEXT_PROP_FONT)
|
|
|
|
{
|
|
|
|
Edje_Part_Text_Prop *prop;
|
|
|
|
|
|
|
|
prop = _prop_new(props, EDJE_PART_TEXT_PROP_FONT);
|
2019-11-27 23:55:26 -08:00
|
|
|
prop->val.font.font = efl_text_font_family_get(rp->object);
|
|
|
|
prop->val.font.size = efl_text_font_size_get(rp->object);
|
2018-11-06 06:52:53 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
if (eud->u.text_style.types & EDJE_PART_TEXT_PROP_SHADOW_DIRECTION)
|
|
|
|
{
|
|
|
|
Edje_Part_Text_Prop *prop;
|
|
|
|
|
|
|
|
prop = _prop_new(props, EDJE_PART_TEXT_PROP_SHADOW_DIRECTION);
|
|
|
|
prop->val.shadow = efl_text_shadow_direction_get(rp->object);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (eud->u.text_style.types & EDJE_PART_TEXT_PROP_STRIKETHROUGH_TYPE)
|
|
|
|
{
|
|
|
|
Edje_Part_Text_Prop *prop;
|
|
|
|
|
|
|
|
prop = _prop_new(props, EDJE_PART_TEXT_PROP_STRIKETHROUGH_TYPE);
|
|
|
|
prop->val.strikethrough_type = efl_text_strikethrough_type_get(rp->object);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (eud->u.text_style.types & EDJE_PART_TEXT_PROP_UNDERLINE_DASHED_GAP)
|
|
|
|
{
|
|
|
|
Edje_Part_Text_Prop *prop;
|
|
|
|
|
|
|
|
prop = _prop_new(props, EDJE_PART_TEXT_PROP_UNDERLINE_DASHED_GAP);
|
|
|
|
prop->val.ni = efl_text_underline_dashed_gap_get(rp->object);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (eud->u.text_style.types & EDJE_PART_TEXT_PROP_UNDERLINE_DASHED_WIDTH)
|
|
|
|
{
|
|
|
|
Edje_Part_Text_Prop *prop;
|
|
|
|
|
|
|
|
prop = _prop_new(props, EDJE_PART_TEXT_PROP_UNDERLINE_DASHED_WIDTH);
|
|
|
|
prop->val.ni = efl_text_underline_dashed_width_get(rp->object);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (eud->u.text_style.types & EDJE_PART_TEXT_PROP_UNDERLINE_TYPE)
|
|
|
|
{
|
|
|
|
Edje_Part_Text_Prop *prop;
|
|
|
|
|
|
|
|
prop = _prop_new(props, EDJE_PART_TEXT_PROP_UNDERLINE_TYPE);
|
|
|
|
prop->val.ni = efl_text_underline_type_get(rp->object);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (eud->u.text_style.types & EDJE_PART_TEXT_PROP_UNDERLINE_HEIGHT)
|
|
|
|
{
|
|
|
|
Edje_Part_Text_Prop *prop;
|
|
|
|
|
|
|
|
prop = _prop_new(props, EDJE_PART_TEXT_PROP_UNDERLINE_HEIGHT);
|
|
|
|
prop->val.ni = efl_text_underline_height_get(rp->object);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (eud->u.text_style.types & EDJE_PART_TEXT_PROP_WRAP)
|
|
|
|
{
|
|
|
|
Edje_Part_Text_Prop *prop;
|
|
|
|
|
|
|
|
prop = _prop_new(props, EDJE_PART_TEXT_PROP_WRAP);
|
|
|
|
prop->val.wrap = efl_text_wrap_get(rp->object);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
_canvas_layout_user_text_apply(Edje_User_Defined *eud, Eo *obj,
|
|
|
|
Edje_Part_Text_Prop *prop)
|
|
|
|
{
|
|
|
|
switch (prop->type)
|
|
|
|
{
|
|
|
|
|
|
|
|
case EDJE_PART_TEXT_PROP_BACKING_TYPE:
|
2019-12-20 00:49:41 -08:00
|
|
|
efl_text_background_type_set(
|
2018-11-06 06:52:53 -08:00
|
|
|
efl_part(obj,
|
|
|
|
eud->part),
|
|
|
|
prop->val.backing);
|
|
|
|
break;
|
|
|
|
|
|
|
|
#define STYLE_COLOR_CASE(x, X) \
|
|
|
|
case EDJE_PART_TEXT_PROP_COLOR_##X : \
|
2019-12-20 00:49:41 -08:00
|
|
|
efl_##x ##_color_set(efl_part(obj, \
|
2018-11-06 06:52:53 -08:00
|
|
|
eud->part), \
|
|
|
|
prop->val.color.r, \
|
|
|
|
prop->val.color.g, \
|
|
|
|
prop->val.color.b, \
|
|
|
|
prop->val.color.a); \
|
|
|
|
break;
|
|
|
|
|
2019-12-20 00:49:41 -08:00
|
|
|
STYLE_COLOR_CASE(text_background, BACKING)
|
|
|
|
STYLE_COLOR_CASE(text_glow, GLOW)
|
|
|
|
STYLE_COLOR_CASE(text_glow2, GLOW2)
|
|
|
|
STYLE_COLOR_CASE(text, NORMAL)
|
|
|
|
STYLE_COLOR_CASE(text_outline, OUTLINE)
|
|
|
|
STYLE_COLOR_CASE(text_shadow, SHADOW)
|
|
|
|
STYLE_COLOR_CASE(text_strikethrough, STRIKETHROUGH)
|
|
|
|
STYLE_COLOR_CASE(text_underline, UNDERLINE)
|
|
|
|
STYLE_COLOR_CASE(text_underline2, UNDERLINE2)
|
|
|
|
STYLE_COLOR_CASE(text_underline_dashed, UNDERLINE_DASHED)
|
2018-11-06 06:52:53 -08:00
|
|
|
#undef STYLE_COLOR_CASE
|
|
|
|
|
|
|
|
case EDJE_PART_TEXT_PROP_EFFECT_TYPE:
|
|
|
|
efl_text_effect_type_set(
|
|
|
|
efl_part(obj,
|
|
|
|
eud->part),
|
|
|
|
prop->val.effect);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EDJE_PART_TEXT_PROP_ELLIPSIS:
|
|
|
|
efl_text_ellipsis_set(efl_part(obj,
|
|
|
|
eud->part),
|
|
|
|
prop->val.nd);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EDJE_PART_TEXT_PROP_FONT:
|
2019-11-27 23:55:26 -08:00
|
|
|
efl_text_font_family_set(efl_part(obj,
|
|
|
|
eud->part),
|
|
|
|
prop->val.font.font);
|
|
|
|
efl_text_font_size_set(efl_part(obj,
|
2018-11-06 06:52:53 -08:00
|
|
|
eud->part),
|
|
|
|
prop->val.font.size);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EDJE_PART_TEXT_PROP_SHADOW_DIRECTION:
|
|
|
|
efl_text_shadow_direction_set(
|
|
|
|
efl_part(obj,
|
|
|
|
eud->part),
|
|
|
|
prop->val.shadow);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EDJE_PART_TEXT_PROP_STRIKETHROUGH_TYPE:
|
|
|
|
efl_text_strikethrough_type_set(
|
|
|
|
efl_part(obj,
|
|
|
|
eud->part),
|
|
|
|
prop->val.strikethrough_type);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EDJE_PART_TEXT_PROP_UNDERLINE_DASHED_WIDTH:
|
|
|
|
efl_text_underline_dashed_width_set(
|
|
|
|
efl_part(obj,
|
|
|
|
eud->part),
|
|
|
|
prop->val.ni);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EDJE_PART_TEXT_PROP_UNDERLINE_DASHED_GAP:
|
|
|
|
efl_text_underline_dashed_gap_set(
|
|
|
|
efl_part(obj,
|
|
|
|
eud->part),
|
|
|
|
prop->val.ni);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EDJE_PART_TEXT_PROP_UNDERLINE_TYPE:
|
|
|
|
efl_text_underline_type_set(
|
|
|
|
efl_part(obj,
|
|
|
|
eud->part),
|
|
|
|
prop->val.underline_type);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EDJE_PART_TEXT_PROP_UNDERLINE_HEIGHT:
|
|
|
|
efl_text_underline_height_set(
|
|
|
|
efl_part(obj,
|
|
|
|
eud->part),
|
|
|
|
prop->val.nd);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EDJE_PART_TEXT_PROP_WRAP:
|
|
|
|
efl_text_wrap_set(efl_part(obj,
|
|
|
|
eud->part),
|
|
|
|
prop->val.wrap);
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_part_text_text_expand_set(Eo *obj,
|
|
|
|
void *_pd EINA_UNUSED,
|
|
|
|
Efl_Canvas_Layout_Part_Text_Expand type)
|
|
|
|
{
|
|
|
|
Edje_User_Defined *eud;
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
|
|
|
|
|
|
|
|
eud = _edje_user_text_expand_definition_fetch(pd->ed, pd->part);
|
|
|
|
eud->u.text_expand.expand = type;
|
|
|
|
pd->rp->typedata.text->expand = type;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static Efl_Canvas_Layout_Part_Text_Expand
|
|
|
|
_efl_canvas_layout_part_text_text_expand_get(const Eo *obj,
|
|
|
|
void *_pd EINA_UNUSED)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
return pd->rp->typedata.text->expand;
|
|
|
|
}
|
|
|
|
|
edje/elm: Rename _internal_ to _part_ (EO)
In Edje and Elementary, we have part objects, which are what is returned
by the interface efl_part(). Those objects can't be of an opaque type as
this doesn't work nicely with strongly typed languages such as C++ or
C#. In JS, Lua, C the types are weak and mostly runtime-based so it
doesn't matter much.
As a consequence, the documentation and the types need to look nice in
this EO API. Thus, we remove the abusive term "internal" and explicitly
call all those classes "part" something.
Eventually we want the types to be declared in the EO file so bindings
(C#, C++, ...) can generate the proper access methods, returning the
best possible types.
Note that right now a few of those part types are used in the legacy API
but don't actually need to be exposed externally.
This is kind of a mega commit that does all the renaming at once, but
it's really just a big sed operation. The power of good IDEs :)
Ref T5315
Ref T5306
2017-09-12 21:29:25 -07:00
|
|
|
#include "efl_canvas_layout_part_text.eo.c"
|
2017-05-30 00:31:19 -07:00
|
|
|
|