2017-05-16 19:29:11 -07:00
/* Type definitions for elementary generic items (genlist, gengrid, ...).
* Only for legacy .
*/
# ifndef EFL_NOLEGACY_API_SUPPORT
2011-12-30 01:41:11 -08:00
typedef struct Elm_Gen_Item Elm_Gen_Item ;
2012-03-05 22:09:20 -08:00
2017-05-17 23:46:54 -07:00
/** Glob matching bitfiled flags.
*
* @ since 1.11
*
* @ ingroup Elm_Glob
*/
typedef enum
{
ELM_GLOB_MATCH_NO_ESCAPE = 1 /* 1 >> 0 */ , /**< Treat backslash as an ordinary
* character instead of escape */
ELM_GLOB_MATCH_PATH = 2 /* 1 >> 1 */ , /**< Match a slash in string only with a
* slash in pattern and not by an
* asterisk ( * ) or a question mark ( ? )
* metacharacter , nor by a bracket
* expression ( [ ] ) containing a slash .
*/
ELM_GLOB_MATCH_PERIOD = 4 /* 1 >> 2 */ , /**< Leading period in string has to
* be matched exactly by a period in
* pattern . A period is considered to
* be leading if it is the first
* character in string , or if both
* ELM_GLOB_MATCH_PATH is set and the
* period immediately follows a
* slash . */
ELM_GLOB_MATCH_NOCASE = 8 /* 1 >> 3 */ /**< The pattern is matched
* case - insensitively . */
} Elm_Glob_Match_Flags ;
2012-03-05 22:09:20 -08:00
/**
* Text fetching class function for Elm_Gen_Item_Class .
* @ param data The data passed in the item creation function
* @ param obj The base widget object
* @ param part The part name of the swallow
* @ return The allocated ( NOT stringshared ) string to set as the text
*/
2011-12-30 01:41:11 -08:00
typedef char * ( * Elm_Gen_Item_Text_Get_Cb ) ( void * data , Evas_Object * obj , const char * part ) ; /**< Label fetching class function for gen item classes. */
2012-03-05 22:09:20 -08:00
/**
* Content ( swallowed object ) fetching class function for Elm_Gen_Item_Class .
* @ param data The data passed in the item creation function
* @ param obj The base widget object
* @ param part The part name of the swallow
* @ return The content object to swallow
*/
2011-12-30 01:41:11 -08:00
typedef Evas_Object * ( * Elm_Gen_Item_Content_Get_Cb ) ( void * data , Evas_Object * obj , const char * part ) ; /**< Content(swallowed object) fetching class function for gen item classes. */
2012-03-05 22:09:20 -08:00
/**
* State fetching class function for Elm_Gen_Item_Class .
* @ param data The data passed in the item creation function
* @ param obj The base widget object
* @ param part The part name of the swallow
2015-03-11 04:16:36 -07:00
* @ return The boolean state of this element ( resulting in the edje object being emitted a signal of " elm,state,partname,active " or " elm.state,partname,passve "
2012-03-05 22:09:20 -08:00
*/
2011-12-30 01:41:11 -08:00
typedef Eina_Bool ( * Elm_Gen_Item_State_Get_Cb ) ( void * data , Evas_Object * obj , const char * part ) ; /**< State fetching class function for gen item classes. */
2012-03-05 22:09:20 -08:00
/**
* Deletion class function for Elm_Gen_Item_Class .
* @ param data The data passed in the item creation function
* @ param obj The base widget object
*/
2011-12-30 01:41:11 -08:00
typedef void ( * Elm_Gen_Item_Del_Cb ) ( void * data , Evas_Object * obj ) ; /**< Deletion class function for gen item classes. */
2012-03-05 22:09:20 -08:00
2015-09-23 04:50:05 -07:00
/**
* Filter class function for Elm_Gen_Item_Class .
* @ param data The data passed in the item creation function
* @ param obj The base widget object
* @ param key The key needed for item filter to be decided on
* @ return The boolean state of filter for this element
*/
typedef Eina_Bool ( * Elm_Gen_Item_Filter_Get_Cb ) ( void * data , Evas_Object * obj , void * key ) ; /**< Filter seeking class function for gen item classes. */
2016-02-12 11:14:13 -08:00
/**
* Reusable content get class function for Elm_Gen_Item_Class .
* @ param data The data passed in the item creation function
* @ param obj The base widget object
* @ param part The part name of the swallow
* @ param old The old content object for reusing
* @ return The content object to swallow
*
* @ since 1.18
*/
typedef Evas_Object * ( * Elm_Gen_Item_Reusable_Content_Get_Cb ) ( void * data , Evas_Object * obj , const char * part , Evas_Object * old ) ; /**< Cache Pop class function for gen item classes. */
2017-06-23 14:43:57 -07:00
# define ELM_GEN_ITEM_CLASS_VERSION 4
2012-03-05 22:09:20 -08:00
# define ELM_GEN_ITEM_CLASS_HEADER ELM_GEN_ITEM_CLASS_VERSION, 0, 0
2017-05-16 19:29:11 -07:00
/** Elementary genlist/gengrid callback functions data structure */
typedef struct _Elm_Gen_Item_Class_Functions
{
Elm_Gen_Item_Text_Get_Cb text_get ; /**< Text fetching class function for genlist/gengrid item classes. */
Elm_Gen_Item_Content_Get_Cb content_get ; /**< Content fetching class function for genlist/gengrid item classes. */
Elm_Gen_Item_State_Get_Cb state_get ; /**< State fetching class function for genlist/gengrid item classes. */
Elm_Gen_Item_Del_Cb del ; /**< Deletion class function for genlist/gengrid item classes. */
Elm_Gen_Item_Filter_Get_Cb filter_get ; /**< Filter seeking class function for genlist/gengrid item classes. */
Elm_Gen_Item_Reusable_Content_Get_Cb reusable_content_get ; /**< Reusable content get class function for gen item classes. */
} Elm_Gen_Item_Class_Functions ;
/** Gengrid or Genlist item class definition. */
typedef struct _Elm_Gen_Item_Class
{
int version ; /**< Set by elementary if you alloc an item class using
* elm_genlist / gengrid_item_class_new ( ) , or if you set your own
* class ( must be const ) then set it to
* ELM_GENLIST / GENGRID_ITEM_CLASS_VERSION . */
unsigned int refcount ; /**< Set it to 0 if you use your own const class, or
* its managed for you by class ref / unref calls . */
Eina_Bool delete_me ; /**< Leave this alone - set it to 0 if you have a const
* class of your own . */
const char * item_style ; /**< Name of the visual style to use for this item. If
* you don ' t know use " default " . */
const char * decorate_item_style ; /**< Style used if item is set to a decorate
* mode . see elm_genlist_item_decorate_mode_set ( ) or
* NULL if you don ' t care . currently it ' s used only in genlist . */
const char * decorate_all_item_style ; /**< Style to use when in edit mode, or
* NULL if you don ' t care . Currently
* it ' s used only in genlist . */
Elm_Gen_Item_Class_Functions func ; /**< Set of callbacks */
} Elm_Gen_Item_Class ;
/** See @ref Elm_Gen_Item_Class. */
typedef Elm_Gen_Item_Class Elm_Gengrid_Item_Class ;
/** See @ref Elm_Gen_Item_Class. */
typedef Elm_Gen_Item_Class Elm_Genlist_Item_Class ;
# endif