/* Called when the label is realized */ static void _etk_label_realize_cb(Etk_Object *object, void *data) { Etk_Label *label; Evas *evas; const char *text_style = NULL; Etk_Widget *widget; Etk_Widget *parent, *tmp_parent; if (!(label = ETK_LABEL(object)) || !(evas = etk_widget_toplevel_evas_get(ETK_WIDGET(label)))) return; // if (!_etk_label_style) { _etk_label_style = evas_textblock_style_new(); /* try to find a text_style in the widgets hierarchy*/ widget = ETK_WIDGET(object); parent = widget; text_style = edje_object_data_get(parent->theme_object, "text_style"); //printf("TEXT STYLE: %s\n", text_style); printf("LABEL TEXT: %s\n",label->text); while(parent) { printf("PARENT NAME: %s\n",parent->name); if ((tmp_parent = etk_widget_theme_parent_get(parent))) { text_style = edje_object_data_get(tmp_parent->theme_object, "text_style"); printf("TEXT STYLE FOUND"); if(text_style) break; } printf("NEXT PARENT\n"); parent = etk_widget_parent_get(parent); } /* to provide a default label style which can be overwritten by widget text styles */ if(!text_style) text_style = edje_object_data_get(widget->theme_object, "text_style"); if (text_style) evas_textblock_style_set(_etk_label_style, text_style); else evas_textblock_style_set(_etk_label_style, "DEFAULT='font=Vera font_size=10 align=left color=#000000 wrap=word style=shadow shadow_color=#ffffff80'" "center='+ align=center'" "/center='- \n'" "right='+ align=right'" "/right='- \n'" "h1='+ font_size=20'" "b='+font=Vera-Bold'" "i='+font=Vera-Italic'" "glow='+ style=glow color=#fff glow2_color=#fe87 glow_color=#fa14'" "link='+ underline=on underline_color=#0000aa color=#0000aa'" "red='+ color=#ff0000'" "br='\n'" "tab='\t'"); _etk_label_style_use = 0; } label->clip = evas_object_rectangle_add(evas); evas_object_show(label->clip); etk_widget_member_object_add(ETK_WIDGET(label), label->clip); label->text_object = evas_object_textblock_add(evas); evas_object_textblock_style_set(label->text_object, _etk_label_style); evas_object_show(label->text_object); etk_widget_member_object_add(ETK_WIDGET(label), label->text_object); evas_object_clip_set(label->text_object, label->clip); _etk_label_style_use++; evas_object_textblock_text_markup_set(label->text_object, label->text); etk_widget_size_recalc_queue(ETK_WIDGET(label)); }