Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
Widgets Extension Infrastructure

This section is intended for people willing to create custom Elementary widgets or to contribute new (useful, unique) widgets upstream. More...

Data Structures

struct  _Efl_Ui_Flip_Data
 
struct  _Slice
 
struct  _Vertex2
 
struct  _Vertex3
 
struct  _Efl_Ui_Frame_Data
 
struct  _Efl_Ui_Image_Data
 
struct  _Elm_Pan_Smart_Data
 
struct  _Elm_Scrollable_Smart_Interface_Data
 
struct  _Elm_Widget_Smart_Data
 Base widget smart data. More...
 
struct  _Elm_Actionslider_Data
 
struct  _Elm_Box_Data
 
struct  _Elm_Box_Transition
 
struct  _Transition_Animation_Data
 
struct  _Elm_Bubble_Data
 
struct  _Elm_Calendar_Data
 
struct  _Elm_Calendar_Mark
 
struct  _Elm_Clock_Data
 
struct  _Elm_Colorselector_Data
 
struct  _Color_Bar_Data
 
struct  _Elm_Color_Item_Data
 
struct  _Elm_Color_Name
 
struct  _Elm_Combobox_Data
 
struct  _Elm_Conformant_Data
 
struct  _Elm_Ctxpopup_Item_Data
 
struct  _Elm_Ctxpopup_Data
 
struct  _Elm_Dayselector_Data
 
struct  _Elm_Dayselector_Item_Data
 
struct  _Elm_Diskselector_Data
 
struct  _Elm_Diskselector_Item_Data
 
struct  _Elm_Entry_Data
 
struct  _Elm_Entry_Context_Menu_Item
 
struct  _Elm_Entry_Item_Provider
 
struct  _Elm_Entry_Markup_Filter
 
struct  _Elm_Fileselector_Data
 
struct  sel_data
 
struct  _Listing_Request
 
struct  _Elm_Fileselector_Item_Data
 
struct  _Elm_Fileselector_Custom_Filter
 
struct  _Elm_Fileselector_Filter
 
struct  _Elm_Fileselector_Button_Data
 
struct  _Elm_Fileselector_Entry_Data
 
struct  _Elm_Flipselector_Data
 
struct  _Elm_Flipselector_Item_Data
 
struct  _Elm_Gengrid_Data
 
struct  Elm_Gen_Item_Type
 
struct  _Item_Cache
 
struct  _Elm_Gengrid_Pan_Data
 
struct  _Elm_Genlist_Data
 
struct  _Item_Block
 
struct  _Item_Size
 
struct  _Elm_Genlist_Pan_Data
 
struct  _Elm_Genlist_Filter
 
struct  _Elm_Glview_Data
 
struct  _Content_Info
 
struct  _Elm_Hover_Data
 
struct  _Elm_Hoversel_Data
 
struct  _Elm_Hoversel_Item_Data
 
struct  _Elm_Icon_Data
 
struct  _Elm_Index_Data
 
struct  _Elm_Index_Item_Data
 
struct  _Elm_Index_Omit
 
struct  _Elm_Inwin_Smart_Data
 
struct  _Efl_Ui_Layout_Data
 Base widget smart data extended with layout instance data. More...
 
struct  _Elm_Layout_Data
 
struct  _Elm_List_Data
 
struct  _Elm_List_Item_Data
 
struct  _Source_Tile
 
struct  _Source_Route
 
struct  _Source_Name
 
struct  _Path
 
struct  _Region
 
struct  _Color
 
struct  _Overlay_Group
 
struct  _Overlay_Default
 
struct  _Overlay_Class
 
struct  _Overlay_Bubble
 
struct  _Overlay_Route
 
struct  _Overlay_Line
 
struct  _Overlay_Polygon
 
struct  _Overlay_Circle
 
struct  _Overlay_Scale
 
struct  _Elm_Map_Overlay
 
struct  _Elm_Map_Route
 
struct  _Path_Node
 
struct  _Path_Waypoint
 
struct  _Elm_Map_Name
 
struct  _Elm_Map_Name_List
 
struct  _Route_Dump
 
struct  _Name_Dump
 
struct  _Grid_Item
 
struct  _Grid
 
struct  _Calc_Job
 
struct  _Elm_Map_Data
 
struct  _Elm_Map_Pan_Data
 
struct  _Elm_Mapbuf_Data
 
struct  _Elm_Menu_Data
 
struct  _Elm_Menu_Item_Data
 
struct  _Multibuttonentry_Item
 
struct  _Elm_Multibuttonentry_Item_Filter
 
struct  _Elm_Multibuttonentry_Data
 
struct  _Elm_Naviframe_Data
 
struct  _Elm_Naviframe_Item_Data
 
struct  _Elm_Naviframe_Op
 
struct  _Elm_Naviframe_Content_Item_Pair
 
struct  _Elm_Naviframe_Text_Item_Pair
 
struct  _Elm_Notify_Data
 
struct  _Elm_Panel_Data
 
struct  _Elm_Photo_Data
 
struct  _Elm_Player_Data
 
struct  _Elm_Popup_Data
 
struct  _Elm_Popup_Item_Data
 
struct  _Action_Area_Data
 
struct  _Elm_Prefs_Page_Node
 
struct  _Elm_Prefs_Item_Node
 
struct  _Elm_Route_Data
 
struct  Segment
 
struct  _Elm_Scroller_Data
 
struct  _Elm_Segment_Control_Data
 
struct  _Elm_Segment_Control_Item_Data
 
