summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_object_textblock.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/evas/canvas/evas_object_textblock.c')
-rw-r--r--src/lib/evas/canvas/evas_object_textblock.c196
1 files changed, 196 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c
index 4a8591ba03..86bc51acb7 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -618,6 +618,7 @@ struct _Evas_Object_Textblock
unsigned int font_slant;
unsigned int font_width;
Efl_Text_Style_Shadow_Direction shadow_direction;
+ Efl_Text_Format_Wrap wrap;
} info;
} default_format;
double valign;
@@ -15191,6 +15192,7 @@ _efl_canvas_text_efl_text_font_font_width_get(Eo *obj EINA_UNUSED, Efl_Canvas_Te
/* Efl.Text.Style interface implementation */
+/* Helper: sets color fields of style 'x' and informs if any are changed. */
#define _FMT_COLOR_SET(x) \
if ((_FMT(color.x).r == r) && (_FMT(color.x).g == g) \
&& (_FMT(color.x).b == b) && (_FMT(color.x).a == a)) return; \
@@ -15200,17 +15202,20 @@ _efl_canvas_text_efl_text_font_font_width_get(Eo *obj EINA_UNUSED, Efl_Canvas_Te
_FMT(color.x).a = a; \
_canvas_text_format_changed(obj, o);
+/* Helper: returns color fields of style 'x'. */
#define _FMT_COLOR_RET(x) \
if (r) *r = _FMT(color.x).r; \
if (g) *g = _FMT(color.x).g; \
if (b) *b = _FMT(color.x).b; \
if (a) *a = _FMT(color.x).a;
+/* Helper: updates format field, and informs if changed. */
#define _FMT_SET(x, v) \
if (_FMT(x) == v) return; \
_FMT(x) = v; \
_canvas_text_format_changed(obj, o);
+/* Helper: updates format field of extended format information, and informs if changed. */
#define _FMT_INFO_SET(x, v) \
if (_FMT_INFO(x) == v) return; \
_FMT_INFO(x) = v; \
@@ -15468,6 +15473,197 @@ _efl_canvas_text_efl_text_style_strikethrough_color_get(Eo *obj EINA_UNUSED, Efl
_FMT_COLOR_RET(strikethrough);
}
+static void
+_efl_canvas_text_efl_text_format_format_ellipsis_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED, double value EINA_UNUSED)
+{
+ _FMT_SET(ellipsis, value);
+}
+
+
+static double
+_efl_canvas_text_efl_text_format_format_ellipsis_get(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
+{
+ return _FMT(ellipsis);
+}
+
+
+static void
+_efl_canvas_text_efl_text_format_format_wrap_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED, Efl_Text_Format_Wrap wrap EINA_UNUSED)
+{
+ if (_FMT_INFO(wrap) == wrap) _FMT_INFO(wrap) = wrap;
+
+ _FMT(wrap_word) = (wrap == EFL_TEXT_FORMAT_WRAP_WORD);
+ _FMT(wrap_char) = (wrap == EFL_TEXT_FORMAT_WRAP_CHAR);
+ _FMT(wrap_mixed) = (wrap == EFL_TEXT_FORMAT_WRAP_MIXED);
+ _FMT(wrap_hyphenation) = (wrap == EFL_TEXT_FORMAT_WRAP_HYPHENATION);
+ _canvas_text_format_changed(obj, o);
+}
+
+
+static Efl_Text_Format_Wrap
+_efl_canvas_text_efl_text_format_format_wrap_get(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
+{
+ return _FMT_INFO(wrap);
+}
+
+
+static void
+_efl_canvas_text_efl_text_format_format_multiline_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED, Eina_Bool enabled EINA_UNUSED)
+{
+ if (o->multiline == enabled) return;
+ o->multiline = enabled;
+ _canvas_text_format_changed(obj, o);
+}
+
+
+static Eina_Bool
+_efl_canvas_text_efl_text_format_format_multiline_get(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
+{
+ return o->multiline;
+}
+
+
+static void
+_efl_canvas_text_efl_text_format_format_halign_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED, double value EINA_UNUSED)
+{
+ if (value < 0.0)
+ {
+ _FMT_SET(halign_auto, EINA_TRUE);
+ }
+ else
+ {
+ _FMT_SET(halign, value);
+ _FMT(halign_auto) = EINA_FALSE;
+ }
+}
+
+
+static double
+_efl_canvas_text_efl_text_format_format_halign_get(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
+{
+ return (_FMT(halign_auto) ? -1.0 : _FMT(halign));
+}
+
+
+static void
+_efl_canvas_text_efl_text_format_format_valign_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED, double value EINA_UNUSED)
+{
+ _FMT_SET(valign, value);
+}
+
+
+static double
+_efl_canvas_text_efl_text_format_format_valign_get(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
+{
+ return _FMT(valign);
+}
+
+
+static void
+_efl_canvas_text_efl_text_format_format_linegap_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED, double value EINA_UNUSED)
+{
+ double linerelgap = _FMT(linerelgap);
+ _FMT(linerelgap) = 0.0;
+
+ if (EINA_DBL_EQ(linerelgap, 0.0))
+ {
+ _FMT_SET(linegap, value);
+ }
+ else
+ {
+ _FMT(linegap) = value;
+ _FMT(linerelgap) = 0.0;
+ _canvas_text_format_changed(obj, o);
+ }
+}
+
+
+static double
+_efl_canvas_text_efl_text_format_format_linegap_get(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
+{
+ return _FMT(linegap);
+}
+
+
+static void
+_efl_canvas_text_efl_text_format_format_linerelgap_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED, double value EINA_UNUSED)
+{
+ double linegap = _FMT(linegap);
+ _FMT(linegap) = 0.0;
+
+ if (EINA_DBL_EQ(linegap, 0.0))
+ {
+ _FMT_SET(linerelgap, value);
+ }
+ else
+ {
+ _FMT(linerelgap) = value;
+ _canvas_text_format_changed(obj, o);
+ }
+}
+
+
+static double
+_efl_canvas_text_efl_text_format_format_linerelgap_get(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
+{
+ return _FMT(linerelgap);
+}
+
+
+static void
+_efl_canvas_text_efl_text_format_format_tabstops_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED, int value EINA_UNUSED)
+{
+ _FMT_SET(tabstops, value);
+}
+
+
+static int
+_efl_canvas_text_efl_text_format_format_tabstops_get(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
+{
+ return _FMT(tabstops);
+}
+
+
+static void
+_efl_canvas_text_efl_text_format_format_password_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED, Eina_Bool enabled EINA_UNUSED)
+{
+ _FMT_SET(password, enabled);
+}
+
+
+static Eina_Bool
+_efl_canvas_text_efl_text_format_format_password_get(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
+{
+ return _FMT(password);
+}
+
+static void
+_efl_canvas_text_efl_text_format_format_replacement_char_set(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED, const char *repch EINA_UNUSED)
+{
+ Eina_Stringshare *nrepch;
+ if (o->repch != repch)
+ {
+ nrepch = eina_stringshare_add(repch);
+ if (nrepch == _FMT_INFO(font_fallbacks))
+ {
+ /* Already stringshared here, unref */
+ eina_stringshare_del(nrepch);
+ }
+ else
+ {
+ // Set immediately, load repch later
+ o->repch = nrepch;
+ _canvas_text_format_changed(obj, o);
+ }
+ }
+}
+
+static const char *
+_efl_canvas_text_efl_text_format_format_replacement_char_get(Eo *obj EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED)
+{
+ return o->repch;
+}
+
/**
* @}
*/