efl/src/lib/elementary/elm_gen.h

136 lines
6.7 KiB
C

/* Type definitions for elementary generic items (genlist, gengrid, ...).
* Only for legacy.
*/
#ifndef EFL_NOLEGACY_API_SUPPORT
typedef struct Elm_Gen_Item Elm_Gen_Item;
/** 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;
/**
* 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
*/
typedef char *(*Elm_Gen_Item_Text_Get_Cb)(void *data, Evas_Object *obj, const char *part); /**< Label fetching class function for gen item classes. */
/**
* 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
*/
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. */
/**
* 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
* @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"
*/
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. */
/**
* Deletion class function for Elm_Gen_Item_Class.
* @param data The data passed in the item creation function
* @param obj The base widget object
*/
typedef void (*Elm_Gen_Item_Del_Cb)(void *data, Evas_Object *obj); /**< Deletion class function for gen item classes. */
/**
* 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. */
/**
* 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. */
#define ELM_GEN_ITEM_CLASS_VERSION 4
#define ELM_GEN_ITEM_CLASS_HEADER ELM_GEN_ITEM_CLASS_VERSION, 0, 0
/** 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