struct  _Elm_Separator_Data
 
struct  _Elm_Slider_Data
 
struct  _Elm_Slideshow_Item_Data
 
struct  _Elm_Slideshow_Data
 
struct  _Elm_Spinner_Data
 
struct  _Elm_Spinner_Special_Value
 
struct  _Elm_Thumb_Data
 
struct  _Elm_Toolbar_Data
 
struct  _Elm_Toolbar_Item_Data
 
struct  _Elm_Web_Data
 
struct  _Elm_Web_Callback_Proxy_Context
 

Macros

#define ELM_SCROLLABLE_CHECK(obj, ...)
 
#define ELM_FLIPSELECTOR_DATA_GET(o, sd)    Elm_Flipselector_Data * sd = efl_data_scope_get(o, ELM_FLIPSELECTOR_CLASS)
 
#define ELM_FLIPSELECTOR_DATA_GET_OR_RETURN(o, ptr)
 
#define ELM_FLIPSELECTOR_DATA_GET_OR_RETURN_VAL(o, ptr, val)
 
#define ELM_FLIPSELECTOR_ITEM_DATA_GET(o, sd)    Elm_Flipselector_Item_Data * sd = efl_data_scope_get(o, ELM_FLIPSELECTOR_ITEM_CLASS)
 
#define ELM_FLIPSELECTOR_CHECK(obj)
 
#define ELM_FLIPSELECTOR_ITEM_CHECK(it)
 
#define ELM_FLIPSELECTOR_ITEM_CHECK_OR_RETURN(it, ...)
 
#define ELM_GENLIST_FILTER_ITERATOR_ITEM_GET(ptr, type)
 
#define ELM_LIST_SWIPE_MOVES   12
 
#define ELM_POPUP_ACTION_BUTTON_MAX   3
 

Typedefs

typedef struct _Slice Slice
 
typedef struct _Efl_Ui_Flip_Data Efl_Ui_Flip_Data
 Base widget smart data extended with flip instance data.
 
typedef struct _Vertex2 Vertex2
 
typedef struct _Vertex3 Vertex3
 
typedef struct _Efl_Ui_Frame_Data Efl_Ui_Frame_Data
 Base layout smart data extended with frame instance data.
 
typedef struct _Efl_Ui_Image_Data Efl_Ui_Image_Data
 Base widget smart data extended with image instance data.
 
typedef struct _Elm_Pan_Smart_Data Elm_Pan_Smart_Data
 Elementary scroller panning base smart data.
 
typedef void(* Elm_Interface_Scrollable_Cb) (Evas_Object *, void *data)
 Elementary scrollable interface base data.
 
typedef void(* Elm_Interface_Scrollable_Min_Limit_Cb) (Evas_Object *obj, Eina_Bool w, Eina_Bool h)
 
typedef void(* Elm_Interface_Scrollable_Resize_Cb) (Evas_Object *obj, Evas_Coord w, Evas_Coord h)
 
typedef struct _Elm_Scrollable_Smart_Interface_Data Elm_Scrollable_Smart_Interface_Data
 
typedef struct _Elm_Widget_Smart_Data Elm_Widget_Smart_Data
 Base widget smart data. More...
 
typedef Elm_Widget_Smart_Data Efl_Ui_Widget_Data
 
typedef struct _Elm_Actionslider_Data Elm_Actionslider_Data
 Base layout smart data extended with actionslider instance data.
 
typedef struct _Elm_Box_Data Elm_Box_Data
 Base widget smart data extended with box instance data.
 
typedef struct _Transition_Animation_Data Transition_Animation_Data
 
typedef struct _Elm_Bubble_Data Elm_Bubble_Data
 Base layout smart data extended with bubble instance data.
 
typedef struct _Elm_Calendar_Data Elm_Calendar_Data
 Base layout smart data extended with calendar instance data.
 
typedef enum _Day_Color Day_Color
 
typedef struct _Elm_Clock_Data Elm_Clock_Data
 Base layout smart data extended with clock instance data.
 
typedef struct _Color_Bar_Data Color_Bar_Data
 
typedef struct _Elm_Colorselector_Data Elm_Colorselector_Data
 Base layout smart data extended with colorselector instance data.
 
typedef enum _Color_Type Color_Type
 
typedef struct _Elm_Color_Item_Data Elm_Color_Item_Data
 
typedef struct _Elm_Color_Name Elm_Color_Name
 
typedef struct _Elm_Combobox_Data Elm_Combobox_Data
 Base button smart data extended with combobox instance data.
 
typedef struct _Elm_Conformant_Data Elm_Conformant_Data
 Base layout smart data extended with conformant instance data.
 
typedef enum _Conformant_Part_Type Conformant_Part_Type
 
typedef struct _Elm_Ctxpopup_Item_Data Elm_Ctxpopup_Item_Data
 
typedef struct _Elm_Ctxpopup_Data Elm_Ctxpopup_Data
 Base widget smart data extended with ctxpopup instance data.
 
typedef struct _Elm_Dayselector_Data Elm_Dayselector_Data
 Base layout smart data extended with dayselector instance data.
 
typedef struct _Elm_Dayselector_Item_Data Elm_Dayselector_Item_Data
 
typedef struct _Elm_Diskselector_Data Elm_Diskselector_Data
 Base widget smart data extended with diskselector instance data.
 
typedef struct _Elm_Diskselector_Item_Data Elm_Diskselector_Item_Data
 
