From e66cb85e648f4612633ef66d6ce3ed4ccafa7178 Mon Sep 17 00:00:00 2001 From: Alastair Poole Date: Sun, 21 Jun 2020 15:30:34 +0100 Subject: [PATCH] ui: adding textblock api. This might need more work. --- src/bin/ui/ui.c | 11 ++++++++++- src/bin/ui/ui_util.c | 43 +++++++++++++++++++++++++++++++++++++++++++ src/bin/ui/ui_util.h | 6 ++++++ 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/src/bin/ui/ui.c b/src/bin/ui/ui.c index 4b87fa7..d4cccdb 100644 --- a/src/bin/ui/ui.c +++ b/src/bin/ui/ui.c @@ -1202,7 +1202,7 @@ static Evas_Object * _ui_tabs_add(Evas_Object *parent, Ui *ui) { Evas_Object *table, *box, *entry, *hbox, *frame, *btn; - Evas_Object *border; + Evas_Object *border, *tb; ui->content = table = elm_table_add(parent); evas_object_size_hint_weight_set(table, EXPAND, EXPAND); @@ -1327,6 +1327,15 @@ _ui_tabs_add(Evas_Object *parent, Ui *ui) elm_entry_scrollable_set(entry, EINA_TRUE); elm_entry_editable_set(entry, EINA_TRUE); evas_object_show(entry); + + tb = elm_entry_textblock_get(entry); + if (tb) + { + int font_size = evisum_ui_textblock_font_size_get(tb); + if (font_size) + evisum_ui_textblock_font_size_set(tb, font_size + 2); + } + elm_object_content_set(border, entry); elm_box_pack_end(box, border); diff --git a/src/bin/ui/ui_util.c b/src/bin/ui/ui_util.c index 34b87f2..27dd524 100644 --- a/src/bin/ui/ui_util.c +++ b/src/bin/ui/ui_util.c @@ -106,3 +106,46 @@ evisum_icon_path_get(const char *name) return icon_path; } +void +evisum_ui_textblock_font_size_set(Evas_Object *tb, int new_size) +{ + Evas_Textblock_Style *ts; + + if (!tb) return; + + ts = evas_textblock_style_new(); + + evas_textblock_style_set(ts, + eina_slstr_printf("DEFAULT='font_size=%d'", new_size)); + evas_object_textblock_style_user_push(tb, ts); +} + +int +evisum_ui_textblock_font_size_get(Evas_Object *tb) +{ + const char *style; + char *p, *p1; + Evas_Textblock_Style *ts; + int size = 0; + + if (!tb) return size; + + ts = evas_object_textblock_style_get(tb); + if (!ts) return size; + + style = evas_textblock_style_get(ts); + if (!style && !style[0]) return size; + + p = strdup(style); + + p1 = strstr(p, "font_size="); + if (p1) + { + p1 += 10; + size = atoi(p1); + } + + free(p); + + return size; +} diff --git a/src/bin/ui/ui_util.h b/src/bin/ui/ui_util.h index a0d7fc9..e253f17 100644 --- a/src/bin/ui/ui_util.h +++ b/src/bin/ui/ui_util.h @@ -19,4 +19,10 @@ evisum_size_format(unsigned long long bytes); const char * evisum_icon_path_get(const char *name); +int +evisum_ui_textblock_font_size_get(Evas_Object *tb); +void +evisum_ui_textblock_font_size_set(Evas_Object *tb, int new_size); + + #endif