2009-12-05 17:22:54 -08:00
|
|
|
#include <Elementary.h>
|
|
|
|
|
|
|
|
#ifdef EAPI
|
|
|
|
# undef EAPI
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define EAPI __attribute__ ((visibility("default")))
|
|
|
|
|
|
|
|
/* #ifdef _WIN32 */
|
|
|
|
/* # ifdef EFL_EDJE_BUILD */
|
|
|
|
/* # ifdef DLL_EXPORT */
|
|
|
|
/* # define EAPI __declspec(dllexport) */
|
|
|
|
/* # else */
|
|
|
|
/* # define EAPI */
|
|
|
|
/* # endif /\* ! DLL_EXPORT *\/ */
|
|
|
|
/* # else */
|
|
|
|
/* # define EAPI __declspec(dllimport) */
|
|
|
|
/* # endif /\* ! EFL_EDJE_BUILD *\/ */
|
|
|
|
/* #else */
|
|
|
|
/* # ifdef __GNUC__ */
|
|
|
|
/* # if __GNUC__ >= 4 */
|
|
|
|
/* # define EAPI __attribute__ ((visibility("default"))) */
|
|
|
|
/* # else */
|
|
|
|
/* # define EAPI */
|
|
|
|
/* # endif */
|
|
|
|
/* # else */
|
|
|
|
/* # define EAPI */
|
|
|
|
/* # endif */
|
|
|
|
/* #endif */
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
const char *label;
|
|
|
|
} Elm_Params;
|
|
|
|
|
|
|
|
void external_signal(void *data, Evas_Object *obj, const char *signal, const char *source);
|
|
|
|
void external_common_params_free(void *params);
|
|
|
|
void *external_common_params_parse_internal(size_t params_size, void *data, Evas_Object *obj, const Eina_List *params);
|
|
|
|
void external_commom_icon_param_parse(Evas_Object *icon, Evas_Object *obj, const Eina_List *params);
|
|
|
|
#define external_common_params_parse(type, data, obj, params) \
|
|
|
|
external_common_params_parse_internal(sizeof(type), data, obj, params)
|
|
|
|
|
|
|
|
|
|
|
|
#define DEFINE_EXTERNAL_TYPE(type_name, name) \
|
|
|
|
static const char * \
|
|
|
|
external_##type_name##_label_get(void *data) { \
|
|
|
|
return name; \
|
|
|
|
} \
|
|
|
|
\
|
|
|
|
const Edje_External_Type external_##type_name##_type = {\
|
|
|
|
.abi_version = EDJE_EXTERNAL_TYPE_ABI_VERSION, \
|
2009-12-07 17:35:15 -08:00
|
|
|
.module = "elm", \
|
2009-12-05 17:22:54 -08:00
|
|
|
.add = external_##type_name##_add, \
|
|
|
|
.signal_emit = external_signal, \
|
|
|
|
.state_set = external_##type_name##_state_set, \
|
|
|
|
.params_parse = external_##type_name##_params_parse,\
|
|
|
|
.params_free = external_##type_name##_params_free, \
|
|
|
|
.icon_add = NULL, \
|
|
|
|
.label_get = external_##type_name##_label_get, \
|
|
|
|
.parameters_info = external_##type_name##_params, \
|
|
|
|
.data = NULL \
|
|
|
|
};
|
|
|
|
|
|
|
|
#define DEFINE_EXTERNAL_TYPE_SIMPLE(type_name, name) \
|
|
|
|
static Evas_Object * \
|
|
|
|
external_##type_name##_add(void *data, Evas *evas, Evas_Object *parent, const Eina_List *params) \
|
|
|
|
{\
|
|
|
|
return elm_##type_name##_add(parent); \
|
|
|
|
}\
|
|
|
|
\
|
|
|
|
DEFINE_EXTERNAL_TYPE(type_name, name)
|
|
|
|
|
|
|
|
|
|
|
|
#define DEFINE_EXTERNAL_COMMON_PARAMS \
|
2009-12-07 20:57:39 -08:00
|
|
|
EDJE_EXTERNAL_PARAM_INFO_STRING("label")
|