typedef struct _Mod_Api Mod_Api
 
typedef struct _Elm_Entry_Data Elm_Entry_Data
 Base widget smart data extended with entry instance data.
 
typedef struct _Elm_Entry_Item_Provider Elm_Entry_Item_Provider
 
typedef struct _Elm_Entry_Markup_Filter Elm_Entry_Markup_Filter
 
typedef enum _Length_Unit Length_Unit
 
typedef struct _Elm_Fileselector_Filter Elm_Fileselector_Filter
 
typedef struct _Listing_Request Listing_Request
 
typedef struct _Elm_Fileselector_Item_Data Elm_Fileselector_Item_Data
 
typedef struct _Elm_Fileselector_Data Elm_Fileselector_Data
 Base layout smart data extended with fileselector instance data.
 
typedef struct _Elm_Fileselector_Custom_Filter Elm_Fileselector_Custom_Filter
 
typedef struct _Elm_Fileselector_Button_Data Elm_Fileselector_Button_Data
 Base button smart data extended with fileselector_button instance data.
 
typedef struct _Elm_Fileselector_Entry_Data Elm_Fileselector_Entry_Data
 Base entry smart data extended with fileselector_entry instance data.
 
typedef struct _Elm_Flipselector_Data Elm_Flipselector_Data
 Base layout smart data extended with flipselector instance data.
 
typedef struct _Elm_Flipselector_Item_Data Elm_Flipselector_Item_Data
 
typedef struct _Elm_Gengrid_Data Elm_Gengrid_Data
 Base widget smart data extended with gengrid instance data.
 
typedef struct _Item_Cache Item_Cache
 
typedef struct _Elm_Gengrid_Pan_Data Elm_Gengrid_Pan_Data
 
typedef struct _Elm_Genlist_Data Elm_Genlist_Data
 Base widget smart data extended with genlist instance data.
 
typedef struct _Item_Block Item_Block
 
typedef struct _Item_Cache Item_Cache
 
typedef struct _Item_Size Item_Size
 
typedef struct _Elm_Genlist_Pan_Data Elm_Genlist_Pan_Data
 
typedef struct _Elm_Genlist_Filter Elm_Genlist_Filter
 Structure added to genlist for internal filter iterator implementation Can be extended to genlist as a whole in future if needed.
 
typedef struct _Elm_Glview_Data Elm_Glview_Data
 Base widget smart data extended with glview instance data.
 
typedef struct _Elm_Hover_Data Elm_Hover_Data
 Base widget smart data extended with hover instance data.
 
typedef struct _Content_Info Content_Info
 
typedef struct _Elm_Hoversel_Data Elm_Hoversel_Data
 Base button smart data extended with hoversel instance data.
 
typedef struct _Elm_Hoversel_Item_Data Elm_Hoversel_Item_Data
 
typedef struct _Elm_Icon_Data Elm_Icon_Data
 
typedef struct _Elm_Index_Data Elm_Index_Data
 Base layout smart data extended with index instance data.
 
typedef struct _Elm_Index_Item_Data Elm_Index_Item_Data
 
typedef struct _Elm_Index_Omit Elm_Index_Omit
 
typedef struct _Elm_Inwin_Smart_Data Elm_Inwin_Smart_Data
 Base layout smart data extended with inwin instance data.
 
typedef struct _Efl_Ui_Layout_Data Efl_Ui_Layout_Data
 Base widget smart data extended with layout instance data.
 
typedef struct _Elm_Layout_Data Elm_Layout_Data
 
typedef struct _Elm_List_Item_Data Elm_List_Item_Data
 
typedef struct _Elm_List_Data Elm_List_Data
 Base widget smart data extended with list instance data.
 
typedef struct _Elm_Map_Data Elm_Map_Data
 Base widget smart data extended with map instance data.
 
typedef struct _Elm_Map_Name_List Elm_Map_Name_List
 
typedef Eina_Stringshare *(* Elm_Map_Module_Source_Name_Func) (void)
 
typedef int(* Elm_Map_Module_Tile_Zoom_Min_Func) (void)
 
typedef int(* Elm_Map_Module_Tile_Zoom_Max_Func) (void)
 
typedef char *(* Elm_Map_Module_Tile_Url_Func) (const Evas_Object *, int, int, int)
 
typedef Eina_Bool(* Elm_Map_Module_Tile_Geo_to_Coord_Func) (const Evas_Object *, int, double, double, int, int *, int *)
 
typedef Eina_Bool(* Elm_Map_Module_Tile_Coord_to_Geo_Func) (const Evas_Object *, int, int, int, int, double *, double *)
 
typedef double(* Elm_Map_Module_Tile_Scale_Func) (const Evas_Object *, double, double, int)
 
typedef Evas_Object *(* Elm_Map_Module_Tile_Copyright_Func) (Evas_Object *)
 
typedef char *(* Elm_Map_Module_Route_Url_Func) (const Evas_Object *, const char *, int, double, double, double, double)
 
typedef void(* Elm_Map_Module_Route_Parse_Func) (Elm_Map_Route *)
 
typedef char *(* Elm_Map_Module_Name_Url_Func) (const Evas_Object *, int, const char *, double, double)
 
typedef void(* Elm_Map_Module_Name_Parse_Func) (Elm_Map_Name *n)
 
typedef void(* Elm_Map_Module_Name_List_Parse_Func) (Elm_Map_Name_List *nl)
 
typedef struct _Source_Tile Source_Tile
 
typedef struct _Source_Route Source_Route
 
