e_view_text: add e_view_textblock apis 33/323633/1
authorSooChan Lim <sc1.lim@samsung.com>
Thu, 1 May 2025 10:24:44 +0000 (19:24 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Thu, 1 May 2025 11:27:23 +0000 (20:27 +0900)
Change-Id: I624cfd9e27582dc4b20499099850809ea06fb817

src/bin/core/e_view_text.c
src/include/e_view_text.h

index 345289e87fbad2d6070d9d3e85a7a14f202f564e..9770fd64a279d84e1a8a721eb2f78920d55ee7c9 100644 (file)
@@ -107,6 +107,42 @@ e_view_text_create(E_View_Tree *parent, int width, int height, const int color[4
    return text;
 }
 
+E_API E_View_Text *
+e_view_textblock_create(E_View_Tree *parent, char *style)
+{
+   E_Canvas *canvas;
+   E_View_Text *text;
+   Evas_Object *eo;
+   Evas_Textblock_Style *st;
+
+   assert(parent != NULL);
+
+   text = malloc(sizeof(*text));
+   if (!text)
+     return NULL;
+
+   canvas = e_canvas_get(&parent->view);
+   eo = evas_object_textblock_add(canvas->evas);
+   if (!eo)
+     {
+        free(text);
+        return NULL;
+     }
+
+   e_view_init(&text->view, E_VIEW_TYPE_TEXT, (E_View_Impl*)&view_text_impl, eo, parent);
+
+   st = evas_textblock_style_new();
+   evas_textblock_style_set(st, style);
+   evas_object_textblock_style_set(eo, st);
+   evas_textblock_style_free(st);
+
+   wl_signal_init(&text->events.resize);
+
+   evas_object_event_callback_add(text->view.eo, EVAS_CALLBACK_RESIZE, _view_text_evas_object_cb_resize, text);
+
+   return text;
+}
+
 E_API E_View *
 e_view_text_view_get(E_View_Text *text)
 {
@@ -202,3 +238,11 @@ e_view_text_text_get(E_View_Text *text)
 
    return evas_object_text_text_get(text->view.eo);
 }
+
+E_API void
+e_view_textblock_text_markup_set(E_View_Text *text, char *markup)
+{
+   if (text == NULL) return;
+
+   evas_object_textblock_text_markup_set(text->view.eo, markup);
+}
index 90a6eb1b16f79b41eb231f167bc4d192b013bbef..31dfc8a199c82f44de1e8b43a8766fb1772568bc 100644 (file)
@@ -14,6 +14,11 @@ typedef struct _E_View_Text E_View_Text;
  */
 E_View_Text *e_view_text_create(E_View_Tree *parent, int width, int height, const int color[4]);
 
+/**
+ * TODO
+ */
+E_View_Text *e_view_textblock_create(E_View_Tree *parent, char *style);
+
 /**
  * TODO
  */
@@ -69,6 +74,12 @@ void e_view_text_text_set(E_View_Text *text, const char *sentence);
  */
 const char *e_view_text_text_get(E_View_Text *text);
 
+/**
+ * TODO
+ */
+void e_view_textblock_text_markup_set(E_View_Text *text, char *markup);
+
+
 #ifdef  __cplusplus
 }
 #endif