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_widget.eo \
elm_win.eo \ elm_win.eo \
elm_widget_item.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_c = $(elm_eolian_files:%.eo=%.eo.c)
elm_eolian_h = $(elm_eolian_files:%.eo=%.eo.h) elm_eolian_h = $(elm_eolian_files:%.eo=%.eo.h)
@ -718,7 +719,8 @@ elementaryeolianfiles_DATA = \
elm_web.eo \ elm_web.eo \
elm_win.eo \ elm_win.eo \
elm_widget_item.eo \ elm_widget_item.eo \
elm_color_item.eo elm_color_item.eo \
elm_dayselector_item.eo
EXTRA_DIST += ${elementaryeolianfiles_DATA} 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; Eina_List *l;
char buf[1024]; char buf[1024];
struct tm time_daysel; struct tm time_daysel;
Elm_Dayselector_Item *it; Elm_Dayselector_Item_Data *it;
if (sd->weekdays_names_set) if (sd->weekdays_names_set)
return EINA_TRUE; return EINA_TRUE;
@ -85,7 +85,7 @@ _update_items(Evas_Object *obj)
Eina_List *l; Eina_List *l;
Eina_Bool rtl; Eina_Bool rtl;
unsigned int last_day; unsigned int last_day;
Elm_Dayselector_Item *it; Elm_Dayselector_Item_Data *it;
ELM_DAYSELECTOR_DATA_GET(obj, sd); ELM_DAYSELECTOR_DATA_GET(obj, sd);
@ -115,7 +115,7 @@ _update_items(Evas_Object *obj)
static inline unsigned int static inline unsigned int
_item_location_get(Elm_Dayselector_Data *sd, _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) % return (ELM_DAYSELECTOR_MAX - sd->week_start + it->day) %
ELM_DAYSELECTOR_MAX; ELM_DAYSELECTOR_MAX;
@ -128,7 +128,7 @@ _elm_dayselector_elm_widget_theme_apply(Eo *obj, Elm_Dayselector_Data *sd)
Eina_List *l; Eina_List *l;
char buf[1024]; 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()); eo_do_super(obj, MY_CLASS, int_ret = elm_obj_widget_theme_apply());
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
@ -158,7 +158,7 @@ _item_del_cb(void *data,
{ {
Eina_List *l; Eina_List *l;
char buf[1024]; char buf[1024];
Elm_Dayselector_Item *it; Elm_Dayselector_Item_Data *it;
ELM_DAYSELECTOR_DATA_GET(data, sd); ELM_DAYSELECTOR_DATA_GET(data, sd);
@ -173,7 +173,7 @@ _item_del_cb(void *data,
elm_layout_signal_emit(obj, buf, "elm"); elm_layout_signal_emit(obj, buf, "elm");
VIEW(it) = NULL; VIEW(it) = NULL;
elm_widget_item_free(it); eo_del((Eo *)EO_OBJ(it));
elm_layout_sizing_eval(obj); elm_layout_sizing_eval(obj);
break; break;
@ -187,7 +187,7 @@ _item_signal_emit_cb(void *data,
const char *emission, const char *emission,
const char *source EINA_UNUSED) const char *source EINA_UNUSED)
{ {
Elm_Dayselector_Item *it = data; Elm_Dayselector_Item_Data *it = data;
eina_stringshare_replace(&it->day_style, emission); eina_stringshare_replace(&it->day_style, emission);
} }
@ -197,17 +197,17 @@ _item_clicked_cb(void *data,
Evas_Object *obj EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info 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); 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, _item_find(const Evas_Object *obj,
Elm_Dayselector_Day day) Elm_Dayselector_Day day)
{ {
Eina_List *l; Eina_List *l;
Elm_Dayselector_Item *it; Elm_Dayselector_Item_Data *it;
ELM_DAYSELECTOR_DATA_GET(obj, sd); 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; int day;
char buf[1024]; char buf[1024];
Elm_Dayselector_Item *it = NULL; Elm_Dayselector_Item_Data *it = NULL;
if (strcmp(elm_object_widget_type_get(content), "Elm_Check")) if (strcmp(elm_object_widget_type_get(content), "Elm_Check"))
return EINA_FALSE; return EINA_FALSE;
@ -249,7 +249,8 @@ _elm_dayselector_elm_container_content_set(Eo *obj, Elm_Dayselector_Data *sd, co
} }
else 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; it->day = day;
snprintf(buf, sizeof(buf), "day%d", _item_location_get(sd, it)); 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)); eo_do_super(obj, MY_CLASS, int_ret = elm_obj_container_content_set(buf, content));
if (!int_ret) if (!int_ret)
{ {
elm_widget_item_free(it); eo_del(eo_it);
return EINA_FALSE; return EINA_FALSE;
} }
@ -287,13 +288,20 @@ _elm_dayselector_elm_container_content_set(Eo *obj, Elm_Dayselector_Data *sd, co
return EINA_TRUE; 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* EOLIAN static Evas_Object*
_elm_dayselector_elm_container_content_unset(Eo *obj, Elm_Dayselector_Data *sd, const char *item) _elm_dayselector_elm_container_content_unset(Eo *obj, Elm_Dayselector_Data *sd, const char *item)
{ {
int day; int day;
char buf[1024]; char buf[1024];
Evas_Object *content; Evas_Object *content;
Elm_Dayselector_Item *it = NULL; Elm_Dayselector_Item_Data *it = NULL;
day = atoi(item + (strlen(item) - 1)); day = atoi(item + (strlen(item) - 1));
if (day < 0 || day > ELM_DAYSELECTOR_MAX) return NULL; 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"); elm_layout_signal_emit(obj, buf, "elm");
VIEW(it) = NULL; VIEW(it) = NULL;
elm_widget_item_free(it); eo_del((Eo *)EO_OBJ(it));
elm_layout_sizing_eval(obj); elm_layout_sizing_eval(obj);
@ -334,7 +342,7 @@ static void
_items_style_set(Evas_Object *obj) _items_style_set(Evas_Object *obj)
{ {
Eina_List *l; Eina_List *l;
Elm_Dayselector_Item *it; Elm_Dayselector_Item_Data *it;
unsigned int weekend_last; unsigned int weekend_last;
ELM_DAYSELECTOR_DATA_GET(obj, sd); 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 EOLIAN static void
_elm_dayselector_evas_object_smart_del(Eo *obj, Elm_Dayselector_Data *sd) _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) EINA_LIST_FREE(sd->items, it)
{ {
sd->items = eina_list_remove(sd->items, it); sd->items = eina_list_remove(sd->items, it);
eina_stringshare_del(it->day_style); eina_stringshare_del(it->day_style);
elm_widget_item_free(it); eo_del((Eo *)EO_OBJ(it));
} }
/* handles freeing sd */ /* 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); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
Eina_List *l; Eina_List *l;
char buf[1024]; char buf[1024];
Elm_Dayselector_Item *it; Elm_Dayselector_Item_Data *it;
/* just shuffling items, so swalling them directly */ /* just shuffling items, so swalling them directly */
sd->week_start = day; sd->week_start = day;
@ -529,7 +537,7 @@ _elm_dayselector_weekdays_names_set(Eo *obj, Elm_Dayselector_Data *sd, const cha
int idx; int idx;
time_t now; time_t now;
struct tm time_daysel; struct tm time_daysel;
Elm_Dayselector_Item *it; Elm_Dayselector_Item_Data *it;
char buf[1024]; char buf[1024];
if (weekdays) if (weekdays)
@ -561,7 +569,7 @@ _elm_dayselector_weekdays_names_get(Eo *obj, Elm_Dayselector_Data *sd EINA_UNUSE
{ {
int idx; int idx;
const char *weekday; const char *weekday;
Elm_Dayselector_Item *it; Elm_Dayselector_Item_Data *it;
Eina_List *weekdays = NULL; Eina_List *weekdays = NULL;
for (idx = 0; idx < ELM_DAYSELECTOR_MAX; idx++) 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.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 #define ELM_WIDGET_DAYSELECTOR_H
#include "Elementary.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 /* 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 * 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; Eina_Bool weekdays_names_set : 1;
}; };
typedef struct _Elm_Dayselector_Item Elm_Dayselector_Item; typedef struct _Elm_Dayselector_Item_Data Elm_Dayselector_Item_Data;
struct _Elm_Dayselector_Item struct _Elm_Dayselector_Item_Data
{ {
ELM_WIDGET_ITEM; Elm_Widget_Item_Data *base;
Elm_Dayselector_Day day; Elm_Dayselector_Day day;
const char *day_style; const char *day_style;
}; };
@ -70,4 +73,7 @@ struct _Elm_Dayselector_Item
if (EINA_UNLIKELY(!eo_isa((obj), ELM_DAYSELECTOR_CLASS))) \ if (EINA_UNLIKELY(!eo_isa((obj), ELM_DAYSELECTOR_CLASS))) \
return 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 #endif