typedef struct _Source_Name Source_Name
 
typedef struct _Path Path
 
typedef struct _Color Color
 
typedef struct _Region Region
 
typedef struct _Grid Grid
 
typedef struct _Grid_Item Grid_Item
 
typedef struct _Overlay_Default Overlay_Default
 
typedef struct _Overlay_Class Overlay_Class
 
typedef struct _Overlay_Group Overlay_Group
 
typedef struct _Overlay_Bubble Overlay_Bubble
 
typedef struct _Overlay_Route Overlay_Route
 
typedef struct _Overlay_Line Overlay_Line
 
typedef struct _Overlay_Polygon Overlay_Polygon
 
typedef struct _Overlay_Circle Overlay_Circle
 
typedef struct _Overlay_Scale Overlay_Scale
 
typedef struct _Path_Node Path_Node
 
typedef struct _Path_Waypoint Path_Waypoint
 
typedef struct _Route_Dump Route_Dump
 
typedef struct _Name_Dump Name_Dump
 
typedef struct _Calc_Job Calc_Job
 
typedef struct _Elm_Map_Pan_Data Elm_Map_Pan_Data
 
typedef struct _Elm_Mapbuf_Data Elm_Mapbuf_Data
 Base widget smart data extended with mapbuf instance data.
 
typedef struct _Elm_Menu_Data Elm_Menu_Data
 Base widget smart data extended with menu instance data.
 
typedef struct _Elm_Menu_Item_Data Elm_Menu_Item_Data
 
typedef enum _Multibuttonentry_Pos Multibuttonentry_Pos
 Base widget smart data extended with multibuttonentry instance data.
 
typedef enum _Multibuttonentry_Button_State Multibuttonentry_Button_State
 
typedef enum _MultiButtonEntry_Closed_Button_Type MultiButtonEntry_Closed_Button_Type
 
typedef enum _Multibuttonentry_View_State Multibuttonentry_View_State
 
typedef struct _Multibuttonentry_Item Elm_Multibuttonentry_Item_Data
 
typedef struct _Elm_Multibuttonentry_Item_Filter Elm_Multibuttonentry_Item_Filter
 
typedef struct _Elm_Multibuttonentry_Data Elm_Multibuttonentry_Data
 
typedef struct _Elm_Naviframe_Data Elm_Naviframe_Data
 Base layout smart data extended with naviframe instance data.
 
typedef struct _Elm_Naviframe_Item_Data Elm_Naviframe_Item_Data
 
typedef struct _Elm_Naviframe_Op Elm_Naviframe_Op
 
typedef struct _Elm_Naviframe_Content_Item_Pair Elm_Naviframe_Content_Item_Pair
 
typedef struct _Elm_Naviframe_Text_Item_Pair Elm_Naviframe_Text_Item_Pair
 
typedef struct _Elm_Notify_Data Elm_Notify_Data
 Base widget smart data extended with notify instance data.
 
typedef struct _Elm_Panel_Data Elm_Panel_Data
 Base layout smart data extended with panel instance data.
 
typedef struct _Elm_Photo_Data Elm_Photo_Data
 Base widget smart data extended with photo instance data.
 
typedef struct _Elm_Player_Data Elm_Player_Data
 Base layout smart data extended with player instance data.
 
typedef struct _Action_Area_Data Action_Area_Data
 
typedef struct _Elm_Popup_Data Elm_Popup_Data
 Base layout smart data extended with popup instance data.
 
typedef struct _Elm_Popup_Item_Data Elm_Popup_Item_Data
 
typedef struct _Elm_Prefs_Page_Node Elm_Prefs_Page_Node
 
typedef struct _Elm_Prefs_Item_Node Elm_Prefs_Item_Node
 
typedef struct _Elm_Route_Data Elm_Route_Data
 Base widget smart data extended with route instance data.
 
typedef struct Segment Segment
 
typedef struct _Elm_Scroller_Data Elm_Scroller_Data
 Base widget smart data extended with scroller instance data.
 
typedef struct _Elm_Segment_Control_Data Elm_Segment_Control_Data
 Base layout smart data extended with segment control instance data.
 
typedef struct _Elm_Segment_Control_Item_Data Elm_Segment_Control_Item_Data
 
typedef struct _Elm_Separator_Data Elm_Separator_Data
 Base layout smart data extended with separator instance data.
 
typedef struct _Elm_Slider_Data Elm_Slider_Data
 Base layout smart data extended with slider instance data.
 
typedef struct _Elm_Slideshow_Data Elm_Slideshow_Data
 Base layout smart data extended with slideshow instance data.
 
typedef struct _Elm_Slideshow_Item_Data Elm_Slideshow_Item_Data
 
typedef enum _Elm_Spinner_Format_Type Elm_Spinner_Format_Type
 Base layout smart data extended with spinner instance data.
 
typedef struct _Elm_Spinner_Data Elm_Spinner_Data
 
typedef struct _Elm_Spinner_Special_Value Elm_Spinner_Special_Value
 
typedef struct _Elm_Thumb_Data Elm_Thumb_Data
 Base widget smart data extended with thumb instance data.
 
typedef struct _Elm_Toolbar_Item_Data Elm_Toolbar_Item_Data
 
typedef struct _Elm_Toolbar_Data Elm_Toolbar_Data
 Base widget smart data extended with toolbar instance data.
 
typedef struct _Elm_Web_Data Elm_Web_Data
 Base widget smart data extended with web instance data.
 
