All pastes #154944 Raw Edit

jeffdameth

public text v1 · immutable
#154944 ·published 2006-08-30 18:41 UTC
rendered paste body
/* 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));
}