From 7705d7c40c08cd5ac7d77316a101cb5386d43aad Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Wed, 26 Mar 2014 09:50:10 +0200 Subject: [PATCH] Eolian: Integration of Radio --- legacy/elementary/src/lib/Makefile.am | 10 +- legacy/elementary/src/lib/elm_radio.c | 316 +++++-------------- legacy/elementary/src/lib/elm_radio.eo | 124 ++++++++ legacy/elementary/src/lib/elm_radio_eo.h | 6 + legacy/elementary/src/lib/elm_radio_legacy.h | 2 +- legacy/elementary/src/lib/elm_widget_radio.h | 6 +- 6 files changed, 216 insertions(+), 248 deletions(-) create mode 100644 legacy/elementary/src/lib/elm_radio.eo diff --git a/legacy/elementary/src/lib/Makefile.am b/legacy/elementary/src/lib/Makefile.am index 0380399d19..ab054e018b 100644 --- a/legacy/elementary/src/lib/Makefile.am +++ b/legacy/elementary/src/lib/Makefile.am @@ -634,7 +634,9 @@ BUILT_SOURCES = \ elm_prefs.eo.c \ elm_prefs.eo.h \ elm_progressbar.eo.c \ - elm_progressbar.eo.h + elm_progressbar.eo.h \ + elm_radio.eo.c \ + elm_radio.eo.h EXTRA_DIST += \ elm_widget.eo \ @@ -691,7 +693,8 @@ EXTRA_DIST += \ elm_plug.eo \ elc_popup.eo \ elm_prefs.eo \ - elm_progressbar.eo + elm_progressbar.eo \ + elm_radio.eo nodist_includesunstable_HEADERS = \ elm_widget.eo.h \ @@ -748,5 +751,6 @@ nodist_includesunstable_HEADERS = \ elm_plug.eo.h \ elc_popup.eo.h \ elm_prefs.eo.h \ - elm_progressbar.eo.h + elm_progressbar.eo.h \ + elm_radio.eo.h diff --git a/legacy/elementary/src/lib/elm_radio.c b/legacy/elementary/src/lib/elm_radio.c index 033be8caf3..bc3830d639 100644 --- a/legacy/elementary/src/lib/elm_radio.c +++ b/legacy/elementary/src/lib/elm_radio.c @@ -8,8 +8,6 @@ #include "elm_widget_radio.h" #include "elm_widget_layout.h" -EAPI Eo_Op ELM_OBJ_RADIO_BASE_ID = EO_NOOP; - #define MY_CLASS ELM_OBJ_RADIO_CLASS #define MY_CLASS_NAME "Elm_Radio" @@ -53,7 +51,7 @@ _state_set(Evas_Object *obj, Eina_Bool state) } static void -_state_set_all(Elm_Radio_Smart_Data *sd) +_state_set_all(Elm_Radio_Data *sd) { const Eina_List *l; Eina_Bool disabled = EINA_FALSE; @@ -115,81 +113,65 @@ _icon_signal_emit(Evas_Object *obj) /* FIXME: replicated from elm_layout just because radio's icon spot * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we * can changed the theme API */ -static void -_elm_radio_smart_sub_object_del(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_radio_elm_widget_sub_object_del(Eo *obj, Elm_Radio_Data *_pd EINA_UNUSED, Evas_Object *sobj) { - Evas_Object *sobj = va_arg(*list, Evas_Object *); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE; - eo_do_super(obj, MY_CLASS, elm_obj_widget_sub_object_del(sobj, &int_ret)); - if(!int_ret) return; + if(!int_ret) return EINA_FALSE; _icon_signal_emit(obj); - if (ret) *ret = EINA_TRUE; eo_do(obj, elm_obj_layout_sizing_eval()); + + return EINA_TRUE; } /* FIXME: replicated from elm_layout just because radio's icon spot * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we * can changed the theme API */ -static void -_elm_radio_smart_content_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_radio_elm_container_content_set(Eo *obj, Elm_Radio_Data *_pd EINA_UNUSED, const char *part, Evas_Object *content) { - const char *part = va_arg(*list, const char *); - Evas_Object *content = va_arg(*list, Evas_Object *); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE; eo_do_super(obj, MY_CLASS, elm_obj_container_content_set(part, content, &int_ret)); - if(!int_ret) return; + if(!int_ret) return EINA_FALSE; _icon_signal_emit(obj); - if (ret) *ret = EINA_TRUE; eo_do(obj, elm_obj_layout_sizing_eval()); + + return EINA_TRUE; } -static void -_elm_radio_smart_event(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_radio_elm_widget_event(Eo *obj, Elm_Radio_Data *_pd EINA_UNUSED, Evas_Object *src, Evas_Callback_Type type, void *event_info) { - - Evas_Object *src = va_arg(*list, Evas_Object *); - Evas_Callback_Type type = va_arg(*list, Evas_Callback_Type); - Evas_Event_Key_Down *ev = va_arg(*list, void *); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - - if (ret) *ret = EINA_FALSE; (void) src; + Evas_Event_Key_Down *ev = event_info; - if (elm_widget_disabled_get(obj)) return; - if (type != EVAS_CALLBACK_KEY_DOWN) return; - if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; + if (elm_widget_disabled_get(obj)) return EINA_FALSE; + if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE; if ((strcmp(ev->key, "Return")) && (strcmp(ev->key, "KP_Enter")) && (strcmp(ev->key, "space"))) - return; + return EINA_FALSE; _activate(obj); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } -static void -_elm_radio_smart_theme(Eo *obj, void *_pd, va_list *list) +EOLIAN static Eina_Bool +_elm_radio_elm_widget_theme_apply(Eo *obj, Elm_Radio_Data *sd) { - Elm_Radio_Smart_Data *sd = _pd; - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; + ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); Eina_Bool int_ret = EINA_FALSE; - eo_do_super(obj, MY_CLASS, elm_obj_widget_theme_apply(&int_ret)); - if (!int_ret) return; + if (!int_ret) return EINA_FALSE; if (sd->state) elm_layout_signal_emit(obj, "elm,state,radio,on", "elm"); else elm_layout_signal_emit(obj, "elm,state,radio,off", "elm"); @@ -205,28 +187,23 @@ _elm_radio_smart_theme(Eo *obj, void *_pd, va_list *list) eo_do(obj, elm_obj_layout_sizing_eval()); - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } -static void -_elm_radio_smart_disable(Eo *obj, void *_pd, va_list *list) +EOLIAN static Eina_Bool +_elm_radio_elm_widget_disable(Eo *obj, Elm_Radio_Data *sd) { - Elm_Radio_Smart_Data *sd = _pd; - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE; - eo_do_super(obj, MY_CLASS, elm_obj_widget_disable(&int_ret)); - if (!int_ret) return; + if (!int_ret) return EINA_FALSE; if (elm_widget_disabled_get(obj) && sd->state) _state_set(obj, EINA_FALSE); - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } -static void -_elm_radio_smart_sizing_eval(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) - +EOLIAN static void +_elm_radio_elm_layout_sizing_eval(Eo *obj, Elm_Radio_Data *_pd EINA_UNUSED) { Evas_Coord minw = -1, minh = -1; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); @@ -270,11 +247,9 @@ _access_state_cb(void *data EINA_UNUSED, Evas_Object *obj) return strdup(E_("State: Off")); } -static void -_elm_radio_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) - +EOLIAN static void +_elm_radio_evas_smart_add(Eo *obj, Elm_Radio_Data *priv) { - Elm_Radio_Smart_Data *priv = _pd; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); eo_do_super(obj, MY_CLASS, evas_obj_smart_add()); @@ -302,29 +277,25 @@ _elm_radio_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) (_elm_access_info_get(obj), ELM_ACCESS_STATE, _access_state_cb, obj); } -static void -_elm_radio_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_radio_evas_smart_del(Eo *obj, Elm_Radio_Data *sd) { - Elm_Radio_Smart_Data *sd = _pd; - sd->group->radios = eina_list_remove(sd->group->radios, obj); if (!sd->group->radios) free(sd->group); eo_do_super(obj, MY_CLASS, evas_obj_smart_del()); } -static void -_elm_radio_smart_text_aliases_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static const Elm_Layout_Part_Alias_Description* +_elm_radio_elm_layout_text_aliases_get(Eo *obj EINA_UNUSED, Elm_Radio_Data *_pd EINA_UNUSED) { - const Elm_Layout_Part_Alias_Description **aliases = va_arg(*list, const Elm_Layout_Part_Alias_Description **); - *aliases = _text_aliases; + return _text_aliases; } -static void -_elm_radio_smart_content_aliases_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static const Elm_Layout_Part_Alias_Description* +_elm_radio_elm_layout_content_aliases_get(Eo *obj EINA_UNUSED, Elm_Radio_Data *_pd EINA_UNUSED) { - const Elm_Layout_Part_Alias_Description **aliases = va_arg(*list, const Elm_Layout_Part_Alias_Description **); - *aliases = _content_aliases; + return _content_aliases; } EAPI Evas_Object * @@ -336,8 +307,8 @@ elm_radio_add(Evas_Object *parent) return obj; } -static void -_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_radio_eo_base_constructor(Eo *obj, Elm_Radio_Data *_pd EINA_UNUSED) { eo_do_super(obj, MY_CLASS, eo_constructor()); eo_do(obj, @@ -345,19 +316,9 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL)); } -EAPI void -elm_radio_group_add(Evas_Object *obj, - Evas_Object *group) +EOLIAN static void +_elm_radio_group_add(Eo *obj, Elm_Radio_Data *sd, Evas_Object *group) { - ELM_RADIO_CHECK(obj); - eo_do(obj, elm_obj_radio_group_add(group)); -} - -static void -_group_add(Eo *obj, void *_pd, va_list *list) -{ - Evas_Object *group = va_arg(*list, Evas_Object *); - Elm_Radio_Smart_Data *sd = _pd; ELM_RADIO_DATA_GET(group, sdg); if (!sdg) @@ -380,93 +341,38 @@ _group_add(Eo *obj, void *_pd, va_list *list) else _state_set(obj, EINA_FALSE); } -EAPI void -elm_radio_state_value_set(Evas_Object *obj, - int value) +EOLIAN static void +_elm_radio_state_value_set(Eo *obj, Elm_Radio_Data *sd, int value) { - ELM_RADIO_CHECK(obj); - eo_do(obj, elm_obj_radio_state_value_set(value)); -} - -static void -_state_value_set(Eo *obj, void *_pd, va_list *list) -{ - int value = va_arg(*list, int); - Elm_Radio_Smart_Data *sd = _pd; - sd->value = value; if (sd->value == sd->group->value) _state_set(obj, EINA_TRUE); else _state_set(obj, EINA_FALSE); } -EAPI int -elm_radio_state_value_get(const Evas_Object *obj) +EOLIAN static int +_elm_radio_state_value_get(Eo *obj EINA_UNUSED, Elm_Radio_Data *sd) { - ELM_RADIO_CHECK(obj) 0; - int ret = 0; - eo_do((Eo *) obj, elm_obj_radio_state_value_get(&ret)); - return ret; + return sd->value; } -static void -_state_value_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_radio_value_set(Eo *obj EINA_UNUSED, Elm_Radio_Data *sd, int value) { - int *ret = va_arg(*list, int *); - Elm_Radio_Smart_Data *sd = _pd; - *ret = sd->value; -} - -EAPI void -elm_radio_value_set(Evas_Object *obj, - int value) -{ - ELM_RADIO_CHECK(obj); - eo_do(obj, elm_obj_radio_value_set(value)); -} - -static void -_value_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - int value = va_arg(*list, int); - Elm_Radio_Smart_Data *sd = _pd; - if (value == sd->group->value) return; sd->group->value = value; if (sd->group->valuep) *(sd->group->valuep) = sd->group->value; _state_set_all(sd); } -EAPI int -elm_radio_value_get(const Evas_Object *obj) +EOLIAN static int +_elm_radio_value_get(Eo *obj EINA_UNUSED, Elm_Radio_Data *sd) { - ELM_RADIO_CHECK(obj) 0; - int ret = 0; - eo_do((Eo *) obj, elm_obj_radio_value_get(&ret)); - return ret; + return sd->group->value; } -static void -_value_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_radio_value_pointer_set(Eo *obj EINA_UNUSED, Elm_Radio_Data *sd, int *valuep) { - int *ret = va_arg(*list, int *); - Elm_Radio_Smart_Data *sd = _pd; - *ret = sd->group->value; -} - -EAPI void -elm_radio_value_pointer_set(Evas_Object *obj, - int *valuep) -{ - ELM_RADIO_CHECK(obj); - eo_do(obj, elm_obj_radio_value_pointer_set(valuep)); -} - -static void -_value_pointer_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - int *valuep = va_arg(*list, int *); - Elm_Radio_Smart_Data *sd = _pd; - if (valuep) { sd->group->valuep = valuep; @@ -479,121 +385,49 @@ _value_pointer_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) else sd->group->valuep = NULL; } -EAPI Evas_Object * -elm_radio_selected_object_get(Evas_Object *obj) +EOLIAN static Evas_Object* +_elm_radio_selected_object_get(Eo *obj EINA_UNUSED, Elm_Radio_Data *sd) { - ELM_RADIO_CHECK(obj) NULL; - Evas_Object *ret = NULL; - eo_do(obj, elm_obj_radio_selected_object_get(&ret)); - return ret; -} - -static void -_selected_object_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - Evas_Object **ret = va_arg(*list, Evas_Object **); Eina_List *l; Evas_Object *child; - Elm_Radio_Smart_Data *sd = _pd; - EINA_LIST_FOREACH(sd->group->radios, l, child) { ELM_RADIO_DATA_GET(child, sdc); - if (sdc->value == sd->group->value) - { - *ret = child; - return; - } + if (sdc->value == sd->group->value) return child; } - *ret = NULL; + return NULL; } -static void -_elm_radio_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_radio_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, Elm_Radio_Data *_pd EINA_UNUSED) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - *ret = EINA_FALSE; + return EINA_FALSE; } -static void -_elm_radio_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_radio_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Elm_Radio_Data *_pd EINA_UNUSED) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - *ret = EINA_FALSE; + return EINA_FALSE; } -static void -_elm_radio_smart_activate(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_radio_elm_widget_activate(Eo *obj, Elm_Radio_Data *_pd EINA_UNUSED, Elm_Activate act) { - Elm_Activate act = va_arg(*list, Elm_Activate); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; - - if (elm_widget_disabled_get(obj)) return; - if (act != ELM_ACTIVATE_DEFAULT) return; + if (elm_widget_disabled_get(obj)) return EINA_FALSE; + if (act != ELM_ACTIVATE_DEFAULT) return EINA_FALSE; _activate(obj); - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } -static void -_class_constructor(Eo_Class *klass) +EOLIAN static void +_elm_radio_class_constructor(Eo_Class *klass) { - const Eo_Op_Func_Description func_desc[] = { - EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor), - - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _elm_radio_smart_add), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_radio_smart_del), - - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_DISABLE), _elm_radio_smart_disable), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_SUB_OBJECT_DEL), _elm_radio_smart_sub_object_del), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), _elm_radio_smart_theme), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_EVENT), _elm_radio_smart_event), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_radio_smart_focus_next_manager_is), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_radio_smart_focus_direction_manager_is), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_ACTIVATE), _elm_radio_smart_activate), - - EO_OP_FUNC(ELM_OBJ_CONTAINER_ID(ELM_OBJ_CONTAINER_SUB_ID_CONTENT_SET), _elm_radio_smart_content_set), - - EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), _elm_radio_smart_sizing_eval), - EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_TEXT_ALIASES_GET), _elm_radio_smart_text_aliases_get), - EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_CONTENT_ALIASES_GET), _elm_radio_smart_content_aliases_get), - - EO_OP_FUNC(ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_GROUP_ADD), _group_add), - EO_OP_FUNC(ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_STATE_VALUE_SET), _state_value_set), - EO_OP_FUNC(ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_STATE_VALUE_GET), _state_value_get), - EO_OP_FUNC(ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_VALUE_SET), _value_set), - EO_OP_FUNC(ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_VALUE_GET), _value_get), - EO_OP_FUNC(ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_VALUE_POINTER_SET), _value_pointer_set), - EO_OP_FUNC(ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_SELECTED_OBJECT_GET), _selected_object_get), - EO_OP_FUNC_SENTINEL - }; - eo_class_funcs_set(klass, func_desc); - evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); } -static const Eo_Op_Description op_desc[] = { - EO_OP_DESCRIPTION(ELM_OBJ_RADIO_SUB_ID_GROUP_ADD, "Add this radio to a group of other radio objects."), - EO_OP_DESCRIPTION(ELM_OBJ_RADIO_SUB_ID_STATE_VALUE_SET, "Set the integer value that this radio object represents."), - EO_OP_DESCRIPTION(ELM_OBJ_RADIO_SUB_ID_STATE_VALUE_GET, "Get the integer value that this radio object represents."), - EO_OP_DESCRIPTION(ELM_OBJ_RADIO_SUB_ID_VALUE_SET, "Set the value of the radio group."), - EO_OP_DESCRIPTION(ELM_OBJ_RADIO_SUB_ID_VALUE_GET, "Get the value of the radio group."), - EO_OP_DESCRIPTION(ELM_OBJ_RADIO_SUB_ID_VALUE_POINTER_SET, "Set a convenience pointer to a integer to change when radio group value changes."), - EO_OP_DESCRIPTION(ELM_OBJ_RADIO_SUB_ID_SELECTED_OBJECT_GET, "Get the selected radio object."), - EO_OP_DESCRIPTION_SENTINEL -}; -static const Eo_Class_Description class_desc = { - EO_VERSION, - MY_CLASS_NAME, - EO_CLASS_TYPE_REGULAR, - EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_RADIO_BASE_ID, op_desc, ELM_OBJ_RADIO_SUB_ID_LAST), - NULL, - sizeof(Elm_Radio_Smart_Data), - _class_constructor, - NULL -}; -EO_DEFINE_CLASS(elm_obj_radio_class_get, &class_desc, ELM_OBJ_LAYOUT_CLASS, NULL); + +#include "elm_radio.eo.c" diff --git a/legacy/elementary/src/lib/elm_radio.eo b/legacy/elementary/src/lib/elm_radio.eo new file mode 100644 index 0000000000..c2b7e4d57e --- /dev/null +++ b/legacy/elementary/src/lib/elm_radio.eo @@ -0,0 +1,124 @@ +class Elm_Radio (Elm_Layout) +{ + eo_prefix: elm_obj_radio; + properties { + state_value { + set { + /*@ + @brief Set the integer value that this radio object represents + + This sets the value of the radio. + + @ingroup Radio */ + } + get { + /*@ + @brief Get the integer value that this radio object represents + + @return The value used if this radio object is selected + + This gets the value of the radio. + @see elm_radio_value_set() + + @ingroup Radio */ + } + values { + int value; /*@ The value to use if this radio object is selected */ + } + } + value { + set { + /*@ + @brief Set the value of the radio group. + + This sets the value of the radio group and will also set the value if + pointed to, to the value supplied, but will not call any callbacks. + + @ingroup Radio */ + } + get { + /*@ + @brief Get the value of the radio group + + @return The integer state + + @ingroup Radio */ + } + values { + int value; /*@ The value to use for the group */ + } + } + value_pointer { + set { + /*@ + @brief Set a convenience pointer to a integer to change when radio group + value changes. + + This sets a pointer to a integer, that, in addition to the radio objects + state will also be modified directly. To stop setting the object pointed + to simply use NULL as the @p valuep argument. If valuep is not NULL, then + when this is called, the radio objects state will also be modified to + reflect the value of the integer valuep points to, just like calling + elm_radio_value_set(). + + @ingroup Radio */ + } + values { + int *valuep; /*@ Pointer to the integer to modify */ + } + } + selected_object { + get { + /*@ + @brief Get the selected radio object. + + @return The selected radio object + + @ingroup Radio */ + return Evas_Object *; + } + } + } + methods { + group_add { + /*@ + @brief Add this radio to a group of other radio objects + + Radio objects work in groups. Each member should have a different integer + value assigned. In order to have them work as a group, they need to know + about each other. This adds the given radio object to the group of which + the group object indicated is a member. + + @ingroup Radio */ + + params { + @in Evas_Object *group; /*@ Any object whose group the @p obj is to join. */ + } + } + } + implements { + class::constructor; + Eo_Base::constructor; + Evas_Smart::add; + Evas_Smart::del; + Elm_Widget::theme_apply; + Elm_Widget::activate; + Elm_Widget::focus_next_manager_is; + Elm_Widget::focus_direction_manager_is; + Elm_Widget::disable; + Elm_Widget::sub_object_del; + Elm_Widget::event; + Elm_Container::content_set; + Elm_Layout::text_aliases::get; + Elm_Layout::content_aliases::get; + Elm_Layout::sizing_eval; + } + events { + changed; + language,changed; + access,changed; + focused; + unfocused; + } + +} diff --git a/legacy/elementary/src/lib/elm_radio_eo.h b/legacy/elementary/src/lib/elm_radio_eo.h index c007d2f8be..b77f57e563 100644 --- a/legacy/elementary/src/lib/elm_radio_eo.h +++ b/legacy/elementary/src/lib/elm_radio_eo.h @@ -1,3 +1,7 @@ +#include "elm_radio.eo.h" + +#if 0 + #define ELM_OBJ_RADIO_CLASS elm_obj_radio_class_get() const Eo_Class *elm_obj_radio_class_get(void) EINA_CONST; @@ -116,3 +120,5 @@ enum * @ingroup Radio */ #define elm_obj_radio_selected_object_get(ret) ELM_OBJ_RADIO_ID(ELM_OBJ_RADIO_SUB_ID_SELECTED_OBJECT_GET), EO_TYPECHECK(Evas_Object **, ret) +#endif + diff --git a/legacy/elementary/src/lib/elm_radio_legacy.h b/legacy/elementary/src/lib/elm_radio_legacy.h index 807eb37a4b..de182a2e47 100644 --- a/legacy/elementary/src/lib/elm_radio_legacy.h +++ b/legacy/elementary/src/lib/elm_radio_legacy.h @@ -97,4 +97,4 @@ EAPI void elm_radio_value_pointer_set(Evas_Object *obj, * * @ingroup Radio */ -EAPI Evas_Object *elm_radio_selected_object_get(Evas_Object *obj); +EAPI Evas_Object *elm_radio_selected_object_get(const Evas_Object *obj); diff --git a/legacy/elementary/src/lib/elm_widget_radio.h b/legacy/elementary/src/lib/elm_widget_radio.h index 1b59b53681..4d1c4e9f16 100644 --- a/legacy/elementary/src/lib/elm_widget_radio.h +++ b/legacy/elementary/src/lib/elm_widget_radio.h @@ -17,7 +17,7 @@ /** * Base layout smart data extended with radio instance data. */ -typedef struct _Elm_Radio_Smart_Data Elm_Radio_Smart_Data; +typedef struct _Elm_Radio_Data Elm_Radio_Data; typedef struct _Group Group; struct _Group @@ -27,7 +27,7 @@ struct _Group Eina_List *radios; }; -struct _Elm_Radio_Smart_Data +struct _Elm_Radio_Data { int value; Eina_Bool state; @@ -40,7 +40,7 @@ struct _Elm_Radio_Smart_Data */ #define ELM_RADIO_DATA_GET(o, sd) \ - Elm_Radio_Smart_Data * sd = eo_data_scope_get(o, ELM_OBJ_RADIO_CLASS) + Elm_Radio_Data * sd = eo_data_scope_get(o, ELM_OBJ_RADIO_CLASS) #define ELM_RADIO_DATA_GET_OR_RETURN(o, ptr) \ ELM_RADIO_DATA_GET(o, ptr); \