typedef struct _Elm_Web_Callback_Proxy_Context Elm_Web_Callback_Proxy_Context
 

Enumerations

enum  _Day_Color {
  DAY_WEEKDAY = 0 ,
  DAY_SATURDAY = 1 ,
  DAY_SUNDAY = 2
}
 
enum  _Color_Type {
  HUE ,
  SATURATION ,
  LIGHTNESS ,
  ALPHA
}
 
enum  _Conformant_Part_Type {
  ELM_CONFORMANT_INDICATOR_PART = 1 ,
  ELM_CONFORMANT_SOFTKEY_PART = 2 ,
  ELM_CONFORMANT_VIRTUAL_KEYPAD_PART = 4 ,
  ELM_CONFORMANT_CLIPBOARD_PART = 8
}
 
enum  _Length_Unit {
  LENGTH_UNIT_CHAR ,
  LENGTH_UNIT_BYTE ,
  LENGTH_UNIT_LAST
}
 
enum  Elm_Fileselector_Type {
  ELM_DIRECTORY = 0 ,
  ELM_FILE_IMAGE = 1 ,
  ELM_FILE_UNKNOW = 2 ,
  ELM_FILE_LAST
}
 
enum  Elm_Fileselector_Filter_Type {
  ELM_FILESELECTOR_MIME_FILTER = 0 ,
  ELM_FILESELECTOR_CUSTOM_FILTER ,
  ELM_FILESELECTOR_FILTER_LAST
}
 
enum  Elm_Genlist_Item_Move_Effect_Mode {
  ELM_GENLIST_TREE_EFFECT_NONE = 0 ,
  ELM_GENLIST_TREE_EFFECT_EXPAND = 1 ,
  ELM_GENLIST_TREE_EFFECT_CONTRACT = 2
}
 
enum  _Route_Xml_Attribute {
  ROUTE_XML_NONE ,
  ROUTE_XML_DISTANCE ,
  ROUTE_XML_DESCRIPTION ,
  ROUTE_XML_COORDINATES ,
  ROUTE_XML_LAST
}
 
enum  _Name_Xml_Attribute {
  NAME_XML_NONE ,
  NAME_XML_NAME ,
  NAME_XML_LON ,
  NAME_XML_LAT ,
  NAME_XML_LAST
}
 
enum  _Track_Xml_Attribute {
  TRACK_XML_NONE ,
  TRACK_XML_COORDINATES ,
  TRACK_XML_LAST
}
 
enum  _Multibuttonentry_Pos {
  MULTIBUTTONENTRY_POS_START ,
  MULTIBUTTONENTRY_POS_END ,
  MULTIBUTTONENTRY_POS_BEFORE ,
  MULTIBUTTONENTRY_POS_AFTER
}
 Base widget smart data extended with multibuttonentry instance data.
 
enum  _Multibuttonentry_Button_State {
  MULTIBUTTONENTRY_BUTTON_STATE_DEFAULT ,
  MULTIBUTTONENTRY_BUTTON_STATE_SELECTED
}
 
enum  _MultiButtonEntry_Closed_Button_Type {
  MULTIBUTTONENTRY_CLOSED_IMAGE ,
  MULTIBUTTONENTRY_CLOSED_LABEL
}
 
enum  _Multibuttonentry_View_State {
  MULTIBUTTONENTRY_VIEW_NONE ,
  MULTIBUTTONENTRY_VIEW_GUIDETEXT ,
  MULTIBUTTONENTRY_VIEW_ENTRY ,
  MULTIBUTTONENTRY_VIEW_SHRINK
}
 
enum  _Elm_Spinner_Format_Type {
  SPINNER_FORMAT_FLOAT ,
  SPINNER_FORMAT_INT ,
  SPINNER_FORMAT_INVALID
}
 Base layout smart data extended with spinner instance data.
 

Functions

void elm_pan_gravity_set (Elm_Pan *, double x, double) EINA_DEPRECATED
 
void elm_pan_gravity_get (const Elm_Pan *, double *, double *) EINA_DEPRECATED
 

Variables

const Elm_Layout_Part_Alias_Description _content_aliases [10]
 
enum _Route_Xml_Attribute Route_Xml_Attibute
 
enum _Name_Xml_Attribute Name_Xml_Attibute
 
enum _Track_Xml_Attribute Track_Xml_Attibute
 

Detailed Description

This section is intended for people willing to create custom Elementary widgets or to contribute new (useful, unique) widgets upstream.

If neither is your case, this text won't be of any use for you.

Elementary widgets are built in a hierarchical fashion. The idea is to factorize as much code as possible between widgets with behavioral similarities, as long as to facilitate the creation of custom, new widgets, may the user need them.

It all starts with a base class, which aggregates behaviour every Elementary widget is supposed to have: #Elm_Widget_Smart_Class. Every Elementary widget will be of that type, be it directly or by means of inheriting from it.

#Elm_Widget_Smart_Class happens to be an Evas_Smart_Class. If you check out Evas' documentation on it, you'll see it's how one is supposed to create custom Evas objects, what Elementary widgets are.

Once one instantiates an Elementary widget, since it inherits from #Elm_Widget_Smart_Class, the system will raise a class instance of that type for you. But that happens only once: the first time you ask for an Elementary widget (of a given type). All subsequent ones will only point to the very same class instance. Since it's the class which points to the functions implementing the behavior of objects of that type, all of the live instances of Elementary widgets (of that type) will share the same blob of code loaded in memory to execute their routines.

