#include "efl_wearable_position_manager_circle_list.eo.h"
+#include "efl_wearable_item.eo.h"
+#include "efl_wearable_default_item.eo.h"
+#include "efl_wearable_list_default_item.eo.h"
+#include "efl_wearable_placeholder_item.eo.h"
+#include "efl_wearable_title_item.eo.h"
+#include "efl_wearable_double_text_item.eo.h"
Efl_Object *
_efl_ui_item_proxy_get(Efl_Object *item)
{
+ if (!item) return;
EFL_UI_ITEM_DATA_GET_OR_RETURN(item, pd, NULL);
return pd->proxy;
}
}
EOLIAN static Efl_Object *
-_efl_ui_item_efl_object_finalize(Eo *obj, Efl_Ui_Item_Data *pd EINA_UNUSED)
+_efl_ui_item_efl_object_finalize(Eo *obj, Efl_Ui_Item_Data *pd)
{
Eo *eo;
eo = efl_finalize(efl_super(obj, MY_CLASS));
elm_widget_can_focus_set(obj, EINA_TRUE);
efl_ui_action_connector_bind_clickable_to_object(wd->resize_obj, obj);
+
+ //TIZEN_ONLY(20191121): Apply wearable only items
+ if (pd->proxy)
+ {
+ efl_del(pd->proxy);
+ pd->proxy = NULL;
+ }
+ //
+
return eo;
}
--- /dev/null
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#endif
+
+#define EFL_WEARABLE_LIST_DEFAULT_ITEM_PROTECTED
+#define EFL_PART_PROTECTED
+
+#include <Elementary.h>
+
+#include "elm_priv.h"
+#include "elm_part_helper.h"
+#include "Efl_Wearable.h"
+
+#define MY_CLASS EFL_WEARABLE_DEFAULT_ITEM_CLASS
+#define MY_CLASS_PFX efl_wearable_default_item
+
+#define MY_CLASS_NAME "Efl.Wearable.Default_Item"
+
+ELM_PART_TEXT_DEFAULT_GET(efl_wearable_default_item, "efl.text")
+ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_wearable_default_item, void)
+ELM_PART_MARKUP_DEFAULT_IMPLEMENT(efl_wearable_default_item, void)
+ELM_PART_CONTENT_DEFAULT_GET(efl_wearable_default_item, "efl.icon")
+ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_wearable_default_item, void)
+
+EOLIAN static Efl_Object *
+_efl_wearable_default_item_efl_part_part_get(const Eo *obj, void *pd EINA_UNUSED, const char *part)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
+ if (eina_streq(part, "text"))
+ return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_TEXT_CLASS, obj, "efl.text");
+ else if (eina_streq(part, "icon"))
+ return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, "efl.icon");
+ else if (eina_streq(part, "extra"))
+ return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, "efl.extra");
+
+ return efl_part_get(efl_super(obj, MY_CLASS), part);
+}
+
+
+#define EFL_WEARABLE_DEFAULT_ITEM_EXTRA_OPS \
+ ELM_PART_TEXT_DEFAULT_OPS(efl_wearable_default_item), \
+ ELM_PART_CONTENT_DEFAULT_OPS(efl_wearable_default_item)
+
+#include "efl_wearable_default_item.eo.c"
--- /dev/null
+abstract Efl.Wearable.Default_Item extends Efl.Wearable.Item implements
+ Efl.Text,
+ Efl.Text_Markup,
+ Efl.Ui.L10n,
+ Efl.Content
+{
+ [[Wearable Default Item Class.
+
+ This class defines the standard parts for most @Efl.Ui.Item: Text, Icon and Extra.
+ Placement and layout details for these parts are left to the extending classes like
+ @Efl.Ui.List_Default_Item and @Efl.Ui.Grid_Default_Item which should normally be used.
+ Text-related changes are mirrored to the $text part for convenience.
+ Content-related changes are mirrored to the $icon part.
+
+ @since 1.23
+ ]]
+ data: null;
+ parts {
+ text: Efl.Ui.Layout_Part_Text; [[The text part for default items.
+ This is the caption of the items.]]
+ icon: Efl.Ui.Layout_Part_Content; [[The icon part for default items.
+ This is the main content of the items.]]
+ extra : Efl.Ui.Layout_Part_Content; [[The extra part for default items.
+ This is used for additional details or badges.]]
+ }
+ implements {
+ Efl.Text.text { get; set; }
+ Efl.Text_Markup.markup { get; set; }
+ Efl.Ui.L10n.l10n_text { get; set; }
+ Efl.Content.content { get; set; }
+ Efl.Content.content_unset;
+ Efl.Part.part_get;
+ }
+}
--- /dev/null
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#endif
+
+#define EFL_WEARABLE_DOUBLE_TEXT_ITEM_PROTECTED
+#define EFL_PART_PROTECTED
+
+#include <Elementary.h>
+
+#include "elm_priv.h"
+#include "elm_part_helper.h"
+#include "Efl_Wearable.h"
+
+#define MY_CLASS EFL_WEARABLE_DOUBLE_TEXT_ITEM_CLASS
+#define MY_CLASS_PFX efl_wearable_double_text_item
+
+#define MY_CLASS_NAME "Efl.Wearable.Double_Text_Item"
+
+ELM_PART_TEXT_DEFAULT_GET(efl_wearable_double_text_item, "efl.text")
+ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_wearable_double_text_item, void)
+ELM_PART_MARKUP_DEFAULT_IMPLEMENT(efl_wearable_double_text_item, void)
+ELM_PART_CONTENT_DEFAULT_GET(efl_wearable_double_text_item, "efl.icon")
+ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_wearable_double_text_item, void)
+
+EOLIAN static Efl_Object *
+_efl_wearable_double_text_item_efl_part_part_get(const Eo *obj, void *pd EINA_UNUSED, const char *part)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
+ if (eina_streq(part, "text"))
+ return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_TEXT_CLASS, obj, "efl.text");
+ if (eina_streq(part, "sub_text"))
+ return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_TEXT_CLASS, obj, "efl.sub_text");
+ else if (eina_streq(part, "icon"))
+ return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, "efl.icon");
+ else if (eina_streq(part, "extra"))
+ return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, "efl.extra");
+
+ return efl_part_get(efl_super(obj, MY_CLASS), part);
+}
+
+EOLIAN static Efl_Object *
+_efl_wearable_double_text_item_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
+{
+ Eo *eo;
+
+ eo = efl_constructor(efl_super(obj, MY_CLASS));
+ elm_widget_theme_element_set(obj, "double_text");
+ return eo;
+}
+
+#define EFL_WEARABLE_DOUBLE_TEXT_ITEM_EXTRA_OPS \
+ ELM_PART_TEXT_DEFAULT_OPS(efl_wearable_double_text_item), \
+ ELM_PART_CONTENT_DEFAULT_OPS(efl_wearable_double_text_item)
+
+#include "efl_wearable_double_text_item.eo.c"
--- /dev/null
+class Efl.Wearable.Double_Text_Item extends Efl.Wearable.Item implements
+ Efl.Text,
+ Efl.Text_Markup,
+ Efl.Ui.L10n,
+ Efl.Content
+{
+ [[Wearable Double Text Item Class.
+
+ @since 1.23
+ ]]
+ data: null;
+ parts {
+ text: Efl.Ui.Layout_Part_Text; [[The text part for default items.
+ This is the caption of the items.]]
+ sub_text: Efl.Ui.Layout_Part_Text; [[The text part for default items.
+ This is the caption of the items.]]
+ icon: Efl.Ui.Layout_Part_Content; [[The icon part for default items.
+ This is the main content of the items.]]
+ extra : Efl.Ui.Layout_Part_Content; [[The extra part for default items.
+ This is used for additional details or badges.]]
+ }
+ implements {
+ Efl.Object.constructor;
+ Efl.Text.text { get; set; }
+ Efl.Text_Markup.markup { get; set; }
+ Efl.Ui.L10n.l10n_text { get; set; }
+ Efl.Content.content { get; set; }
+ Efl.Content.content_unset;
+ Efl.Part.part_get;
+ }
+}
--- /dev/null
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#endif
+
+#include <Elementary.h>
+#include "elm_priv.h"
+#include "Efl_Wearable.h"
+#include "efl_ui_item_internal.h"
+
+#define MY_CLASS EFL_WEARABLE_ITEM_CLASS
+#define MY_CLASS_PFX efl_wearable_item
+
+#define MY_CLASS_NAME "Efl.Wearable.Item"
+
+static void
+_item_theme_update(Eo *obj)
+{
+ char buf[256];
+ Eo *container = efl_ui_item_container_get(obj);
+ if (container)
+ {
+ if (efl_isa(container, EFL_UI_LIST_CLASS) || efl_isa(container, EFL_UI_LIST_VIEW_CLASS))
+ snprintf(buf, sizeof(buf), "list_item");
+ else if (efl_isa(container, EFL_UI_GRID_CLASS) || efl_isa(container, EFL_UI_GRID_VIEW_CLASS))
+ snprintf(buf, sizeof(buf), "grid_item");
+ else
+ snprintf(buf, sizeof(buf), "list_item");
+ }
+ else snprintf(buf, sizeof(buf), "list_item");
+
+ elm_widget_theme_klass_set(obj, buf);
+}
+
+EOLIAN static void
+_efl_wearable_item_efl_ui_item_container_set(Eo *obj, void *pd EINA_UNUSED, Efl_Ui_Widget *container)
+{
+ Eo *prev_container = efl_ui_item_container_get(obj);
+ efl_ui_item_container_set(efl_super(obj, MY_CLASS), container);
+
+ if (prev_container != container) _item_theme_update(obj);
+}
+
+EOLIAN static Eo *
+_efl_wearable_item_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
+{
+ obj = efl_constructor(efl_super(obj, MY_CLASS));
+
+ _efl_ui_item_proxy_enabled_set(obj, EINA_TRUE);
+ _item_theme_update(obj);
+
+ return obj;
+}
+
+#include "efl_wearable_item.eo.c"
--- /dev/null
+abstract Efl.Wearable.Item extends Efl.Ui.Item
+{
+ [[Wearable Item Class.
+
+ @since 1.23
+ ]]
+ data: null;
+ implements {
+ Efl.Object.constructor;
+ Efl.Ui.Item.container { set; }
+ }
+}
--- /dev/null
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#endif
+
+#define EFL_WEARABLE_LIST_DEFAULT_ITEM_PROTECTED
+#define EFL_PART_PROTECTED
+
+#include <Elementary.h>
+
+#include "elm_priv.h"
+#include "elm_part_helper.h"
+#include "Efl_Wearable.h"
+
+#define MY_CLASS EFL_WEARABLE_LIST_DEFAULT_ITEM_CLASS
+#define MY_CLASS_PFX efl_wearable_list_default_item
+
+#define MY_CLASS_NAME "Efl.Wearable.List_Default_Item"
+
+EOLIAN static Efl_Object *
+_efl_wearable_list_default_item_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
+{
+ Eo *eo;
+
+ eo = efl_constructor(efl_super(obj, MY_CLASS));
+ elm_widget_theme_klass_set(obj, "list_item");
+
+ return eo;
+}
+#include "efl_wearable_list_default_item.eo.c"
--- /dev/null
+
+class Efl.Wearable.List_Default_Item extends Efl.Wearable.Default_Item
+{
+ [[Wearable Default Item class to be used inside @Efl.Ui.List containers.
+ It displays the three parts in horizontal order: $icon, $text and $extra.
+ Theming can change this arrangement.
+
+ @since 1.23
+ ]]
+ data: null;
+ implements {
+ Efl.Object.constructor;
+ }
+}
--- /dev/null
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#endif
+
+#define EFL_WEARABLE_PLACEHOLDER_ITEM_PROTECTED
+#define EFL_PART_PROTECTED
+
+#include <Elementary.h>
+#include "Efl_Wearable.h"
+
+#include "elm_priv.h"
+#include "elm_part_helper.h"
+
+#define MY_CLASS EFL_WEARABLE_PLACEHOLDER_ITEM_CLASS
+#define MY_CLASS_PFX efl_wearable_placeholder_item
+
+#define MY_CLASS_NAME "Efl.Wearable.Placeholder_Item"
+
+EOLIAN static Efl_Object *
+_efl_wearable_placeholder_item_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
+{
+ Eo *eo;
+
+ eo = efl_constructor(efl_super(obj, MY_CLASS));
+ elm_widget_theme_element_set(obj, "placeholder");
+
+ return eo;
+}
+
+/* Efl.Part */
+ELM_PART_CONTENT_DEFAULT_GET(efl_wearable_placeholder_item, "efl.content")
+ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_wearable_placeholder_item, void)
+/* Efl.Part end */
+
+EOLIAN static Efl_Object *
+_efl_wearable_placeholder_item_efl_part_part_get(const Eo *obj, void *wd EINA_UNUSED, const char *part)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
+ if (eina_streq(part, "content"))
+ return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, "efl.content");
+
+ return efl_part_get(efl_super(obj, MY_CLASS), part);
+}
+
+/* Internal EO APIs and hidden overrides */
+
+#define EFL_WEARABLE_PLACEHOLDER_ITEM_EXTRA_OPS \
+ ELM_PART_CONTENT_DEFAULT_OPS(efl_wearable_placeholder_item)
+
+#include "efl_wearable_placeholder_item.eo.c"
--- /dev/null
+
+class @beta Efl.Wearable.Placeholder_Item extends Efl.Wearable.Item implements Efl.Content
+{
+ [[Wearable Placeholder Item class. This item have only one swallow space,
+ thus user can decorate item by filling the swallow with
+ any kind of container.]]
+ data: null;
+ parts {
+ content: Efl.Ui.Layout_Part_Content; [[the content part for list placeholder item.
+ the content part is empty slot for user customizing.
+ fill the place with container widget such as layout, box, table.]]
+ }
+ implements {
+ //Efl.Object
+ Efl.Object.constructor;
+ Efl.Content.content { get; set; }
+ Efl.Content.content_unset;
+ Efl.Part.part_get;
+ }
+}
#include "elm_widget.h"
#include "elm_priv.h"
#include "efl_ui_position_manager_common.h"
-//TIZEN_ONLY
#include "efl_ui_item_internal.h"
#define DIMED_ITEM_COLOR 50
#define ALIGNED_ITEM_SCALE_FACTOR 1.5
-//
#define MY_CLASS EFL_WEARABLE_POSITION_MANAGER_CIRCLE_LIST_CLASS
#define MY_DATA_GET(obj, pd) \
else
signal = "efl,state,odd";
efl_layout_signal_emit(ent, signal, "efl");
- // TIZEN ONLY() Circle Fish Eye Effect Implementation
- {
- Efl_Object *proxy = _efl_ui_item_proxy_get(ent);
- int v_center_pos, i_center_pos;
- Eina_Rect p_geom;
- Eina_Size2D resize;
- float ratio;
- double scale;
- double move_v[4] = {0.49, 0.99, 0.45, 1.0};
- double scale_v[4] = {0.49, 0.14, 1, 0.63};
-
- if (!proxy)
- {
- proxy = _efl_ui_item_proxy_new(ent);
- }
- v_center_pos = pd->viewport.y + pd->viewport.h / 2;
- i_center_pos = geom.y + geom.h / 2; // need to be calculated..
-
- if (eina_spans_intersect(geom.x, geom.w, pd->viewport.x, pd->viewport.w) &&
- eina_spans_intersect(geom.y, geom.h, pd->viewport.y, pd->viewport.h))
- {
- efl_gfx_entity_visible_set(proxy, EINA_TRUE);
-
- //need to have some style based vi effect verification.
- ratio = (float)abs(v_center_pos - i_center_pos) / (float)((pd->viewport.h / 2) + geom.h / 2);
- double scale_p = ecore_animator_pos_map_n(ratio, ECORE_POS_MAP_CUBIC_BEZIER, 4, scale_v);
- scale = elm_config_scale_get() - (scale_p * ALIGNED_ITEM_SCALE_FACTOR);
-
- resize.w = geom.w * (scale / elm_config_scale_get());
- if (!((geom.w - resize.w) % 2))
- p_geom.w = resize.w;
- else
- p_geom.w = resize.w + 1;
- p_geom.x = geom.x + (geom.w - p_geom.w) / 2;
- resize.h = geom.h * (scale / elm_config_scale_get());
-
- if (!((geom.h - resize.h) % 2))
- p_geom.h = resize.h;
- else
- p_geom.h = resize.h + 1;
-
- if (i_center_pos < v_center_pos)
- {
- double move_p = ecore_animator_pos_map_n(ratio, ECORE_POS_MAP_CUBIC_BEZIER, 4, move_v);
- p_geom.y = geom.y + move_p * (geom.h - p_geom.h);
- }
- else
- p_geom.y = geom.y;
-
- efl_gfx_entity_geometry_set(proxy, p_geom);
- }
- else
- {
- efl_gfx_entity_visible_set(proxy, EINA_FALSE);
-
- }
-
- //
- }
+
+ // Proxy Effect
+ if (_efl_ui_item_proxy_enabled_get(ent))
+ {
+ Efl_Object *proxy = _efl_ui_item_proxy_get(ent);
+ int v_center_pos, i_center_pos;
+ Eina_Rect p_geom;
+ Eina_Size2D resize;
+ float ratio;
+ double scale;
+ double move_v[4] = {0.49, 0.99, 0.45, 1.0};
+ double scale_v[4] = {0.49, 0.14, 1, 0.63};
+
+ if (!proxy)
+ {
+ proxy = _efl_ui_item_proxy_new(ent);
+ }
+ v_center_pos = pd->viewport.y + pd->viewport.h / 2;
+ i_center_pos = geom.y + geom.h / 2; // need to be calculated..
+
+ if (eina_spans_intersect(geom.x, geom.w, pd->viewport.x, pd->viewport.w) &&
+ eina_spans_intersect(geom.y, geom.h, pd->viewport.y, pd->viewport.h))
+ {
+ efl_gfx_entity_visible_set(proxy, EINA_TRUE);
+
+ //need to have some style based vi effect verification.
+ ratio = (float)abs(v_center_pos - i_center_pos) / (float)((pd->viewport.h / 2) + geom.h / 2);
+ double scale_p = ecore_animator_pos_map_n(ratio, ECORE_POS_MAP_CUBIC_BEZIER, 4, scale_v);
+ scale = elm_config_scale_get() - (scale_p * ALIGNED_ITEM_SCALE_FACTOR);
+
+ resize.w = geom.w * (scale / elm_config_scale_get());
+ if (!((geom.w - resize.w) % 2))
+ p_geom.w = resize.w;
+ else
+ p_geom.w = resize.w + 1;
+ p_geom.x = geom.x + (geom.w - p_geom.w) / 2;
+ resize.h = geom.h * (scale / elm_config_scale_get());
+
+ if (!((geom.h - resize.h) % 2))
+ p_geom.h = resize.h;
+ else
+ p_geom.h = resize.h + 1;
+
+ if (i_center_pos < v_center_pos)
+ {
+ double move_p = ecore_animator_pos_map_n(ratio, ECORE_POS_MAP_CUBIC_BEZIER, 4, move_v);
+ p_geom.y = geom.y + move_p * (geom.h - p_geom.h);
+ }
+ else
+ p_geom.y = geom.y;
+
+ efl_gfx_entity_geometry_set(proxy, p_geom);
+ }
+ else
+ {
+ efl_gfx_entity_visible_set(proxy, EINA_FALSE);
+ }
+ }
}
if (pd->dir == EFL_UI_LAYOUT_ORIENTATION_VERTICAL)
geom.y += size.h;
--- /dev/null
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#endif
+
+#define EFL_WEARABLE_TITLE_ITEM_PROTECTED
+#define EFL_PART_PROTECTED
+
+#include <Elementary.h>
+
+#include "elm_priv.h"
+#include "elm_part_helper.h"
+#include "Efl_Wearable.h"
+
+#define MY_CLASS EFL_WEARABLE_TITLE_ITEM_CLASS
+#define MY_CLASS_PFX efl_wearable_title_item
+
+#define MY_CLASS_NAME "Efl.Wearable.Title_Item"
+
+ELM_PART_TEXT_DEFAULT_GET(efl_wearable_title_item, "efl.text")
+ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_wearable_title_item, void)
+ELM_PART_MARKUP_DEFAULT_IMPLEMENT(efl_wearable_title_item, void)
+
+EOLIAN static Efl_Object *
+_efl_wearable_title_item_efl_part_part_get(const Eo *obj, void *pd EINA_UNUSED, const char *part)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
+ if (eina_streq(part, "text"))
+ return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_TEXT_CLASS, obj, "efl.text");
+
+ return efl_part_get(efl_super(obj, MY_CLASS), part);
+}
+
+EOLIAN static Efl_Object *
+_efl_wearable_title_item_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
+{
+ Eo *eo;
+
+ eo = efl_constructor(efl_super(obj, MY_CLASS));
+ elm_widget_theme_element_set(obj, "title");
+
+ return eo;
+}
+
+#define EFL_WEARABLE_TITLE_ITEM_EXTRA_OPS \
+ ELM_PART_TEXT_DEFAULT_OPS(efl_wearable_title_item)
+
+#include "efl_wearable_title_item.eo.c"
--- /dev/null
+class Efl.Wearable.Title_Item extends Efl.Wearable.Item implements
+ Efl.Text,
+ Efl.Text_Markup,
+ Efl.Ui.L10n
+{
+ [[Wearable Title Item Class.
+
+ @since 1.23
+ ]]
+ data: null;
+ parts {
+ text: Efl.Ui.Layout_Part_Text; [[The text part for default items.
+ This is the caption of the items.]]
+ }
+ implements {
+ Efl.Object.constructor;
+ Efl.Text.text { get; set; }
+ Efl.Text_Markup.markup { get; set; }
+ Efl.Ui.L10n.l10n_text { get; set; }
+ Efl.Part.part_get;
+ }
+}
#<--TIZEN_ONLY
pub_eo_files += [
'efl_wearable_position_manager_circle_list.eo',
+ 'efl_wearable_item.eo',
+ 'efl_wearable_default_item.eo',
+ 'efl_wearable_list_default_item.eo',
+ 'efl_wearable_placeholder_item.eo',
+ 'efl_wearable_title_item.eo',
+ 'efl_wearable_double_text_item.eo',
]
#TIZEN_ONLY-->
'tizen_vector.c',
'tizen_util.c',
'efl_wearable_position_manager_circle_list.c',
+ 'efl_wearable_item.c',
+ 'efl_wearable_default_item.c',
+ 'efl_wearable_list_default_item.c',
+ 'efl_wearable_placeholder_item.c',
+ 'efl_wearable_title_item.c',
+ 'efl_wearable_double_text_item.c',
]
elementary_src_tizen = [