Polish text interface methods

Summary:
This patch is set to rename some properties of `Efl.Text_Font` & `Efl.Text_Format` interfaces.

1- efl_text_font_set/get become (efl_text_font_family_set/get, efl_text_font_size_set/get)

2- efl_text_valign/halign   become efl_text_vertical/horizontal_align

3- efl_text_halign_auto_type  become  efl_text_horizontal_align_auto_type

Reviewers: ali.alzyod, woohyun, segfaultxavi, bu5hm4n, zmike, cedric

Reviewed By: woohyun

Subscribers: zmike, #committers, #reviewers, cedric

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10716
This commit is contained in:
Ali Alzyod 2019-11-28 16:55:26 +09:00 committed by WooHyun Jung
parent fa1aa10d79
commit 7bdb63d045
22 changed files with 262 additions and 135 deletions

View File

@ -67,7 +67,8 @@ test_efl_ui_text_label(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi
en = _create_label(win, bx);
efl_text_markup_set(en, "You can also <b>ENTER</b> markup!");
efl_text_font_set(en, "Sans", 14);
efl_text_font_family_set(en, "Sans");
efl_text_font_size_set(en, 14);
efl_text_wrap_set(en, EFL_TEXT_FORMAT_WRAP_WORD);
efl_text_multiline_set(en, EINA_TRUE);
@ -76,7 +77,8 @@ test_efl_ui_text_label(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi
"You can use the text -> markup helper\nto make coding easier.");
efl_text_markup_set(en, markup);
free(markup);
efl_text_font_set(en, "Sans", 14);
efl_text_font_family_set(en, "Sans");
efl_text_font_size_set(en, 14);
efl_text_wrap_set(en, EFL_TEXT_FORMAT_WRAP_WORD);
efl_text_multiline_set(en, EINA_TRUE);
@ -85,7 +87,8 @@ test_efl_ui_text_label(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi
"You can use markup -&gt; text helpers<ps>to make coding easier.");
efl_text_set(en, markup);
free(markup);
efl_text_font_set(en, "Sans", 14);
efl_text_font_family_set(en, "Sans");
efl_text_font_size_set(en, 14);
efl_text_wrap_set(en, EFL_TEXT_FORMAT_WRAP_WORD);
efl_text_multiline_set(en, EINA_TRUE);
}
@ -161,7 +164,8 @@ test_efl_ui_text(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve
efl_text_interactive_editable_set(en, EINA_TRUE);
efl_ui_text_scrollable_set(en, EINA_TRUE);
efl_text_font_set(en, "Sans", 12);
efl_text_font_family_set(en, "Sans");
efl_text_font_size_set(en, 12);
efl_text_font_width_set(en, EFL_TEXT_FONT_WIDTH_ULTRACONDENSED);
efl_text_normal_color_set(en, 255, 255, 255, 255);

View File

@ -294,11 +294,9 @@ _font_size_change(void *data, const Efl_Event *ev)
{
Eo *win = data;
Eo *text;
const char *font;
text = efl_key_wref_get(win, "text");
efl_text_font_get(text, &font, NULL);
efl_text_font_set(text, font, elm_spinner_value_get(ev->object));
efl_text_font_size_set(text, elm_spinner_value_get(ev->object));
}
static void
@ -462,7 +460,8 @@ test_gfx_filters(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve
// Note: No TEXT object with EO APIs
o = text = evas_object_text_add(evas_object_evas_get(win));
efl_event_callback_add(o, EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, _text_resize, NULL);
efl_text_font_set(o, "Sans:style=Bold", default_font_size);
efl_text_font_family_set(o, "Sans:style=Bold");
efl_text_font_size_set(o, default_font_size);
efl_gfx_entity_scale_set(text, elm_config_scale_get());
efl_text_set(o, "EFL");
efl_gfx_entity_visible_set(o, 1);

View File

@ -817,7 +817,8 @@ test_image_zoomable_animated(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSE
efl_text_set(efl_added, "Clicking the image will play/pause animation."),
efl_text_interactive_editable_set(efl_added, EINA_FALSE),
efl_gfx_hint_weight_set(efl_added, 1, 0),
efl_text_font_set(efl_added, "Sans", 10),
efl_text_font_family_set(efl_added, "Sans"),
efl_text_font_size_set(efl_added, 10),
efl_text_normal_color_set(efl_added, 255, 255, 255, 255),
efl_pack(bx, efl_added)
);

View File

@ -156,7 +156,7 @@ _setter_add(Eo *vbox, Eo *btn, Options option)
efl_add(EFL_UI_TEXT_CLASS, hbox,
efl_text_set(efl_added, text),
efl_text_interactive_editable_set(efl_added, EINA_FALSE),
efl_text_valign_set(efl_added, 0.5),
efl_text_vertical_align_set(efl_added, 0.5),
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(40, 0)),
efl_gfx_hint_weight_set(efl_added, 0, EFL_GFX_HINT_EXPAND),
efl_pack(hbox, efl_added));
@ -210,14 +210,14 @@ _button_frame_add(Eo *box, Eo *btn)
efl_add(EFL_UI_TEXT_CLASS, hbox,
efl_text_set(efl_added, "to"),
efl_text_interactive_editable_set(efl_added, EINA_FALSE),
efl_text_halign_set(efl_added, 0.5),
efl_text_horizontal_align_set(efl_added, 0.5),
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(60, 0)),
efl_gfx_hint_weight_set(efl_added, 0, EFL_GFX_HINT_EXPAND),
efl_pack(hbox, efl_added));
efl_add(EFL_UI_TEXT_CLASS, hbox,
efl_text_set(efl_added, "relative"),
efl_text_halign_set(efl_added, 0.5),
efl_text_horizontal_align_set(efl_added, 0.5),
efl_text_interactive_editable_set(efl_added, EINA_FALSE),
efl_pack(hbox, efl_added));

