forked from enlightenment/efl
Elementary edje external modules
Widgets: Button, Check, Radio, Slider, Toggle SVN revision: 44207
This commit is contained in:
parent
a053200ed2
commit
edf7f2e22e
|
@ -275,6 +275,7 @@ src/lib/Elementary.h
|
|||
src/bin/Makefile
|
||||
src/modules/Makefile
|
||||
src/modules/test_entry/Makefile
|
||||
src/edje_externals/Makefile
|
||||
data/Makefile
|
||||
data/themes/Makefile
|
||||
data/images/Makefile
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
AUTOMAKE_OPTIONS = 1.4 foreign
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
SUBDIRS = lib bin modules
|
||||
SUBDIRS = lib bin modules edje_externals
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
-I. \
|
||||
-I$(top_builddir) \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/src/lib \
|
||||
-I$(top_builddir)/src/lib \
|
||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
||||
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
|
||||
@ELEMENTARY_CFLAGS@ \
|
||||
@ELEMENTARY_X_CFLAGS@ \
|
||||
@ELEMENTARY_FB_CFLAGS@ \
|
||||
@ELEMENTARY_WIN32_CFLAGS@ \
|
||||
@ELEMENTARY_WINCE_CFLAGS@ \
|
||||
@ELEMENTARY_EDBUS_CFLAGS@ \
|
||||
@ELEMENTARY_EFREET_CFLAGS@
|
||||
|
||||
if ELEMENTARY_WINDOWS_BUILD
|
||||
AM_CPPFLAGS += -DELEMENTARY_BUILD
|
||||
endif
|
||||
|
||||
pkgdir = $(libdir)/edje
|
||||
pkg_LTLIBRARIES = elm.la
|
||||
|
||||
elm_la_SOURCES = private.h \
|
||||
modules.inc \
|
||||
elm.c \
|
||||
elm_button.c \
|
||||
elm_check.c \
|
||||
elm_radio.c \
|
||||
elm_slider.c \
|
||||
elm_toggle.c
|
||||
|
||||
elm_la_LIBADD = $(top_builddir)/src/lib/libelementary.la
|
||||
elm_la_LDFLAGS = $(all_libraries) -no-undefined @lt_enable_auto_import@ -module -avoid-version -shared -fPIC
|
|
@ -0,0 +1,87 @@
|
|||
#include <Elementary.h>
|
||||
#include "private.h"
|
||||
|
||||
void
|
||||
external_signal(void *data, Evas_Object *obj, const char *signal, const char *source)
|
||||
{
|
||||
printf("External Signal received: '%s' '%s'\n", signal, source);
|
||||
}
|
||||
|
||||
void *
|
||||
external_common_params_parse_internal(size_t params_size, void *data, Evas_Object *obj, const Eina_List *params)
|
||||
{
|
||||
Elm_Params *p;
|
||||
const Eina_List *l;
|
||||
Edje_External_Param *param;
|
||||
|
||||
if (params_size < sizeof(Elm_Params))
|
||||
return NULL;
|
||||
|
||||
p = calloc(1, params_size);
|
||||
if (!p)
|
||||
return NULL;
|
||||
|
||||
EINA_LIST_FOREACH(params, l, param)
|
||||
{
|
||||
if (!strcmp(param->name, "label"))
|
||||
p->label = param->s;
|
||||
if(!strcmp(param->name, "state"))
|
||||
p->state = param->i;
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
void
|
||||
external_common_icon_param_parse(Evas_Object **icon, Evas_Object *obj, const Eina_List *params)
|
||||
{
|
||||
Edje_External_Param *p;
|
||||
|
||||
p = edje_external_param_find(params, "icon");
|
||||
if (p)
|
||||
{
|
||||
Evas_Object *parent = evas_object_smart_parent_get(obj);
|
||||
const char *file;
|
||||
edje_object_file_get(parent, &file, NULL);
|
||||
*icon = elm_icon_add(parent);
|
||||
|
||||
if (!elm_icon_file_set(*icon, file, p->s))
|
||||
elm_icon_standard_set(*icon, p->s);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
external_common_params_free(void *params)
|
||||
{
|
||||
Elm_Params *p = params;
|
||||
free(p);
|
||||
};
|
||||
|
||||
#define DEFINE_TYPE(type_name) \
|
||||
extern const Edje_External_Type external_##type_name##_type;
|
||||
#include "modules.inc"
|
||||
#undef DEFINE_TYPE
|
||||
|
||||
static Edje_External_Type_Info elm_external_types[] =
|
||||
{
|
||||
#define DEFINE_TYPE(type_name) \
|
||||
{"elm/"#type_name, &external_##type_name##_type},
|
||||
#include "modules.inc"
|
||||
#undef DEFINE_TYPE
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
static Eina_Bool
|
||||
elm_mod_init(void)
|
||||
{
|
||||
edje_external_type_array_register(elm_external_types);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
elm_mod_shutdown(void)
|
||||
{
|
||||
edje_external_type_array_unregister(elm_external_types);
|
||||
}
|
||||
|
||||
EINA_MODULE_INIT(elm_mod_init);
|
||||
EINA_MODULE_SHUTDOWN(elm_mod_shutdown);
|
|
@ -0,0 +1,59 @@
|
|||
#include "private.h"
|
||||
|
||||
typedef struct _Elm_Params_Button
|
||||
{
|
||||
Elm_Params base;
|
||||
Evas_Object *icon;
|
||||
} Elm_Params_Button;
|
||||
|
||||
static void
|
||||
external_button_state_set(void *data, Evas_Object *obj, const void *from_params, const void *to_params, float pos)
|
||||
{
|
||||
const Elm_Params_Button *p1 = from_params, *p2 = to_params;
|
||||
|
||||
p1 = from_params;
|
||||
p2 = to_params;
|
||||
|
||||
if (!p2)
|
||||
{
|
||||
elm_button_label_set(obj, p1->base.label);
|
||||
elm_button_icon_set(obj, p1->icon);
|
||||
return;
|
||||
}
|
||||
|
||||
elm_button_label_set(obj, p2->base.label);
|
||||
elm_button_icon_set(obj, p2->icon);
|
||||
}
|
||||
|
||||
static void *
|
||||
external_button_params_parse(void *data, Evas_Object *obj, const Eina_List *params)
|
||||
{
|
||||
Elm_Params_Button *mem;
|
||||
Edje_External_Param *param;
|
||||
|
||||
mem = external_common_params_parse(Elm_Params_Button, data, obj, params);
|
||||
if (!mem)
|
||||
return NULL;
|
||||
|
||||
external_common_icon_param_parse(&mem->icon, obj, params);
|
||||
|
||||
return mem;
|
||||
}
|
||||
|
||||
static void
|
||||
external_button_params_free(void *params)
|
||||
{
|
||||
Elm_Params_Button *mem = params;
|
||||
|
||||
if (mem->icon)
|
||||
evas_object_del(mem->icon);
|
||||
external_common_params_free(params);
|
||||
}
|
||||
|
||||
static Edje_External_Param_Info external_button_params[] = {
|
||||
DEFINE_EXTERNAL_COMMON_PARAMS,
|
||||
EDJE_EXTERNAL_PARAM_INFO_STRING("icon"),
|
||||
EDJE_EXTERNAL_PARAM_INFO_SENTINEL
|
||||
};
|
||||
|
||||
DEFINE_EXTERNAL_TYPE_SIMPLE(button, "Button");
|
|
@ -0,0 +1,61 @@
|
|||
#include "private.h"
|
||||
|
||||
typedef struct _Elm_Params_Check
|
||||
{
|
||||
Elm_Params base;
|
||||
Evas_Object *icon;
|
||||
} Elm_Params_Check;
|
||||
|
||||
static void
|
||||
external_check_state_set(void *data, Evas_Object *obj, const void *from_params, const void *to_params, float pos)
|
||||
{
|
||||
const Elm_Params_Check *p1 = from_params, *p2 = to_params;
|
||||
|
||||
p1 = from_params;
|
||||
p2 = to_params;
|
||||
|
||||
if (!p2)
|
||||
{
|
||||
elm_check_label_set(obj, p1->base.label);
|
||||
elm_check_icon_set(obj, p1->icon);
|
||||
elm_check_state_set(obj, p1->base.state);
|
||||
return;
|
||||
}
|
||||
|
||||
elm_check_label_set(obj, p2->base.label);
|
||||
elm_check_icon_set(obj, p2->icon);
|
||||
elm_check_state_set(obj, p2->base.state);
|
||||
}
|
||||
|
||||
static void *
|
||||
external_check_params_parse(void *data, Evas_Object *obj, const Eina_List *params)
|
||||
{
|
||||
Elm_Params_Check *mem;
|
||||
Edje_External_Param *param;
|
||||
|
||||
mem = external_common_params_parse(Elm_Params_Check, data, obj, params);
|
||||
if (!mem)
|
||||
return NULL;
|
||||
|
||||
external_common_icon_param_parse(&mem->icon, obj, params);
|
||||
|
||||
return mem;
|
||||
}
|
||||
|
||||
static void
|
||||
external_check_params_free(void *params)
|
||||
{
|
||||
Elm_Params_Check *mem = params;
|
||||
|
||||
if (mem->icon)
|
||||
evas_object_del(mem->icon);
|
||||
external_common_params_free(params);
|
||||
}
|
||||
|
||||
static Edje_External_Param_Info external_check_params[] = {
|
||||
DEFINE_EXTERNAL_COMMON_PARAMS,
|
||||
EDJE_EXTERNAL_PARAM_INFO_STRING("icon"),
|
||||
EDJE_EXTERNAL_PARAM_INFO_SENTINEL
|
||||
};
|
||||
|
||||
DEFINE_EXTERNAL_TYPE_SIMPLE(check, "Check")
|
|
@ -0,0 +1,80 @@
|
|||
#include "private.h"
|
||||
|
||||
typedef struct _Elm_Params_Radio
|
||||
{
|
||||
Elm_Params base;
|
||||
Evas_Object *icon;
|
||||
const char* group_name;
|
||||
} Elm_Params_Radio;
|
||||
|
||||
static void
|
||||
external_radio_state_set(void *data, Evas_Object *obj, const void *from_params, const void *to_params, float pos)
|
||||
{
|
||||
const Elm_Params_Radio *p1 = from_params, *p2 = to_params;
|
||||
|
||||
p1 = from_params;
|
||||
p2 = to_params;
|
||||
|
||||
if (!p2)
|
||||
{
|
||||
elm_radio_label_set(obj, p1->base.label);
|
||||
elm_radio_icon_set(obj, p1->icon);
|
||||
elm_radio_state_value_set(obj, p1->base.state);
|
||||
if (p1->group_name)
|
||||
{
|
||||
Evas_Object *ed = evas_object_smart_parent_get(obj);
|
||||
Evas_Object *group = edje_object_part_swallow_get(ed, p1->group_name);
|
||||
elm_radio_group_add(obj, group);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
elm_radio_label_set(obj, p2->base.label);
|
||||
elm_radio_icon_set(obj, p2->icon);
|
||||
elm_radio_state_value_set(obj, p2->base.state);
|
||||
if (p2->group_name)
|
||||
{
|
||||
Evas_Object *ed = evas_object_smart_parent_get(obj);
|
||||
Evas_Object *group = edje_object_part_swallow_get(ed, p2->group_name);
|
||||
elm_radio_group_add(obj, group);
|
||||
}
|
||||
}
|
||||
|
||||
static void *
|
||||
external_radio_params_parse(void *data, Evas_Object *obj, const Eina_List *params)
|
||||
{
|
||||
Elm_Params_Radio *mem;
|
||||
Edje_External_Param *param;
|
||||
|
||||
mem = external_common_params_parse(Elm_Params_Radio, data, obj, params);
|
||||
if (!mem)
|
||||
return NULL;
|
||||
|
||||
external_common_icon_param_parse(&mem->icon, obj, params);
|
||||
|
||||
param = edje_external_param_find(params, "param group");
|
||||
if (param)
|
||||
mem->group_name = eina_stringshare_add(param->s);
|
||||
|
||||
return mem;
|
||||
}
|
||||
|
||||
static void
|
||||
external_radio_params_free(void *params)
|
||||
{
|
||||
Elm_Params_Radio *mem = params;
|
||||
|
||||
if (mem->icon)
|
||||
evas_object_del(mem->icon);
|
||||
if (mem->group_name)
|
||||
eina_stringshare_del(mem->group_name);
|
||||
external_common_params_free(params);
|
||||
}
|
||||
|
||||
static Edje_External_Param_Info external_radio_params[] = {
|
||||
DEFINE_EXTERNAL_COMMON_PARAMS,
|
||||
EDJE_EXTERNAL_PARAM_INFO_STRING("icon"),
|
||||
EDJE_EXTERNAL_PARAM_INFO_SENTINEL
|
||||
};
|
||||
|
||||
DEFINE_EXTERNAL_TYPE_SIMPLE(radio, "Radio")
|
|
@ -0,0 +1,111 @@
|
|||
#include "private.h"
|
||||
|
||||
typedef struct _Elm_Params_Slider
|
||||
{
|
||||
Elm_Params base;
|
||||
Evas_Object *icon;
|
||||
const char *indicator, *unit;
|
||||
int inverted, max, min, span, value, horizontal;
|
||||
} Elm_Params_Slider;
|
||||
|
||||
static void
|
||||
external_slider_state_set(void *data, Evas_Object *obj, const void *from_params, const void *to_params, float pos)
|
||||
{
|
||||
const Elm_Params_Slider *p1 = from_params, *p2 = to_params;
|
||||
|
||||
p1 = from_params;
|
||||
p2 = to_params;
|
||||
|
||||
if (!p2)
|
||||
{
|
||||
elm_slider_label_set(obj, p1->base.label);
|
||||
elm_slider_icon_set(obj, p1->icon);
|
||||
elm_slider_span_size_set(obj, p1->span);
|
||||
elm_slider_min_max_set(obj, p1->min, p1->max);
|
||||
elm_slider_value_set(obj, p1->value);
|
||||
elm_slider_inverted_set(obj, p1->inverted);;
|
||||
elm_slider_horizontal_set(obj, p1->horizontal);
|
||||
elm_slider_indicator_format_set(obj, p1->indicator);
|
||||
elm_slider_unit_format_set(obj, p1->unit);
|
||||
return;
|
||||
}
|
||||
|
||||
elm_slider_label_set(obj, p2->base.label);
|
||||
elm_slider_icon_set(obj, p2->icon);
|
||||
elm_slider_span_size_set(obj, p2->span);
|
||||
elm_slider_min_max_set(obj, p2->min, p2->max);
|
||||
elm_slider_value_set(obj, p2->value);
|
||||
elm_slider_inverted_set(obj, p2->inverted);
|
||||
elm_slider_horizontal_set(obj, p2->horizontal);
|
||||
elm_slider_indicator_format_set(obj, p2->indicator);
|
||||
elm_slider_unit_format_set(obj, p2->unit);
|
||||
}
|
||||
|
||||
static void *
|
||||
external_slider_params_parse(void *data, Evas_Object *obj, const Eina_List *params)
|
||||
{
|
||||
Elm_Params_Slider *mem;
|
||||
Edje_External_Param *param;
|
||||
|
||||
mem = external_common_params_parse(Elm_Params_Slider, data, obj, params);
|
||||
if (!mem)
|
||||
return NULL;
|
||||
|
||||
external_common_icon_param_parse(&mem->icon, obj, params);
|
||||
|
||||
param = edje_external_param_find(params, "span");
|
||||
if (param)
|
||||
mem->span = param->i;
|
||||
|
||||
param = edje_external_param_find(params, "min");
|
||||
if (param)
|
||||
mem->min = param->i;
|
||||
|
||||
param = edje_external_param_find(params, "max");
|
||||
if (param)
|
||||
mem->max = param->i;
|
||||
|
||||
param = edje_external_param_find(params, "value");
|
||||
if (param)
|
||||
mem->value = param->i;
|
||||
|
||||
param = edje_external_param_find(params, "inverted");
|
||||
if (param)
|
||||
mem->inverted = param->i;
|
||||
|
||||
param = edje_external_param_find(params, "horizontal");
|
||||
if (param)
|
||||
mem->horizontal = param->i;
|
||||
|
||||
param = edje_external_param_find(params, "unit");
|
||||
if (param)
|
||||
mem->unit = eina_stringshare_add(param->s);
|
||||
|
||||
param = edje_external_param_find(params, "indicator");
|
||||
if (param)
|
||||
mem->indicator = eina_stringshare_add(param->s);
|
||||
|
||||
return mem;
|
||||
}
|
||||
|
||||
static void
|
||||
external_slider_params_free(void *params)
|
||||
{
|
||||
Elm_Params_Slider *mem = params;
|
||||
|
||||
if (mem->icon)
|
||||
evas_object_del(mem->icon);
|
||||
if (mem->unit)
|
||||
eina_stringshare_del(mem->unit);
|
||||
if (mem->indicator)
|
||||
eina_stringshare_del(mem->indicator);
|
||||
external_common_params_free(params);
|
||||
}
|
||||
|
||||
static Edje_External_Param_Info external_slider_params[] = {
|
||||
DEFINE_EXTERNAL_COMMON_PARAMS,
|
||||
EDJE_EXTERNAL_PARAM_INFO_STRING("icon"),
|
||||
EDJE_EXTERNAL_PARAM_INFO_SENTINEL
|
||||
};
|
||||
|
||||
DEFINE_EXTERNAL_TYPE_SIMPLE(slider, "Slider")
|
|
@ -0,0 +1,77 @@
|
|||
#include "private.h"
|
||||
#include <string.h>
|
||||
|
||||
typedef struct _Elm_Params_Toggle
|
||||
{
|
||||
Elm_Params base;
|
||||
Evas_Object *icon;
|
||||
const char *st_label_from, *st_label_to;
|
||||
} Elm_Params_Toggle;
|
||||
|
||||
static void
|
||||
external_toggle_state_set(void *data, Evas_Object *obj, const void *from_params, const void *to_params, float pos)
|
||||
{
|
||||
const Elm_Params_Toggle *p1 = from_params, *p2 = to_params;
|
||||
|
||||
p1 = from_params;
|
||||
p2 = to_params;
|
||||
|
||||
if (!p2)
|
||||
{
|
||||
elm_toggle_label_set(obj, p1->base.label);
|
||||
elm_toggle_icon_set(obj, p1->icon);
|
||||
elm_toggle_states_labels_set(obj, p1->st_label_from, p1->st_label_to);
|
||||
elm_toggle_state_set(obj, p1->base.state);
|
||||
return;
|
||||
}
|
||||
|
||||
elm_toggle_label_set(obj, p2->base.label);
|
||||
elm_toggle_icon_set(obj, p2->icon);
|
||||
elm_toggle_states_labels_set(obj, p2->st_label_from, p2->st_label_to);
|
||||
elm_toggle_state_set(obj, p2->base.state);
|
||||
}
|
||||
|
||||
static void *
|
||||
external_toggle_params_parse(void *data, Evas_Object *obj, const Eina_List *params)
|
||||
{
|
||||
Elm_Params_Toggle *mem;
|
||||
Edje_External_Param *param;
|
||||
|
||||
mem = external_common_params_parse(Elm_Params_Toggle, data, obj, params);
|
||||
if (!mem)
|
||||
return NULL;
|
||||
|
||||
external_common_icon_param_parse(&mem->icon, obj, params);
|
||||
|
||||
param = edje_external_param_find(params, "state label from");
|
||||
if (param)
|
||||
mem->st_label_from = eina_stringshare_add(param->s);
|
||||
|
||||
param = edje_external_param_find(params, "state label to");
|
||||
if (param)
|
||||
mem->st_label_to = eina_stringshare_add(param->s);
|
||||
|
||||
return mem;
|
||||
}
|
||||
|
||||
static void
|
||||
external_toggle_params_free(void *params)
|
||||
{
|
||||
Elm_Params_Toggle *mem = params;
|
||||
|
||||
if (mem->icon)
|
||||
evas_object_del(mem->icon);
|
||||
if (mem->st_label_from)
|
||||
eina_stringshare_del(mem->st_label_from);
|
||||
if (mem->st_label_to)
|
||||
eina_stringshare_del(mem->st_label_to);
|
||||
external_common_params_free(params);
|
||||
}
|
||||
|
||||
static Edje_External_Param_Info external_toggle_params[] = {
|
||||
DEFINE_EXTERNAL_COMMON_PARAMS,
|
||||
EDJE_EXTERNAL_PARAM_INFO_STRING("icon"),
|
||||
EDJE_EXTERNAL_PARAM_INFO_SENTINEL
|
||||
};
|
||||
|
||||
DEFINE_EXTERNAL_TYPE_SIMPLE(toggle, "Toggle")
|
|
@ -0,0 +1,5 @@
|
|||
DEFINE_TYPE(button)
|
||||
DEFINE_TYPE(check)
|
||||
DEFINE_TYPE(radio)
|
||||
DEFINE_TYPE(slider)
|
||||
DEFINE_TYPE(toggle)
|
|
@ -0,0 +1,76 @@
|
|||
#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;
|
||||
int state;
|
||||
} 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, \
|
||||
.module = name, \
|
||||
.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 \
|
||||
EDJE_EXTERNAL_PARAM_INFO_STRING("label"), \
|
||||
EDJE_EXTERNAL_PARAM_INFO_INT("state")
|
Loading…
Reference in New Issue