Elm Dayselector Item: Migrate to Eo

This commit is contained in:
Daniel Zaoui 2014-09-28 08:13:49 +03:00
parent e1d7009ff3
commit 1a56647934
4 changed files with 52 additions and 26 deletions

View File

@ -605,7 +605,8 @@ elm_web.eo \
elm_widget.eo \
elm_win.eo \
elm_widget_item.eo \
elm_color_item.eo
elm_color_item.eo \
elm_dayselector_item.eo
elm_eolian_c = $(elm_eolian_files:%.eo=%.eo.c)
elm_eolian_h = $(elm_eolian_files:%.eo=%.eo.h)
@ -718,7 +719,8 @@ elementaryeolianfiles_DATA = \
elm_web.eo \
elm_win.eo \
elm_widget_item.eo \
elm_color_item.eo
elm_color_item.eo \
elm_dayselector_item.eo
EXTRA_DIST += ${elementaryeolianfiles_DATA}

View File

@ -60,7 +60,7 @@ _elm_dayselector_elm_widget_translate(Eo *obj EINA_UNUSED, Elm_Dayselector_Data
Eina_List *l;
char buf[1024];
struct tm time_daysel;
Elm_Dayselector_Item *it;
Elm_Dayselector_Item_Data *it;
if (sd->weekdays_names_set)
return EINA_TRUE;
@ -85,7 +85,7 @@ _update_items(Evas_Object *obj)
Eina_List *l;
Eina_Bool rtl;
unsigned int last_day;
Elm_Dayselector_Item *it;
Elm_Dayselector_Item_Data *it;
ELM_DAYSELECTOR_DATA_GET(obj, sd);
@ -115,7 +115,7 @@ _update_items(Evas_Object *obj)
static inline unsigned int
_item_location_get(Elm_Dayselector_Data *sd,
Elm_Dayselector_Item *it)
Elm_Dayselector_Item_Data *it)
{
return (ELM_DAYSELECTOR_MAX - sd->week_start + it->day) %
ELM_DAYSELECTOR_MAX;
@ -128,7 +128,7 @@ _elm_dayselector_elm_widget_theme_apply(Eo *obj, Elm_Dayselector_Data *sd)
Eina_List *l;
char buf[1024];
Elm_Dayselector_Item *it;
Elm_Dayselector_Item_Data *it;
eo_do_super(obj, MY_CLASS, int_ret = elm_obj_widget_theme_apply());
if (!int_ret) return EINA_FALSE;
@ -158,7 +158,7 @@ _item_del_cb(void *data,
{
Eina_List *l;
char buf[1024];
Elm_Dayselector_Item *it;
Elm_Dayselector_Item_Data *it;
ELM_DAYSELECTOR_DATA_GET(data, sd);
@ -173,7 +173,7 @@ _item_del_cb(void *data,
elm_layout_signal_emit(obj, buf, "elm");
VIEW(it) = NULL;
elm_widget_item_free(it);
eo_del((Eo *)EO_OBJ(it));
elm_layout_sizing_eval(obj);
break;
@ -187,7 +187,7 @@ _item_signal_emit_cb(void *data,
const char *emission,
const char *source EINA_UNUSED)
{
Elm_Dayselector_Item *it = data;
Elm_Dayselector_Item_Data *it = data;
eina_stringshare_replace(&it->day_style, emission);
}
@ -197,17 +197,17 @@ _item_clicked_cb(void *data,
Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
{
Elm_Dayselector_Item *it = data;
Elm_Dayselector_Item_Data *it = data;
evas_object_smart_callback_call(WIDGET(it), SIG_CHANGED, (void *)it->day);
}
static Elm_Dayselector_Item *
static Elm_Dayselector_Item_Data *
_item_find(const Evas_Object *obj,
Elm_Dayselector_Day day)
{
Eina_List *l;
Elm_Dayselector_Item *it;
Elm_Dayselector_Item_Data *it;
ELM_DAYSELECTOR_DATA_GET(obj, sd);
@ -224,7 +224,7 @@ _elm_dayselector_elm_container_content_set(Eo *obj, Elm_Dayselector_Data *sd, co
int day;
char buf[1024];
Elm_Dayselector_Item *it = NULL;
Elm_Dayselector_Item_Data *it = NULL;
if (strcmp(elm_object_widget_type_get(content), "Elm_Check"))
return EINA_FALSE;
@ -249,7 +249,8 @@ _elm_dayselector_elm_container_content_set(Eo *obj, Elm_Dayselector_Data *sd, co
}
else
{
it = elm_widget_item_new(obj, Elm_Dayselector_Item);
Eo *eo_it = eo_add(ELM_DAYSELECTOR_ITEM_CLASS, obj);
it = eo_data_scope_get(eo_it, ELM_DAYSELECTOR_ITEM_CLASS);
it->day = day;
snprintf(buf, sizeof(buf), "day%d", _item_location_get(sd, it));
@ -257,7 +258,7 @@ _elm_dayselector_elm_container_content_set(Eo *obj, Elm_Dayselector_Data *sd, co
eo_do_super(obj, MY_CLASS, int_ret = elm_obj_container_content_set(buf, content));
if (!int_ret)
{
elm_widget_item_free(it);
eo_del(eo_it);
return EINA_FALSE;
}
@ -287,13 +288,20 @@ _elm_dayselector_elm_container_content_set(Eo *obj, Elm_Dayselector_Data *sd, co
return EINA_TRUE;
}
EOLIAN static void
_elm_dayselector_item_eo_base_constructor(Eo *eo_item, Elm_Dayselector_Item_Data *item)
{
eo_do_super(eo_item, ELM_DAYSELECTOR_ITEM_CLASS, eo_constructor());
item->base = eo_data_scope_get(eo_item, ELM_WIDGET_ITEM_CLASS);
}
EOLIAN static Evas_Object*
_elm_dayselector_elm_container_content_unset(Eo *obj, Elm_Dayselector_Data *sd, const char *item)
{
int day;
char buf[1024];
Evas_Object *content;
Elm_Dayselector_Item *it = NULL;
Elm_Dayselector_Item_Data *it = NULL;
day = atoi(item + (strlen(item) - 1));
if (day < 0 || day > ELM_DAYSELECTOR_MAX) return NULL;
@ -323,7 +331,7 @@ _elm_dayselector_elm_container_content_unset(Eo *obj, Elm_Dayselector_Data *sd,
elm_layout_signal_emit(obj, buf, "elm");
VIEW(it) = NULL;
elm_widget_item_free(it);
eo_del((Eo *)EO_OBJ(it));
elm_layout_sizing_eval(obj);
@ -334,7 +342,7 @@ static void
_items_style_set(Evas_Object *obj)
{
Eina_List *l;
Elm_Dayselector_Item *it;
Elm_Dayselector_Item_Data *it;
unsigned int weekend_last;
ELM_DAYSELECTOR_DATA_GET(obj, sd);
@ -424,13 +432,13 @@ _elm_dayselector_evas_object_smart_add(Eo *obj, Elm_Dayselector_Data *priv)
EOLIAN static void
_elm_dayselector_evas_object_smart_del(Eo *obj, Elm_Dayselector_Data *sd)
{
Elm_Dayselector_Item *it;
Elm_Dayselector_Item_Data *it;
EINA_LIST_FREE(sd->items, it)
{
sd->items = eina_list_remove(sd->items, it);
eina_stringshare_del(it->day_style);
elm_widget_item_free(it);
eo_del((Eo *)EO_OBJ(it));
}
/* handles freeing sd */
@ -473,7 +481,7 @@ _elm_dayselector_week_start_set(Eo *obj, Elm_Dayselector_Data *sd, Elm_Dayselect
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
Eina_List *l;
char buf[1024];
Elm_Dayselector_Item *it;
Elm_Dayselector_Item_Data *it;
/* just shuffling items, so swalling them directly */
sd->week_start = day;
@ -529,7 +537,7 @@ _elm_dayselector_weekdays_names_set(Eo *obj, Elm_Dayselector_Data *sd, const cha
int idx;
time_t now;
struct tm time_daysel;
Elm_Dayselector_Item *it;
Elm_Dayselector_Item_Data *it;
char buf[1024];
if (weekdays)
@ -561,7 +569,7 @@ _elm_dayselector_weekdays_names_get(Eo *obj, Elm_Dayselector_Data *sd EINA_UNUSE
{
int idx;
const char *weekday;
Elm_Dayselector_Item *it;
Elm_Dayselector_Item_Data *it;
Eina_List *weekdays = NULL;
for (idx = 0; idx < ELM_DAYSELECTOR_MAX; idx++)
@ -586,3 +594,5 @@ _elm_dayselector_class_constructor(Eo_Class *klass)
}
#include "elm_dayselector.eo.c"
#include "elm_dayselector_item.eo.c"

View File

@ -0,0 +1,8 @@
class Elm_Dayselector_Item(Elm_Widget_Item)
{
legacy_prefix: null;
eo_prefix: elm_dayselector_item;
implements {
Eo.Base.constructor;
}
}

View File

@ -2,6 +2,9 @@
#define ELM_WIDGET_DAYSELECTOR_H
#include "Elementary.h"
#include "elm_dayselector_item.eo.h"
#include "elm_object_item_migration_temp.h"
/* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR
* CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT
@ -33,10 +36,10 @@ struct _Elm_Dayselector_Data
Eina_Bool weekdays_names_set : 1;
};
typedef struct _Elm_Dayselector_Item Elm_Dayselector_Item;
struct _Elm_Dayselector_Item
typedef struct _Elm_Dayselector_Item_Data Elm_Dayselector_Item_Data;
struct _Elm_Dayselector_Item_Data
{
ELM_WIDGET_ITEM;
Elm_Widget_Item_Data *base;
Elm_Dayselector_Day day;
const char *day_style;
};
@ -70,4 +73,7 @@ struct _Elm_Dayselector_Item
if (EINA_UNLIKELY(!eo_isa((obj), ELM_DAYSELECTOR_CLASS))) \
return
#define ELM_DAYSELECTOR_ITEM_DATA_GET(o, sd) \
Elm_Dayselector_Item_Data * sd = eo_data_scope_get((Eo *)o, ELM_DAYSELECTOR_ITEM_CLASS)
#endif