View File

@ -135,7 +135,8 @@ efl_main(void *data EINA_UNUSED,
efl_text_markup_set(efl_part(layout, "text"), "This is an example text. This is a layout text part.");
efl_text_wrap_set(efl_part(layout, "text"), wraps[wrap_itr].wrap);
efl_text_normal_color_set(efl_part(layout, "text"), 255, 255, 0, 255);
efl_text_font_set(efl_part(layout, "text"), "Serif", 12);
efl_text_font_family_set(efl_part(layout, "text"), "Serif");
efl_text_font_size_set(efl_part(layout, "text"), 12);
efl_canvas_layout_part_text_expand_set(efl_part(layout, "text"),
expands[expand_itr].expand);

View File

@ -154,7 +154,7 @@ elm_main(int argc EINA_UNUSED, char **argv)
txt = efl_add(EFL_UI_TEXT_CLASS, ibox);
efl_gfx_hint_weight_set(txt, 0.95, EFL_GFX_HINT_EXPAND);
efl_text_halign_set(txt, 0.2);
efl_text_horizontal_align_set(txt, 0.2);
efl_text_interactive_selection_allowed_set(txt, EINA_FALSE);
snprintf(buf, sizeof(buf), "placeholder style item [%d]", i);
efl_text_set(txt, buf);
@ -232,7 +232,7 @@ elm_main(int argc EINA_UNUSED, char **argv)
/*select mode */
txt = efl_add(EFL_UI_TEXT_CLASS, wbox);
efl_gfx_hint_weight_set(txt, EFL_GFX_HINT_EXPAND, 0.01);
efl_text_halign_set(txt, 0.02);
efl_text_horizontal_align_set(txt, 0.02);
efl_text_interactive_selection_allowed_set(txt, EINA_FALSE);
efl_text_set(txt, "Select Mode");
efl_pack_end(wbox, txt);
@ -260,7 +260,7 @@ elm_main(int argc EINA_UNUSED, char **argv)
txt = efl_add(EFL_UI_TEXT_CLASS, wbox);
efl_gfx_hint_weight_set(txt, EFL_GFX_HINT_EXPAND, 0.01);
efl_text_interactive_selection_allowed_set(txt, EINA_FALSE);
efl_text_halign_set(txt, 0.02);
efl_text_horizontal_align_set(txt, 0.02);
efl_text_set(txt, "Item Scroll");
efl_pack_end(wbox, txt);

View File

@ -149,8 +149,8 @@ _efl_canvas_layout_part_text_efl_text_format_ellipsis_get(const Eo *obj,
}
EOLIAN static void
_efl_canvas_layout_part_text_efl_text_font_font_set(Eo *obj,
void *_pd EINA_UNUSED, const char *font, Efl_Font_Size size)
_efl_canvas_layout_part_text_efl_text_font_font_family_set(Eo *obj,
void *_pd EINA_UNUSED, const char *font)
{
Edje_User_Defined *eud;
@ -161,17 +161,43 @@ _efl_canvas_layout_part_text_efl_text_font_font_set(Eo *obj,
eud = _edje_user_text_style_definition_fetch(pd->ed, pd->part);
eud->u.text_style.types |= EDJE_PART_TEXT_PROP_FONT;
efl_text_font_set(pd->rp->object, font, size);
efl_text_font_family_set(pd->rp->object, font);
}
EOLIAN static const char *
_efl_canvas_layout_part_text_efl_text_font_font_family_get(const Eo *obj,
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);
}
EOLIAN static void
_efl_canvas_layout_part_text_efl_text_font_font_get(const Eo *obj,
void *_pd EINA_UNUSED, const char **font, Efl_Font_Size *size)
_efl_canvas_layout_part_text_efl_text_font_font_size_set(Eo *obj,
void *_pd EINA_UNUSED, Efl_Font_Size size)
{
Edje_User_Defined *eud;
PROXY_DATA_GET(obj, pd);
if (pd->rp->part->type == EDJE_PART_TYPE_TEXT) return;
efl_text_font_get(pd->rp->object, font, size);
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
_efl_canvas_layout_part_text_efl_text_font_font_size_get(const Eo *obj,
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);
}
EOLIAN static void
@ -372,8 +398,8 @@ _canvas_layout_user_text_collect(Edje *ed, Edje_User_Defined *eud)
Edje_Part_Text_Prop *prop;
prop = _prop_new(props, EDJE_PART_TEXT_PROP_FONT);
efl_text_font_get(rp->object, &prop->val.font.font,
&prop->val.font.size);
prop->val.font.font = efl_text_font_family_get(rp->object);
prop->val.font.size = efl_text_font_size_get(rp->object);
}
if (eud->u.text_style.types & EDJE_PART_TEXT_PROP_SHADOW_DIRECTION)
@ -484,9 +510,11 @@ _canvas_layout_user_text_apply(Edje_User_Defined *eud, Eo *obj,
break;
case EDJE_PART_TEXT_PROP_FONT:
efl_text_font_set(efl_part(obj,
efl_text_font_family_set(efl_part(obj,
eud->part),
prop->val.font.font);
efl_text_font_size_set(efl_part(obj,
eud->part),
prop->val.font.font,
prop->val.font.size);
break;

View File

@ -141,7 +141,8 @@ _edje_text_fit_x(Edje *ed, Edje_Real_Part *ep,
if (ep->part->scale) evas_object_scale_set(ep->object, TO_DOUBLE(sc));
evas_obj_text_ellipsis_set(ep->object, params->type.text->ellipsis);
efl_text_font_set(ep->object, font, size);
efl_text_font_family_set(ep->object, font);
efl_text_font_size_set(ep->object, size);
efl_text_set(ep->object, text);
efl_gfx_entity_size_set(ep->object, EINA_SIZE2D(sw, sh));
@ -342,16 +343,19 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep,
/* the fit shoult not depend on font size, because it give the differet
* size calculation. As base font size for calculate fit size I take
* 10 (ten), because this value used for calculate fit by Y below */
efl_text_font_set(ep->object, font, 10);
efl_text_font_family_set(ep->object, font);
efl_text_font_size_set(ep->object, 10);
part_get_geometry(ep, &tw, &th);
size = (10 * sw) / tw;
efl_text_font_set(ep->object, font, size);
efl_text_font_family_set(ep->object, font);
efl_text_font_size_set(ep->object, size);
part_get_geometry(ep, &tw, &th);
while ((tw > sw) && (size > 1))
{
size--;
efl_text_font_set(ep->object, font, size);
efl_text_font_family_set(ep->object, font);
efl_text_font_size_set(ep->object, size);
part_get_geometry(ep, &tw, &th);
}
}
@ -368,7 +372,8 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep,
if (ep->part->scale) efl_gfx_entity_scale_set(ep->object, TO_DOUBLE(sc));
efl_text_font_set(ep->object, font, size);
efl_text_font_family_set(ep->object, font);
efl_text_font_size_set(ep->object, size);
efl_text_set(ep->object, text);
part_get_geometry(ep, &tw, &th);
@ -390,7 +395,8 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep,
else efl_text_font_source_set(ep->object, NULL);
if (ep->part->scale) efl_gfx_entity_scale_set(ep->object, TO_DOUBLE(sc));
efl_text_font_set(ep->object, font, size);
efl_text_font_family_set(ep->object, font);
efl_text_font_size_set(ep->object, size);
part_get_geometry(ep, &tw, &th);
if ((size > 0) && (th == 0)) break;
@ -402,7 +408,8 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep,
int current;
if (ep->part->scale) efl_gfx_entity_scale_set(ep->object, TO_DOUBLE(sc));
efl_text_font_set(ep->object, font, 10);
efl_text_font_family_set(ep->object, font);
efl_text_font_size_set(ep->object, 10);
part_get_geometry(ep, &tw, &th);
@ -424,7 +431,8 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep,
current = (top + bottom) / 2;
if (ep->part->scale) efl_gfx_entity_scale_set(ep->object, TO_DOUBLE(sc));
efl_text_font_set(ep->object, font, current);
efl_text_font_family_set(ep->object, font);
efl_text_font_size_set(ep->object, current);
part_get_geometry(ep, &tw, &th);
@ -440,7 +448,8 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep,
current++;
if (ep->part->scale) efl_gfx_entity_scale_set(ep->object, TO_DOUBLE(sc));
efl_text_font_set(ep->object, font, current);
efl_text_font_family_set(ep->object, font);
efl_text_font_size_set(ep->object, current);
part_get_geometry(ep, &tw, &th);
} while (th <= sh);
@ -490,7 +499,8 @@ arrange_text:
if (ep->part->scale) efl_gfx_entity_scale_set(ep->object, TO_DOUBLE(sc));
efl_text_font_set(ep->object, font, size);
efl_text_font_family_set(ep->object, font);
efl_text_font_size_set(ep->object, size);
efl_text_set(ep->object, text);
part_get_geometry(ep, &tw, &th);

View File

@ -38,7 +38,8 @@ Efl.Text_Markup, Efl.Text_Format, Efl.Text_Font, Efl.Text_Style
Efl.Text_Markup.markup { get; set; }
Efl.Text_Format.ellipsis { set; get; }
Efl.Text_Format.wrap { set; get; }
Efl.Text_Font.font { set; get; }
Efl.Text_Font.font_family { set; get; }
Efl.Text_Font.font_size { set; get; }
Efl.Text_Style.normal_color { set; get; }
Efl.Text_Style.backing_type { set; get; }
Efl.Text_Style.backing_color { set; get;}

View File

@ -52,19 +52,16 @@ interface @beta Efl.Text_Font {
]]
c_prefix: efl_text;
methods {
@property font {
[[The font family, filename and size for a given text object.
@property font_family {
[[The font family, filename for a given text object.
This property controls the font name and size of a text object.
This property controls the font name of a text object.
The font string has to follow fontconfig's convention for
naming fonts, as it's the underlying library used to query system
fonts by Evas (see the fc-list command's output, on your system,
to get an idea). Alternatively, youe can use the full path to a font
file.
To skip changing font family pass null as font family.
To skip changing font size pass 0 as font size.
When reading it, the font name string is still owned by
Evas and should not be freed.
See also @.font_source.
@ -75,9 +72,21 @@ interface @beta Efl.Text_Font {
}
values {
font: string; [[The font family name or filename.]]
}
}
@property font_size {
[[The font size for a given text object.
This property controls the font size of a text object.
]]
set {}
get {}
values {
size: Efl.Font.Size; [[The font size, in points.]]
}
}
@property font_source {
[[The font (source) file to be used on a given text object.
@ -85,7 +94,7 @@ interface @beta Efl.Text_Font {
given text object, overriding system lookup, which will first
occur in the given file's contents.
See also @.font.
See also @.font_family.
]]
set {
}

View File

@ -45,21 +45,21 @@ interface @beta Efl.Text_Format {
}
}
@property halign_auto_type {
@property horizontal_align_auto_type {
[[Horizontal alignment of text]]
values {
value: Efl.Text_Format_Horizontal_Alignment_Auto_Type; [[Alignment type]]
}
}
@property halign {
@property horizontal_align {
[[Horizontal alignment of text]]
values {
value: double; [[Horizontal alignment value]]
}
}
@property valign {
@property vertical_align {
[[Vertical alignment of text]]
values {
value: double; [[Vertical alignment value]]

View File

@ -2088,7 +2088,8 @@ _update_text_theme(Eo *obj, Efl_Ui_Text_Data *sd)
font_name = edje_object_data_get(wd->resize_obj, "font.name");
font_size = edje_object_data_get(wd->resize_obj, "font.size");
font_size_n = font_size ? atoi(font_size) : 0;
efl_text_font_set(sd->text_obj, font_name, font_size_n);
efl_text_font_family_set(sd->text_obj, font_name);
efl_text_font_size_set(sd->text_obj, font_size_n);
// color
if (disabled)
@ -2104,7 +2105,8 @@ _update_text_theme(Eo *obj, Efl_Ui_Text_Data *sd)
font_name = edje_object_data_get(wd->resize_obj, "guide.font.name");
font_size = edje_object_data_get(wd->resize_obj, "guide.font.size");
font_size_n = font_size ? atoi(font_size) : 0;
efl_text_font_set(sd->text_guide_obj, font_name, font_size_n);
efl_text_font_family_set(sd->text_guide_obj, font_name);
efl_text_font_size_set(sd->text_guide_obj, font_size_n);
colorcode = NULL;
// color

View File

@ -191,7 +191,8 @@ class @beta Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text,
Efl.Canvas.Filter.Internal.filter_dirty;
Efl.Canvas.Filter.Internal.filter_input_render;
Efl.Canvas.Filter.Internal.filter_state_prepare;
Efl.Text_Font.font { get; set; }
Efl.Text_Font.font_family { get; set; }
Efl.Text_Font.font_size { get; set; }
Efl.Text_Font.font_source { get; set; }
Efl.Text_Font.font_fallbacks { get; set; }
Efl.Text_Font.font_lang { get; set; }
@ -221,9 +222,9 @@ class @beta Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text,
Efl.Text_Format.ellipsis { get; set; }
Efl.Text_Format.wrap { get; set; }
Efl.Text_Format.multiline { get; set; }
Efl.Text_Format.halign { get; set; }
Efl.Text_Format.halign_auto_type { get; set; }
Efl.Text_Format.valign { get; set; }
Efl.Text_Format.horizontal_align { get; set; }
Efl.Text_Format.horizontal_align_auto_type { get; set; }
Efl.Text_Format.vertical_align { get; set; }
Efl.Text_Format.linegap { get; set; }
Efl.Text_Format.linerelgap { get; set; }
Efl.Text_Format.tabstops { get; set; }

View File

@ -450,52 +450,64 @@ _evas_text_font_reload(Eo *eo_obj, Evas_Text_Data *o)
}
EOLIAN static void
_evas_text_efl_text_font_font_set(Eo *eo_obj, Evas_Text_Data *o, const char *font, Evas_Font_Size size)
_evas_text_efl_text_font_font_family_set(Eo *eo_obj, Evas_Text_Data *o, const char *font)
{
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
Evas_Font_Description *fdesc;
if (!font && size <= 0) return;
EINA_SAFETY_ON_NULL_RETURN(font);
evas_object_async_block(obj);
if ((size == o->cur.size) &&
(o->cur.font && font && !strcmp(font, o->cur.font))) return;
if (eina_streq(font, o->cur.font)) return;
if (font)
/* We can't assume the given font is same with current fdesc by comparing string.
Since Evas starts to supporting "auto" for language,
the given font string should be parsed once before comparing it. */
fdesc = evas_font_desc_new();
/* Set default language according to locale. */
eina_stringshare_replace(&(fdesc->lang), evas_font_lang_normalize("auto"));
evas_font_name_parse(fdesc, font);
if (o->cur.fdesc && !evas_font_desc_cmp(fdesc, o->cur.fdesc))
{
/* We can't assume the given font is same with current fdesc by comparing string.
Since Evas starts to supporting "auto" for language,
the given font string should be parsed once before comparing it. */
fdesc = evas_font_desc_new();
/* Set default language according to locale. */
eina_stringshare_replace(&(fdesc->lang), evas_font_lang_normalize("auto"));
evas_font_name_parse(fdesc, font);
if (o->cur.fdesc && !evas_font_desc_cmp(fdesc, o->cur.fdesc) &&
(size == o->cur.size))
{
evas_font_desc_unref(fdesc);
return;
}
if (o->cur.fdesc) evas_font_desc_unref(o->cur.fdesc);
o->cur.fdesc = fdesc;
eina_stringshare_replace(&o->cur.font, font);
o->prev.font = NULL;
evas_font_desc_unref(fdesc);
return;
}
if ( size > 0 )
o->cur.size = size;
if (o->cur.fdesc) evas_font_desc_unref(o->cur.fdesc);
o->cur.fdesc = fdesc;
eina_stringshare_replace(&o->cur.font, font);
o->prev.font = NULL;
_evas_text_font_reload(eo_obj, o);
}
EOLIAN static void
_evas_text_efl_text_font_font_get(const Eo *eo_obj EINA_UNUSED, Evas_Text_Data *o, const char **font, Evas_Font_Size *size)
EOLIAN static const char *
_evas_text_efl_text_font_font_family_get(const Eo *eo_obj EINA_UNUSED, Evas_Text_Data *o)
{
if (font) *font = o->cur.font;
if (size) *size = o->cur.size;
return o->cur.font;
}
EOLIAN static void
_evas_text_efl_text_font_font_size_set(Eo *eo_obj, Evas_Text_Data *o, Evas_Font_Size size)
{
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
EINA_SAFETY_ON_TRUE_RETURN(size <= 0);
if (size == o->cur.size) return;
evas_object_async_block(obj);
o->cur.size = size;
_evas_text_font_reload(eo_obj, o);
}
EOLIAN static Evas_Font_Size
_evas_text_efl_text_font_font_size_get(const Eo *eo_obj EINA_UNUSED, Evas_Text_Data *o)
{
return o->cur.size;
}
static void
@ -1043,7 +1055,8 @@ _evas_text_efl_object_dbg_info_get(Eo *eo_obj, Evas_Text_Data *o EINA_UNUSED, Ef
const char *text;
int size;
efl_text_font_get(eo_obj, &text, &size);
text = efl_text_font_family_get(eo_obj);
size = efl_text_font_size_get(eo_obj);
EFL_DBG_INFO_APPEND(group, "Font", EINA_VALUE_TYPE_STRING, text);
EFL_DBG_INFO_APPEND(group, "Text size", EINA_VALUE_TYPE_INT, size);
@ -2200,6 +2213,8 @@ _evas_text_efl_gfx_entity_scale_set(Evas_Object *eo_obj, Evas_Text_Data *o,
font = eina_stringshare_add(o->cur.font);
size = o->cur.size;
if (o->cur.font) eina_stringshare_del(o->cur.font);
if (o->cur.fdesc) evas_font_desc_unref(o->cur.fdesc);
o->cur.fdesc = NULL;
o->cur.font = NULL;
o->prev.font = NULL;
o->cur.size = 0;
@ -2336,14 +2351,19 @@ evas_object_text_font_source_get(const Eo *obj)
EAPI void
evas_object_text_font_set(Eo *obj, const char *font, Evas_Font_Size size)
{
if (!font || size <= 0) return; /*Condition for legacy object*/
efl_text_font_set((Eo *) obj, font, size);
/*Condition for legacy object*/
EINA_SAFETY_ON_NULL_RETURN(font);
EINA_SAFETY_ON_TRUE_RETURN(size <= 0);
efl_text_font_family_set((Eo *) obj, font);
efl_text_font_size_set((Eo *) obj, size);
}
EAPI void
evas_object_text_font_get(const Eo *obj, const char **font, Evas_Font_Size *size)
{
efl_text_font_get((Eo *) obj, font, size);
if (font) *font = efl_text_font_family_get((Eo *) obj);
if (size) *size = efl_text_font_size_get((Eo *) obj);
}
EAPI void

View File

@ -15971,20 +15971,16 @@ _canvas_text_format_changed(Eo *eo_obj, Efl_Canvas_Text_Data *o)
/* Efl.Text.Font interface implementation */
static void
_efl_canvas_text_efl_text_font_font_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED, const char *font EINA_UNUSED, int size EINA_UNUSED)
_efl_canvas_text_efl_text_font_font_family_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED, const char *font)
{
ASYNC_BLOCK;
Eina_Bool changed = EINA_FALSE;
Eina_Stringshare *nfont;
if (size > 0 && o->default_format.info.size != size)
{
o->default_format.info.size = size;
changed = EINA_TRUE;
}
EINA_SAFETY_ON_NULL_RETURN(font);
if (font && o->default_format.info.font != font)
if (_FMT_INFO(font) != font && !eina_streq(_FMT_INFO(font), font))
{
nfont = eina_stringshare_add(font);
if (nfont == _FMT_INFO(font))
@ -16006,11 +16002,28 @@ _efl_canvas_text_efl_text_font_font_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Dat
}
}
static void
_efl_canvas_text_efl_text_font_font_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED, const char **font EINA_UNUSED, int *size EINA_UNUSED)
static const char *
_efl_canvas_text_efl_text_font_font_family_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o)
{
if (font) *font = o->default_format.info.font;
if (size) *size = o->default_format.info.size;
return o->default_format.info.font;
}
static void
_efl_canvas_text_efl_text_font_font_size_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o, int size)
{
ASYNC_BLOCK;
EINA_SAFETY_ON_FALSE_RETURN(size > 0);
if (o->default_format.info.size != size)
{
o->default_format.info.size = size;
_canvas_text_format_changed(obj, o);
}
}
static Efl_Font_Size
_efl_canvas_text_efl_text_font_font_size_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o)
{
return o->default_format.info.size;
}
static void
@ -16583,7 +16596,7 @@ _efl_canvas_text_efl_text_format_multiline_get(const Eo *obj EINA_UNUSED, Efl_Ca
}
static void
_efl_canvas_text_efl_text_format_halign_auto_type_set(Eo *obj, Efl_Canvas_Text_Data *o, Efl_Text_Format_Horizontal_Alignment_Auto_Type type)
_efl_canvas_text_efl_text_format_horizontal_align_auto_type_set(Eo *obj, Efl_Canvas_Text_Data *o, Efl_Text_Format_Horizontal_Alignment_Auto_Type type)
{
ASYNC_BLOCK;
if (type == EFL_TEXT_FORMAT_HORIZONTAL_ALIGNMENT_AUTO_TYPE_NONE)
@ -16605,7 +16618,7 @@ _efl_canvas_text_efl_text_format_halign_auto_type_set(Eo *obj, Efl_Canvas_Text_D
}
static Efl_Text_Format_Horizontal_Alignment_Auto_Type
_efl_canvas_text_efl_text_format_halign_auto_type_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o)
_efl_canvas_text_efl_text_format_horizontal_align_auto_type_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o)
{
Efl_Text_Format_Horizontal_Alignment_Auto_Type ret =
EFL_TEXT_FORMAT_HORIZONTAL_ALIGNMENT_AUTO_TYPE_NONE;
@ -16626,7 +16639,7 @@ _efl_canvas_text_efl_text_format_halign_auto_type_get(const Eo *obj EINA_UNUSED,
}
static void
_efl_canvas_text_efl_text_format_halign_set(Eo *obj, Efl_Canvas_Text_Data *o,
_efl_canvas_text_efl_text_format_horizontal_align_set(Eo *obj, Efl_Canvas_Text_Data *o,
double value)
{
ASYNC_BLOCK;
@ -16636,13 +16649,13 @@ _efl_canvas_text_efl_text_format_halign_set(Eo *obj, Efl_Canvas_Text_Data *o,
}
static double
_efl_canvas_text_efl_text_format_halign_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
_efl_canvas_text_efl_text_format_horizontal_align_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
{
return _FMT(halign);
}
static void
_efl_canvas_text_efl_text_format_valign_set(Eo *obj, Efl_Canvas_Text_Data *o,
_efl_canvas_text_efl_text_format_vertical_align_set(Eo *obj, Efl_Canvas_Text_Data *o,
double value)
{
ASYNC_BLOCK;
@ -16654,7 +16667,7 @@ _efl_canvas_text_efl_text_format_valign_set(Eo *obj, Efl_Canvas_Text_Data *o,
}
static double
_efl_canvas_text_efl_text_format_valign_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
_efl_canvas_text_efl_text_format_vertical_align_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
{
return o->valign;
}

View File

@ -1192,16 +1192,14 @@ _evas_textgrid_font_reload(Eo *eo_obj, Evas_Textgrid_Data *o)
}
EOLIAN static void
_evas_textgrid_efl_text_font_font_set(Eo *eo_obj,
_evas_textgrid_efl_text_font_font_family_set(Eo *eo_obj,
Evas_Textgrid_Data *o,
const char *font_name,
Evas_Font_Size font_size)
const char *font_name)
{
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
Evas_Font_Description *fdesc;
if ((!font_name) || (!*font_name) || (font_size <= 0))
return;
EINA_SAFETY_ON_TRUE_RETURN((!font_name) || (!*font_name));
evas_object_async_block(obj);
fdesc = evas_font_desc_new();
@ -1210,8 +1208,7 @@ _evas_textgrid_efl_text_font_font_set(Eo *eo_obj,
evas_font_lang_normalize("auto"));
evas_font_name_parse(fdesc, font_name);
if (o->cur.font_description_normal &&
!evas_font_desc_cmp(fdesc, o->cur.font_description_normal) &&
(font_size == o->cur.font_size))
!evas_font_desc_cmp(fdesc, o->cur.font_description_normal))
{
evas_font_desc_unref(fdesc);
return;
@ -1221,7 +1218,6 @@ _evas_textgrid_efl_text_font_font_set(Eo *eo_obj,
evas_font_desc_unref(o->cur.font_description_normal);
o->cur.font_description_normal = fdesc;
o->cur.font_size = font_size;
eina_stringshare_replace(&o->cur.font_name, font_name);
o->prev.font_name = NULL;
@ -1229,9 +1225,28 @@ _evas_textgrid_efl_text_font_font_set(Eo *eo_obj,
}
EOLIAN static void
_evas_textgrid_efl_text_font_font_get(const Eo *eo_obj EINA_UNUSED, Evas_Textgrid_Data *o, const char **font_name, Evas_Font_Size *font_size)
_evas_textgrid_efl_text_font_font_family_get(const Eo *eo_obj EINA_UNUSED, Evas_Textgrid_Data *o, const char **font_name)
{
if (font_name) *font_name = o->cur.font_name;
}
EOLIAN static void
_evas_textgrid_efl_text_font_font_size_set(Eo *eo_obj,
Evas_Textgrid_Data *o,
Evas_Font_Size font_size)
{
EINA_SAFETY_ON_TRUE_RETURN(font_size <= 0);
if (font_size == o->cur.font_size) return;
o->cur.font_size = font_size;
_evas_textgrid_font_reload(eo_obj, o);
}
EOLIAN static void
_evas_textgrid_efl_text_font_font_size_get(const Eo *eo_obj EINA_UNUSED, Evas_Textgrid_Data *o, Evas_Font_Size *font_size)
{
if (font_size) *font_size = o->cur.font_size;
}
@ -1442,7 +1457,8 @@ _evas_textgrid_efl_object_dbg_info_get(Eo *eo_obj, Evas_Textgrid_Data *o EINA_UN
const char *text;
int size;
efl_text_font_get(eo_obj, &text, &size);
text = efl_text_font_family_get(eo_obj);
size = efl_text_font_size_get(eo_obj);
EFL_DBG_INFO_APPEND(group, "Font", EINA_VALUE_TYPE_STRING, text);
EFL_DBG_INFO_APPEND(group, "Text size", EINA_VALUE_TYPE_INT, size);
@ -1475,13 +1491,15 @@ evas_object_textgrid_font_source_get(const Eo *obj)
EAPI void
evas_object_textgrid_font_set(Eo *obj, const char *font_name, Evas_Font_Size font_size)
{
efl_text_font_set((Eo *) obj, font_name, font_size);
efl_text_font_family_set((Eo *) obj, font_name);
efl_text_font_size_set((Eo *) obj, font_size);
}
EAPI void
evas_object_textgrid_font_get(const Eo *obj, const char **font_name, Evas_Font_Size *font_size)
{
efl_text_font_get((Eo *) obj, font_name, font_size);
if (font_name) *font_name = efl_text_font_family_get((Eo *) obj);
if (font_size) *font_size = efl_text_font_size_get((Eo *) obj);
}
EOLIAN static void

View File

@ -252,8 +252,10 @@ _evas_text_class_initializer(Efl_Class *klass)
EFL_OBJECT_OP_FUNC(efl_gfx_entity_scale_set, _evas_text_efl_gfx_entity_scale_set),
EFL_OBJECT_OP_FUNC(efl_text_set, _evas_text_efl_text_text_set),
EFL_OBJECT_OP_FUNC(efl_text_get, _evas_text_efl_text_text_get),
EFL_OBJECT_OP_FUNC(efl_text_font_set, _evas_text_efl_text_font_font_set),
EFL_OBJECT_OP_FUNC(efl_text_font_get, _evas_text_efl_text_font_font_get),
EFL_OBJECT_OP_FUNC(efl_text_font_family_set, _evas_text_efl_text_font_font_family_set),
EFL_OBJECT_OP_FUNC(efl_text_font_family_get, _evas_text_efl_text_font_font_family_get),
EFL_OBJECT_OP_FUNC(efl_text_font_size_set, _evas_text_efl_text_font_font_size_set),
EFL_OBJECT_OP_FUNC(efl_text_font_size_get, _evas_text_efl_text_font_font_size_get),
EFL_OBJECT_OP_FUNC(efl_text_font_source_set, _evas_text_efl_text_font_font_source_set),
EFL_OBJECT_OP_FUNC(efl_text_font_source_get, _evas_text_efl_text_font_font_source_get),
EFL_OBJECT_OP_FUNC(efl_text_font_bitmap_scalable_set, _evas_text_efl_text_font_font_bitmap_scalable_set),

View File

@ -45,10 +45,16 @@ Efl_Object *_evas_textgrid_efl_object_constructor(Eo *obj, Evas_Textgrid_Data *p
void _evas_textgrid_efl_object_destructor(Eo *obj, Evas_Textgrid_Data *pd);
void _evas_textgrid_efl_text_font_font_set(Eo *obj, Evas_Textgrid_Data *pd, const char *font, Efl_Font_Size size);
void _evas_textgrid_efl_text_font_font_family_set(Eo *obj, Evas_Textgrid_Data *pd, const char *font);
void _evas_textgrid_efl_text_font_font_get(const Eo *obj, Evas_Textgrid_Data *pd, const char **font, Efl_Font_Size *size);
void _evas_textgrid_efl_text_font_font_family_get(const Eo *obj, Evas_Textgrid_Data *pd, const char **font);
void _evas_textgrid_efl_text_font_font_size_set(Eo *obj, Evas_Textgrid_Data *pd, Efl_Font_Size size);
void _evas_textgrid_efl_text_font_font_size_get(const Eo *obj, Evas_Textgrid_Data *pd, Efl_Font_Size *size);
void _evas_textgrid_efl_text_font_font_source_set(Eo *obj, Evas_Textgrid_Data *pd, const char *font_source);
@ -90,8 +96,10 @@ _evas_textgrid_class_initializer(Efl_Class *klass)
EFL_OBJECT_OP_FUNC(evas_obj_textgrid_palette_get, _evas_textgrid_palette_get),
EFL_OBJECT_OP_FUNC(efl_constructor, _evas_textgrid_efl_object_constructor),
EFL_OBJECT_OP_FUNC(efl_destructor, _evas_textgrid_efl_object_destructor),
EFL_OBJECT_OP_FUNC(efl_text_font_set, _evas_textgrid_efl_text_font_font_set),
EFL_OBJECT_OP_FUNC(efl_text_font_get, _evas_textgrid_efl_text_font_font_get),
EFL_OBJECT_OP_FUNC(efl_text_font_family_set, _evas_textgrid_efl_text_font_font_family_set),
EFL_OBJECT_OP_FUNC(efl_text_font_family_get, _evas_textgrid_efl_text_font_font_family_get),
EFL_OBJECT_OP_FUNC(efl_text_font_size_set, _evas_textgrid_efl_text_font_font_size_set),
EFL_OBJECT_OP_FUNC(efl_text_font_size_get, _evas_textgrid_efl_text_font_font_size_get),
EFL_OBJECT_OP_FUNC(efl_text_font_source_set, _evas_textgrid_efl_text_font_font_source_set),
EFL_OBJECT_OP_FUNC(efl_text_font_source_get, _evas_textgrid_efl_text_font_font_source_get),
EFL_OBJECT_OP_FUNC(efl_text_font_bitmap_scalable_set, _evas_textgrid_efl_text_font_font_bitmap_scalable_set),

View File

@ -119,7 +119,7 @@ EOAPI void evas_obj_textgrid_grid_size_get(const Eo *obj, int *w, int *h);
* the textgrid object. @c width and @c height can be @c null. On error, they
* are set to 0.
*
* See also @ref efl_text_font_set and
* See also @ref efl_text_font_size_set, @ref efl_text_font_family_set and
* @ref evas_obj_textgrid_supported_font_styles_set
*
* @param[in] obj The object.

View File

@ -112,7 +112,7 @@ EAPI void evas_object_textgrid_size_get(const Evas_Textgrid *obj, int *w, int *h
* the textgrid object. @c width and @c height can be @c null. On error, they
* are set to 0.
*
* See also @ref Efl.Text_Font.font.set and
* See also @ref efl_text_font_size_set, @ref efl_text_font_family_set and
* @ref evas_object_textgrid_supported_font_styles_set
*
* @param[in] obj The object.

View File

@ -161,7 +161,8 @@ START_TEST(edje_test_text_font)
efl_file_key_set(layout, "test");
ck_assert(!efl_file_load(layout));
efl_text_font_set(efl_part(layout, "text"), "Sans", 14);
efl_text_font_family_set(efl_part(layout, "text"), "Sans");
efl_text_font_size_set(efl_part(layout, "text"), 14);
}
END_TEST
@ -288,7 +289,8 @@ _basic_check(Eo *layout, Eina_Bool set)
{
efl_text_wrap_set(efl_part(layout, "text"), EFL_TEXT_FORMAT_WRAP_WORD);
efl_text_ellipsis_set(efl_part(layout, "text"), 1.0);
efl_text_font_set(efl_part(layout, "text"), "Sans", 12);
efl_text_font_family_set(efl_part(layout, "text"), "Sans");
efl_text_font_size_set(efl_part(layout, "text"), 12);
}
wrap = efl_text_wrap_get(efl_part(layout, "text"));
@ -297,7 +299,8 @@ _basic_check(Eo *layout, Eina_Bool set)
ellipsis = efl_text_ellipsis_get(efl_part(layout, "text"));
ck_assert(EINA_DBL_EQ(ellipsis, 1.0));
efl_text_font_get(efl_part(layout, "text"), &font, &size);
font = efl_text_font_family_get(efl_part(layout, "text"));
size = efl_text_font_size_get(efl_part(layout, "text"));
ck_assert_str_eq(font, "Sans");
ck_assert_int_eq(size, 12);
}

View File

@ -4528,20 +4528,27 @@ EFL_START_TEST(efl_text_font)
const char * font;
int font_size;
efl_text_font_set(txt, "Sans", 20);
efl_text_font_set(txt, NULL, 0);
efl_text_font_family_set(txt, "Sans");
efl_text_font_size_set(txt, 20);
efl_text_font_family_set(txt, NULL);
efl_text_font_size_set(txt, 0);
efl_text_font_get(txt, &font, &font_size);
font = efl_text_font_family_get(txt);
font_size = efl_text_font_size_get(txt);
fail_if(20 != font_size);
fail_if(strcmp(font,"Sans"));
efl_text_font_set(txt, NULL, 30);
efl_text_font_get(txt, &font, &font_size);
efl_text_font_family_set(txt, NULL);
efl_text_font_size_set(txt, 30);
font = efl_text_font_family_get(txt);
font_size = efl_text_font_size_get(txt);
fail_if(30 != font_size);
fail_if(strcmp(font,"Sans"));
efl_text_font_set(txt, "arial", 0);
efl_text_font_get(txt, &font, &font_size);
efl_text_font_family_set(txt, "arial");
efl_text_font_size_set(txt, 0);
font = efl_text_font_family_get(txt);
font_size = efl_text_font_size_get(txt);
fail_if(30 != font_size);
fail_if(strcmp(font,"arial"));