Now go and take a look at #Elm_Widget_Smart_Class's fields. Because it inherits from Evas' base smart class, we got a field of that type as the first member, so that Evas can handle Elementary objects internally as if they were 'normal' Evas objects. Evas has the Evas-only behavior function pointers in there, so it's all it needs.

Then, comes a version field, so that whenever we got to update or change the fields on our base smart class, there'll be a runtime check of the version expected by Elementary and the one provided by any code linking with it. A mismatch will show the developer of that code he/she needs to recompile and link its code to a newer version of Elementary.

The next fields are the class functions themselves. We call them 'virtual' because, as in object-oriented languages, one is supposed here to override them on inheriting classes. On most of inheritances you'll probably want to call the parent's version of the class function too: you must analyse each case to tell.

Take a look at Elm_Widget_Smart_Data. That's private data bound to each Elementary object instance. It aggregates data needed for all widgets, since it's meant for the #Elm_Widget_Smart_Class-typed ones.

When inheriting from that base type, instance data for this new class has to have, as the first member, a field of type Elm_Widget_Smart_Data. This has to be respected recursively – if a third class is to be created inheriting from the one that is a direct 'child' of #Elm_Widget_Smart_Class, then the private data on this third class has to have, as its first field, a variable of the type of the private data of the second class (its parent), direct child of #Elm_Widget_Smart_Class.

It is from the base private data, Elm_Widget_Smart_Data, that we reach an object's class functions, by the given object instance. This is the reason of the first field of that struct: a pointer set to point to its class when the object is instantiated.

The following figure illustrates the widget inheritance schema.

Elementary Widgets Hierarchy Tree

The following figure illustrates the Elementary widget inheritance tree.

The Elementary Flip Class

Elementary, besides having the Flip widget, exposes its foundation – the Elementary Flip Class – in order to create other widgets which are a flip with some more logic on top.

The Elementary Frame Class

Elementary, besides having the Frame widget, exposes its foundation – the Elementary Frame Class – in order to create other widgets which are a frame with some more logic on top.

The Elementary Image Class

This class defines a common interface for image objects having an image as their basic graphics. This interface is so that one can tune various properties of the image, like:

Image files may be set via memory buffers, image files, EET files with image data or Edje files. On the last case (which is exceptional), most of the properties cited above will not be changeable anymore.

The Elementary Scrollable Interface

This is a common interface for widgets having scrollable views. Widgets using/implementing this must use the EVAS_SMART_SUBCLASS_IFACE_NEW macro (instead of the EVAS_SMART_SUBCLASS_NEW one) when declaring its smart class, so an interface is also declared.

The scrollable interface comes built with Elementary and is exposed as #ELM_SCROLLABLE_IFACE.

The interface API is explained in details at #Elm_Scrollable_Smart_Interface.

An Elementary scrollable interface will handle an internal panning object. It has the function of clipping and moving the actual scrollable content around, by the command of the scrollable interface calls. Though it's not the common case, one might want/have to change some aspects of the internal panning object behavior. For that, we have it also exposed here – #Elm_Pan_Smart_Class. Use elm_pan_smart_class_get() to build your custom panning object, when creating a scrollable widget (again, only if you need a custom panning object) and set it with Elm_Scrollable_Smart_Interface::extern_pan_set.

The Elementary Actionslider Class

Elementary, besides having the Actionslider widget, exposes its foundation – the Elementary Actionslider Class – in order to create other widgets which are a actionslider with some more logic on top.

The Elementary Box Class

Elementary, besides having the Box widget, exposes its foundation – the Elementary Box Class – in order to create other widgets which are a box with some more logic on top.

The Elementary Bubble Class

Elementary, besides having the Bubble widget, exposes its foundation – the Elementary Bubble Class – in order to create other widgets which are a bubble with some more logic on top.

The Elementary Calendar Class

Elementary, besides having the Calendar widget, exposes its foundation – the Elementary Calendar Class – in order to create other widgets which are a calendar with some more logic on top.

The Elementary Clock Class

Elementary, besides having the Clock widget, exposes its foundation – the Elementary Clock Class – in order to create other widgets which are a clock with some more logic on top.

The Elementary Colorselector Class

Elementary, besides having the Colorselector widget, exposes its foundation – the Elementary Colorselector Class – in order to create other widgets which are a colorselector with some more logic on top.

The Elementary Combobox Class

Elementary, besides having the Combobox widget, exposes its foundation – the Elementary Combobox Class – in order to create other widgets which are a combobox with some more logic on top.

The Elementary Conformant Class

Elementary, besides having the Conformant widget, exposes its foundation – the Elementary Conformant Class – in order to create other widgets which are a conformant with some more logic on top.

The Elementary Container Class

This class defines a common interface for objects acting like containers, i.e. objects parenting others and displaying their childs "inside" of them somehow.

The container must define "parts" (or spots) into which child objects will be placed, inside of it. This is a way of handling more the one content object, by naming content locations properly. This is the role of the name argument of the virtual functions in the class.

The following object functions are meant to be used with all container objects and derived ones:

The Elementary Ctxpopup Class

Elementary, besides having the Ctxpopup widget, exposes its foundation – the Elementary Ctxpopup Class – in order to create other widgets which are a ctxpopup with some more logic on top.

The Elementary Dayselector Class

Elementary, besides having the Dayselector widget, exposes its foundation – the Elementary Dayselector Class – in order to create other widgets which are a dayselector with some more logic on top.

The Elementary Diskselector Class

