[Widget]How a widget get it’s smart class

[Widget]How a widget get it’s smart class

BY 23 Jan 2015 Native Application Development

Actually I was reading the source code of Elementary currently.

I found some problems ,could you Please help me:

when I trace an widget about how it is created(Elm_layout, For example). It’s marvelous that I cannot find out how a widget’s Smart Class was created!

———————————————–elementary-1.7.1————————————————————-

————Elm_layout.c

  EAPI Evas_Object * elm_layout_add(Evas_Object *parent)

The detail is:

EAPI Evas_Object *
elm_layout_add(Evas_Object *parent)
{
   Evas_Object *obj;

   EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);

   obj = elm_widget_add( _elm_layout_widget_smart_class_new() , parent);
   if (!obj) return NULL;

   …….

}

I tried all I could do to find out the implementation of the new fuction(in bold) :

                   _elm_layout_widget_smart_class_new()

But failed!

And , I have noticed that many widgets(Maybe all) get its Smart class by this function.

Waiting for your answer!

 

Written by