summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmitesh Singh <amitesh.sh@samsung.com>2016-03-03 11:58:21 +0530
committerAmitesh Singh <amitesh.sh@samsung.com>2016-03-03 11:59:36 +0530
commitb9c912f7213dc4026e41d3f99e2f4a5fc78269db (patch)
tree870c05e3f768957526c000be3560eca6dcca1881
parentb6ecb5084a3b265cfac661ba3f1dbc10e4adc08b (diff)
downloadelementary-b9c912f7213dc4026e41d3f99e2f4a5fc78269db.tar.gz
radio: inherit from elm check
Summary: Radio inherits from Check now and remove the duplicate codes Reviewers: yashu21985, cedric, tasn, raster Reviewed By: raster Subscribers: seoz Differential Revision: https://phab.enlightenment.org/D3747
-rw-r--r--src/lib/elm_radio.c109
-rw-r--r--src/lib/elm_radio.eo8
2 files changed, 20 insertions, 97 deletions
diff --git a/src/lib/elm_radio.c b/src/lib/elm_radio.c
index 4c6f5fa3a..3d4099064 100644
--- a/src/lib/elm_radio.c
+++ b/src/lib/elm_radio.c
@@ -16,12 +16,6 @@
#define MY_CLASS_NAME "Elm_Radio"
#define MY_CLASS_NAME_LEGACY "elm_radio"
-static const Elm_Layout_Part_Alias_Description _content_aliases[] =
-{
- {"icon", "elm.swallow.content"},
- {NULL, NULL}
-};
-
static const Elm_Layout_Part_Alias_Description _text_aliases[] =
{
{"default", "elm.text"},
@@ -129,56 +123,6 @@ _activate(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
-_icon_signal_emit(Evas_Object *obj)
-{
- ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
- char buf[64];
-
- snprintf(buf, sizeof(buf), "elm,state,icon,%s",
- elm_layout_content_get(obj, "icon") ? "visible" : "hidden");
-
- elm_layout_signal_emit(obj, buf, "elm");
- edje_object_message_signal_process(wd->resize_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 */
-EOLIAN static Eina_Bool
-_elm_radio_elm_widget_sub_object_del(Eo *obj, Elm_Radio_Data *_pd EINA_UNUSED, Evas_Object *sobj)
-{
- Eina_Bool int_ret = EINA_FALSE;
- eo_do_super(obj, MY_CLASS, int_ret = elm_obj_widget_sub_object_del(sobj));
- if (!int_ret) return EINA_FALSE;
-
- _icon_signal_emit(obj);
-
- 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 */
-EOLIAN static Eina_Bool
-_elm_radio_elm_container_content_set(Eo *obj, Elm_Radio_Data *_pd EINA_UNUSED, const char *part, Evas_Object *content)
-{
- Eina_Bool int_ret = EINA_FALSE;
- eo_do_super(obj, MY_CLASS, int_ret = elm_obj_container_content_set(part, content));
- if (!int_ret) return EINA_FALSE;
-
- _icon_signal_emit(obj);
-
- eo_do(obj, elm_obj_layout_sizing_eval());
-
- return EINA_TRUE;
-}
-
static Eina_Bool
_key_action_activate(Evas_Object *obj, const char *params EINA_UNUSED)
{
@@ -202,12 +146,28 @@ _elm_radio_elm_widget_event(Eo *obj, Elm_Radio_Data *_pd EINA_UNUSED, Evas_Objec
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
+_icon_signal_emit(Evas_Object *obj)
+{
+ ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
+ char buf[64];
+
+ snprintf(buf, sizeof(buf), "elm,state,icon,%s",
+ elm_layout_content_get(obj, "icon") ? "visible" : "hidden");
+
+ elm_layout_signal_emit(obj, buf, "elm");
+ edje_object_message_signal_process(wd->resize_obj);
+}
+
EOLIAN static Eina_Bool
_elm_radio_elm_widget_theme_apply(Eo *obj, Elm_Radio_Data *sd)
{
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
Eina_Bool int_ret = EINA_FALSE;
- eo_do_super(obj, MY_CLASS, int_ret = elm_obj_widget_theme_apply());
+ eo_do_super(obj, ELM_CHECK_CLASS, int_ret = elm_obj_widget_theme_apply());
if (!int_ret) return EINA_FALSE;
if (sd->state) elm_layout_signal_emit(obj, "elm,state,radio,on", "elm");
@@ -227,19 +187,6 @@ _elm_radio_elm_widget_theme_apply(Eo *obj, Elm_Radio_Data *sd)
return EINA_TRUE;
}
-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);
-
- elm_coords_finger_size_adjust(1, &minw, 1, &minh);
- edje_object_size_min_restricted_calc
- (wd->resize_obj, &minw, &minh, minw, minh);
- evas_object_size_hint_min_set(obj, minw, minh);
- evas_object_size_hint_max_set(obj, -1, -1);
-}
-
static void
_radio_on_cb(void *data,
Evas_Object *obj EINA_UNUSED,
@@ -276,7 +223,7 @@ _elm_radio_evas_object_smart_add(Eo *obj, Elm_Radio_Data *priv)
{
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
- eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
+ eo_do_super(obj, ELM_CHECK_CLASS, evas_obj_smart_add());
elm_widget_sub_object_parent_add(obj);
if (!elm_layout_theme_set(obj, "radio", "base", elm_widget_style_get(obj)))
@@ -307,7 +254,7 @@ _elm_radio_evas_object_smart_del(Eo *obj, Elm_Radio_Data *sd)
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());
+ eo_do_super(obj, ELM_CHECK_CLASS, evas_obj_smart_del());
}
EOLIAN static const Elm_Layout_Part_Alias_Description*
@@ -316,12 +263,6 @@ _elm_radio_elm_layout_text_aliases_get(Eo *obj EINA_UNUSED, Elm_Radio_Data *_pd
return _text_aliases;
}
-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)
-{
- return _content_aliases;
-}
-
EAPI Evas_Object *
elm_radio_add(Evas_Object *parent)
{
@@ -428,18 +369,6 @@ _elm_radio_selected_object_get(Eo *obj EINA_UNUSED, Elm_Radio_Data *sd)
}
EOLIAN static Eina_Bool
-_elm_radio_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, Elm_Radio_Data *_pd EINA_UNUSED)
-{
- return EINA_FALSE;
-}
-
-EOLIAN static Eina_Bool
-_elm_radio_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Elm_Radio_Data *_pd EINA_UNUSED)
-{
- return EINA_FALSE;
-}
-
-EOLIAN static Eina_Bool
_elm_radio_elm_widget_activate(Eo *obj, Elm_Radio_Data *_pd EINA_UNUSED, Elm_Activate act)
{
if (elm_widget_disabled_get(obj)) return EINA_FALSE;
diff --git a/src/lib/elm_radio.eo b/src/lib/elm_radio.eo
index fe4396809..64c6527d0 100644
--- a/src/lib/elm_radio.eo
+++ b/src/lib/elm_radio.eo
@@ -1,4 +1,4 @@
-class Elm.Radio (Elm.Layout, Elm.Interface_Atspi_Widget_Action)
+class Elm.Radio (Elm.Check, Elm.Interface_Atspi_Widget_Action)
{
eo_prefix: elm_obj_radio;
methods {
@@ -80,14 +80,8 @@ class Elm.Radio (Elm.Layout, Elm.Interface_Atspi_Widget_Action)
Evas.Object_Smart.del;
Elm.Widget.theme_apply;
Elm.Widget.activate;
- Elm.Widget.focus_next_manager_is;
- Elm.Widget.focus_direction_manager_is;
- 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;
Elm.Interface_Atspi_Accessible.state_set.get;
Elm.Interface_Atspi_Widget_Action.elm_actions.get;
}