From adbfc50cd77d09b7604229e5d6a9ac66a0e26d7f Mon Sep 17 00:00:00 2001 From: raster Date: Tue, 6 Mar 2012 06:09:20 +0000 Subject: [PATCH] and lets actually merge the gnelist/grid item class goop so when it all just become sgenlsit we are all happen. elm_gen.h is just there as a temporary common header until it all beocmes genlist (or genlist under another name - gnengrid) git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@68773 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/elm_gen.h | 69 +++++++++++++++++++++++++++++++++++++++------------ src/lib/elm_gengrid.h | 57 +++++++++--------------------------------- src/lib/elm_genlist.h | 63 +++++++++++----------------------------------- 3 files changed, 79 insertions(+), 110 deletions(-) diff --git a/src/lib/elm_gen.h b/src/lib/elm_gen.h index 4083dc8..71ccc14 100644 --- a/src/lib/elm_gen.h +++ b/src/lib/elm_gen.h @@ -1,25 +1,62 @@ -/* TEMPORARY: DOCS WILL BE FILLED IN WITH CNP/SED */ -// XXX: elm_gen -> kill. typedef struct Elm_Gen_Item Elm_Gen_Item; + +/** + * @struct Elm_Gen_Item_Class + * + * Gengrid or Genlist item class definition. + * field details. + */ typedef struct _Elm_Gen_Item_Class Elm_Gen_Item_Class; -typedef struct _Elm_Gen_Item_Class_Func Elm_Gen_Item_Class_Func; /**< Class functions for gen item classes. */ + +/** + * 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 hell if I know + */ 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. */ + struct _Elm_Gen_Item_Class { - int version; - unsigned int refcount; - Eina_Bool delete_me : 1; - const char *item_style; - const char *mode_item_style; - const char *edit_item_style; - struct _Elm_Gen_Item_Class_Func - { - Elm_Gen_Item_Text_Get_Cb text_get; - Elm_Gen_Item_Content_Get_Cb content_get; - Elm_Gen_Item_State_Get_Cb state_get; - Elm_Gen_Item_Del_Cb del; + int version; /**< Set by elementary if you alloc an item class via elm_gengrid_item_class_new() or elm_genlist_item_class_new(), or if you sety your own class (must be const) then set it to ELM_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 : 1; /**< 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 *mode_item_style; /**< Style used if item is set to a specific mode. @see elm_genlist_item_mode_set() or NULL if you don't care */ + const char *edit_item_style; /**< Style to use when in edit mode, or NULL if you dont care */ + struct { + Elm_Gen_Item_Text_Get_Cb text_get; /**< Text fetching class function for gengrid/list item classes.*/ + Elm_Gen_Item_Content_Get_Cb content_get; /**< Content fetching class function for gengrid/list item classes. */ + Elm_Gen_Item_State_Get_Cb state_get; /**< State fetching class function for gengrid/list item classes. */ + Elm_Gen_Item_Del_Cb del; /**< Deletion class function for gengrid/list item classes. */ } func; -}; +}; /**< #Elm_Gen_Item_Class member definitions */ + +#define ELM_GEN_ITEM_CLASS_VERSION 2 +#define ELM_GEN_ITEM_CLASS_HEADER ELM_GEN_ITEM_CLASS_VERSION, 0, 0 diff --git a/src/lib/elm_gengrid.h b/src/lib/elm_gengrid.h index c41add9..3835ff9 100644 --- a/src/lib/elm_gengrid.h +++ b/src/lib/elm_gengrid.h @@ -222,63 +222,33 @@ * @{ */ -typedef struct _Elm_Gengrid_Item_Class Elm_Gengrid_Item_Class; /**< Gengrid item class definition structs */ - -#define Elm_Gengrid_Item_Class Elm_Gen_Item_Class -typedef struct _Elm_Gengrid_Item_Class_Func Elm_Gengrid_Item_Class_Func; /**< Class functions for gengrid item classes. */ +#define ELM_GENGRID_ITEM_CLASS_VERSION ELM_GEN_ITEM_CLASS_VERSION +#define ELM_GENGRID_ITEM_CLASS_HEADER ELM_GEN_ITEM_CLASS_HEADER /** - * 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 + * @see Elm_Gen_Item_Class */ -typedef char *(*Elm_Gengrid_Item_Text_Get_Cb)(void *data, Evas_Object *obj, const char *part); +typedef Elm_Gen_Item_Class Elm_Gengrid_Item_Class; /** - * 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 + * @see Elm_Gen_Item_Text_Get_Cb */ -typedef Evas_Object *(*Elm_Gengrid_Item_Content_Get_Cb)(void *data, Evas_Object *obj, const char *part); +typedef Elm_Gen_Item_Text_Get_Cb Elm_Gengrid_Item_Text_Get_Cb; /** - * 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 hell if I know + * @see Elm_Gen_Item_Content_Get_Cb */ -typedef Eina_Bool (*Elm_Gengrid_Item_State_Get_Cb)(void *data, Evas_Object *obj, const char *part); +typedef Elm_Gen_Item_Content_Get_Cb Elm_Gengrid_Item_Content_Get_Cb; /** - * Deletion class function for Elm_Gen_Item_Class. - * @param data The data passed in the item creation function - * @param obj The base widget object + * @see Elm_Gen_Item_State_Get_Cb */ -typedef void (*Elm_Gengrid_Item_Del_Cb)(void *data, Evas_Object *obj); +typedef Elm_Gen_Item_State_Get_Cb Elm_Gengrid_Item_State_Get_Cb; /** - * @struct _Elm_Gengrid_Item_Class - * - * Gengrid item class definition. See @ref Gengrid_Item_Class for - * field details. + * @see Elm_Gen_Item_Del_Cb */ -struct _Elm_Gengrid_Item_Class -{ - const char *item_style; - struct _Elm_Gengrid_Item_Class_Func - { - Elm_Gengrid_Item_Text_Get_Cb text_get; /**< Text fetching class function for gengrid item classes.*/ - Elm_Gengrid_Item_Content_Get_Cb content_get; /**< Content fetching class function for gengrid item classes. */ - Elm_Gengrid_Item_State_Get_Cb state_get; /**< State fetching class function for gengrid item classes. */ - Elm_Gengrid_Item_Del_Cb del; /**< Deletion class function for gengrid item classes. */ - } func; -}; /**< #Elm_Gengrid_Item_Class member definitions */ -#define Elm_Gengrid_Item_Class_Func Elm_Gen_Item_Class_Func +typedef Elm_Gen_Item_Del_Cb Elm_Gengrid_Item_Del_Cb; /** * Add a new gengrid widget to the given parent Elementary @@ -837,9 +807,6 @@ EAPI const Elm_Gengrid_Item_Class *elm_gengrid_item_item_class_get(const Elm_Obj //EAPI void elm_gengrid_realized_items_update(Evas_Object *obj); //EAPI unsigned int elm_gengrid_items_count(const Evas_Object *obj); -#define ELM_GENGRID_ITEM_CLASS_VERSION 2 /* current version number */ -#define ELM_GENGRID_ITEM_CLASS_HEADER ELM_GENGRID_ITEM_CLASS_VERSION, 0, 0 - /** * Add a new gengrid item class in a given gengrid widget. * diff --git a/src/lib/elm_genlist.h b/src/lib/elm_genlist.h index b9e5661..54540d9 100644 --- a/src/lib/elm_genlist.h +++ b/src/lib/elm_genlist.h @@ -340,6 +340,9 @@ * @{ */ +#define ELM_GENLIST_ITEM_CLASS_VERSION ELM_GEN_ITEM_CLASS_VERSION +#define ELM_GENLIST_ITEM_CLASS_HEADER ELM_GEN_ITEM_CLASS_HEADER + /** * Defines if the item is of any special type (has subitems or it's the * index of a group), or is just a simple item. @@ -363,67 +366,32 @@ typedef enum ELM_GENLIST_ITEM_FIELD_CONTENT = (1 << 1), ELM_GENLIST_ITEM_FIELD_STATE = (1 << 2) } Elm_Genlist_Item_Field_Type; -typedef struct _Elm_Genlist_Item_Class Elm_Genlist_Item_Class; /**< Genlist item class definition structs */ - -#define Elm_Genlist_Item_Class Elm_Gen_Item_Class -typedef struct _Elm_Genlist_Item_Class_Func Elm_Genlist_Item_Class_Func; /**< Class functions for genlist item class */ /** - * 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 + * @see Elm_Gen_Item_Class */ -typedef char *(*Elm_Genlist_Item_Text_Get_Cb)(void *data, Evas_Object *obj, const char *part); +typedef Elm_Gen_Item_Class Elm_Genlist_Item_Class; /** - * 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 + * @see Elm_Gen_Item_Text_Get_Cb */ -typedef Evas_Object *(*Elm_Genlist_Item_Content_Get_Cb)(void *data, Evas_Object *obj, const char *part); +typedef Elm_Gen_Item_Text_Get_Cb Elm_Genlist_Item_Text_Get_Cb; /** - * 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 hell if I know + * @see Elm_Gen_Item_Content_Get_Cb */ -typedef Eina_Bool (*Elm_Genlist_Item_State_Get_Cb)(void *data, Evas_Object *obj, const char *part); +typedef Elm_Gen_Item_Content_Get_Cb Elm_Genlist_Item_Content_Get_Cb; /** - * Deletion class function for Elm_Gen_Item_Class. - * @param data The data passed in the item creation function - * @param obj The base widget object + * @see Elm_Gen_Item_State_Get_Cb */ -typedef void (*Elm_Genlist_Item_Del_Cb)(void *data, Evas_Object *obj); +typedef Elm_Gen_Item_State_Get_Cb Elm_Genlist_Item_State_Get_Cb; /** - * @struct _Elm_Genlist_Item_Class - * - * Genlist item class definition structs. - * - * This struct contains the style and fetching functions that will define the - * contents of each item. - * - * @see @ref Genlist_Item_Class + * @see Elm_Gen_Item_Del_Cb */ -struct _Elm_Genlist_Item_Class -{ - const char *item_style; /**< style of this class. */ - struct Elm_Genlist_Item_Class_Func - { - Elm_Genlist_Item_Text_Get_Cb text_get; /**< Text fetching class function for genlist item classes.*/ - Elm_Genlist_Item_Content_Get_Cb content_get; /**< Content fetching class function for genlist item classes. */ - Elm_Genlist_Item_State_Get_Cb state_get; /**< State fetching class function for genlist item classes. */ - Elm_Genlist_Item_Del_Cb del; /**< Deletion class function for genlist item classes. */ - } func; -}; -#define Elm_Genlist_Item_Class_Func Elm_Gen_Item_Class_Func +typedef Elm_Gen_Item_Del_Cb Elm_Genlist_Item_Del_Cb; + /** * Add a new genlist widget to the given parent Elementary * (container) object @@ -1121,9 +1089,6 @@ EAPI void elm_genlist_realized_items_update(Evas_Object */ EAPI unsigned int elm_genlist_items_count(const Evas_Object *obj); -#define ELM_GENLIST_ITEM_CLASS_VERSION 2 /* current version number */ -#define ELM_GENLIST_ITEM_CLASS_HEADER ELM_GENLIST_ITEM_CLASS_VERSION, 0, 0 - /** * Add a new genlist item class in a given genlist widget. * -- 2.7.4