Elementary, besides having the Diskselector widget, exposes its foundation – the Elementary Diskselector Class – in order to create other widgets which are a diskselector with some more logic on top.

The Elementary Entry Class

Elementary, besides having the Entry widget, exposes its foundation – the Elementary Entry Class – in order to create other widgets which are a entry with some more logic on top.

The Elementary Fileselector Class

Elementary, besides having the Fileselector widget, exposes its foundation – the Elementary Fileselector Class – in order to create other widgets which are a fileselector with some more logic on top.

The Elementary Fileselector Button Class

Elementary, besides having the Fileselector_Button widget, exposes its foundation – the Elementary Fileselector Button Class – in order to create other widgets which are a fileselector_button with some more logic on top.

The Elementary Fileselector Entry Class

Elementary, besides having the Fileselector_Entry widget, exposes its foundation – the Elementary Fileselector Entry Class – in order to create other widgets which are a fileselector_entry with some more logic on top.

The Elementary Flipselector Class

Elementary, besides having the Flipselector widget, exposes its foundation – the Elementary Flipselector Class – in order to create other widgets which are a flipselector with some more logic on top.

The Elementary Gengrid Class

Elementary, besides having the Gengrid widget, exposes its foundation – the Elementary Gengrid Class – in order to create other widgets which are a gengrid with some more logic on top.

The Elementary Genlist Class

Elementary, besides having the Genlist widget, exposes its foundation – the Elementary Genlist Class – in order to create other widgets which are a genlist with some more logic on top.

The Elementary Glview Class

Elementary, besides having the Glview widget, exposes its foundation – the Elementary Glview Class – in order to create other widgets which are a glview with some more logic on top.

The Elementary Grid Class

Elementary, besides having the Grid widget, exposes its foundation – the Elementary Grid Class – in order to create other widgets which are a grid with some more logic on top.

The Elementary Hover Class

Elementary, besides having the Hover widget, exposes its foundation – the Elementary Hover Class – in order to create other widgets which are a hover with some more logic on top.

The Elementary Hoversel Class

Elementary, besides having the Hoversel widget, exposes its foundation – the Elementary Hoversel Class – in order to create other widgets which are a hoversel with some more logic on top.

The Elementary Icon Class

This class defines a common interface for icon objects having an icon as their basic graphics.

The Elementary Index Class

Elementary, besides having the Index widget, exposes its foundation – the Elementary Index Class – in order to create other widgets which are a index with some more logic on top.

The Elementary Inwin Class

Elementary, besides having the Inwin widget, exposes its foundation – the Elementary Inwin Class – in order to create other widgets which are a inwin with some more logic on top.

The Elementary Layout Class

Elementary, besides having the Layout widget, exposes its foundation – the Elementary Layout Class – in order to create other widgets which are, basically, a certain layout with some more logic on top.

The idea is to make the creation of that widgets as easy as possible, factorizing code on this common base. For example, a button is a layout (that looks like push button) that happens to react on clicks and keyboard events in a special manner, calling its user back on those events. That's no surprise, then, that the Button implementation relies on #Elm_Layout_Smart_Class, if you go to check it.

The Layout class inherits from #Elm_Container_Smart_Class. Container parts, here, map directly to Edje parts from the layout's Edje group. Besides that, there's a whole infrastructure around Edje files:

Take a look at #Elm_Layout_Smart_Class's 'virtual' functions to understand the whole interface. Finally, layout objects will do part aliasing for you, if you set it up properly. For that, take a look at #Elm_Layout_Part_Alias_Description, where it's explained in detail.

The Elementary List Class

Elementary, besides having the List widget, exposes its foundation – the Elementary List Class – in order to create other widgets which are a list with some more logic on top.

The Elementary Map Class

Elementary, besides having the Map widget, exposes its foundation – the Elementary Map Class – in order to create other widgets which are a map with some more logic on top.

The Elementary Mapbuf Class

Elementary, besides having the Mapbuf widget, exposes its foundation – the Elementary Mapbuf Class – in order to create other widgets which are a mapbuf with some more logic on top.

The Elementary Menu Class

Elementary, besides having the Menu widget, exposes its foundation – the Elementary Menu Class – in order to create other widgets which are a menu with some more logic on top.

The Elementary Multi Button Entry Class

Elementary, besides having the Multibuttonentry widget, exposes its foundation – the Elementary Multi Button Entry Class – in order to create other widgets which are a multi button entry with some more logic on top.

The Elementary Naviframe Class

Elementary, besides having the Naviframe widget, exposes its foundation – the Elementary Naviframe Class – in order to create other widgets which are a naviframe with some more logic on top.

The Elementary Notify Class

Elementary, besides having the Notify widget, exposes its foundation – the Elementary Notify Class – in order to create other widgets which are a notify with some more logic on top.

The Elementary Panel Class

Elementary, besides having the Panel widget, exposes its foundation – the Elementary Panel Class – in order to create other widgets which are a panel with some more logic on top.

The Elementary Photo Class

Elementary, besides having the Photo widget, exposes its foundation – the Elementary Photo Class – in order to create other widgets which are a photo with some more logic on top.

The Elementary Player Class

Elementary, besides having the Player widget, exposes its foundation – the Elementary Player Class – in order to create other widgets which are a player with some more logic on top.

The Elementary Plug Class

Elementary, besides having the Plug widget, exposes its foundation – the Elementary Plug Class – in order to create other widgets which are a plug with some more logic on top.

The Elementary Popup Class

Elementary, besides having the Popup widget, exposes its foundation – the Elementary Popup Class – in order to create other widgets which are a popup with some more logic on top.

The Elementary Prefs Class

Elementary, besides having the Prefs widget, exposes its foundation – the Elementary Prefs Class – in order to create other widgets which are a prefs with some more logic on top.

The Elementary Route Class

Elementary, besides having the Route widget, exposes its foundation – the Elementary Route Class – in order to create other widgets which are a route with some more logic on top.

The Elementary Scroller Class

Elementary, besides having the Scroller widget, exposes its foundation – the Elementary Scroller Class – in order to create other widgets which are a scroller with some more logic on top.

The Elementary Segment control Class

Elementary, besides having the SegmentControl widget, exposes its foundation – the Elementary Segment control Class – in order to create other widgets which are a segment control with some more logic on top.

The Elementary Separator Class

Elementary, besides having the Separator widget, exposes its foundation – the Elementary Separator Class – in order to create other widgets which are a separator with some more logic on top.

The Elementary Slider Class

Elementary, besides having the Slider widget, exposes its foundation – the Elementary Slider Class – in order to create other widgets which are a slider with some more logic on top.

The Elementary Slideshow Class

Elementary, besides having the Slideshow widget, exposes its foundation – the Elementary Slideshow Class – in order to create other widgets which are a slideshow with some more logic on top.

The Elementary Spinner Class

Elementary, besides having the Spinner widget, exposes its foundation – the Elementary Spinner Class – in order to create other widgets which are a spinner with some more logic on top.

The Elementary Table Class

Elementary, besides having the Table widget, exposes its foundation – the Elementary Table Class – in order to create other widgets which are a table with some more logic on top.

The Elementary Thumb Class

Elementary, besides having the Thumb widget, exposes its foundation – the Elementary Thumb Class – in order to create other widgets which are a thumb with some more logic on top.

The Elementary Toolbar Class

Elementary, besides having the Toolbar widget, exposes its foundation – the Elementary Toolbar Class – in order to create other widgets which are a toolbar with some more logic on top.

The Elementary Web Class

Elementary, besides having the Web widget, exposes its foundation – the Elementary Web Class – in order to create other widgets which are a web view with some more logic on top.

Macro Definition Documentation

◆ ELM_SCROLLABLE_CHECK

#define ELM_SCROLLABLE_CHECK (   obj,
  ... 
)
Value:
\
if (!efl_isa(obj, ELM_INTERFACE_SCROLLABLE_MIXIN)) \
{ \
ERR("The object (%p) doesn't implement the Elementary scrollable" \
" interface", obj); \
if (getenv("ELM_ERROR_ABORT")) abort(); \
return __VA_ARGS__; \
}

◆ ELM_FLIPSELECTOR_DATA_GET_OR_RETURN

#define ELM_FLIPSELECTOR_DATA_GET_OR_RETURN (   o,
  ptr 
)
Value:
ELM_FLIPSELECTOR_DATA_GET(o, ptr); \
if (EINA_UNLIKELY(!ptr)) \
{ \
ERR("No widget data for object %p (%s)", \
return; \
}
#define EINA_UNLIKELY(exp)
Indicates that the expression is likely to be FALSE.
Definition: eina_types.h:427
EVAS_API const char * evas_object_type_get(const Evas_Object *eo_obj)
Retrieves the type of the given Evas object.
Definition: evas_object_main.c:2558

◆ ELM_FLIPSELECTOR_DATA_GET_OR_RETURN_VAL

#define ELM_FLIPSELECTOR_DATA_GET_OR_RETURN_VAL (   o,
  ptr,
  val 
)
Value:
ELM_FLIPSELECTOR_DATA_GET(o, ptr); \
if (EINA_UNLIKELY(!ptr)) \
{ \
ERR("No widget data for object %p (%s)", \
return val; \
}

◆ ELM_FLIPSELECTOR_CHECK

#define ELM_FLIPSELECTOR_CHECK (   obj)
Value:
if (EINA_UNLIKELY(!efl_isa((obj), ELM_FLIPSELECTOR_CLASS))) \
return
#define ELM_FLIPSELECTOR_CLASS
Elementary flipselector class.
Definition: elm_flipselector_eo.h:20

◆ ELM_FLIPSELECTOR_ITEM_CHECK

#define ELM_FLIPSELECTOR_ITEM_CHECK (   it)
Value:
if (EINA_UNLIKELY(!efl_isa((it->base->eo_obj), ELM_FLIPSELECTOR_ITEM_CLASS))) \
return

◆ ELM_FLIPSELECTOR_ITEM_CHECK_OR_RETURN

#define ELM_FLIPSELECTOR_ITEM_CHECK_OR_RETURN (   it,
  ... 
)
Value:
if (EINA_UNLIKELY(!efl_isa((it->base->eo_obj), ELM_FLIPSELECTOR_ITEM_CLASS))) \
return __VA_ARGS__;

◆ ELM_GENLIST_FILTER_ITERATOR_ITEM_GET

#define ELM_GENLIST_FILTER_ITERATOR_ITEM_GET (   ptr,
  type 
)
Value:
((type *)((char *)ptr - \
offsetof(type, __in_list)))

Typedef Documentation

◆ Elm_Widget_Smart_Data

Base widget smart data.

This is data bound to an Elementary object instance, so its particular to that specific object and not shared between all objects in its class. It is here, though, that we got a pointer to the object's class, the first field – 'api'.