From 69ac403694a2c5e5e21398ba63a77cdbac823d3f Mon Sep 17 00:00:00 2001 From: Bruno Dilly Date: Thu, 14 Jul 2011 15:46:26 +0000 Subject: [PATCH] Elementary calendar: Fix format month / year function When the format function is set, it should apply it immediately on displayed month / year. SVN revision: 61384 --- src/lib/elm_calendar.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/lib/elm_calendar.c b/src/lib/elm_calendar.c index 3f4e78d..a813fbc 100644 --- a/src/lib/elm_calendar.c +++ b/src/lib/elm_calendar.c @@ -208,6 +208,22 @@ _text_day_color_set(Widget_Data *wd, Day_Color col, int pos) } static void +_set_month_year(Widget_Data *wd) +{ + char *buf; + + /* Set selected month */ + buf = wd->format_func(&wd->selected_time); + if (buf) + { + edje_object_part_text_set(wd->calendar, "month_text", buf); + free(buf); + } + else + edje_object_part_text_set(wd->calendar, "month_text", ""); +} + +static void _populate(Evas_Object *obj) { int maxdays, day, mon, year, i; @@ -215,7 +231,6 @@ _populate(Evas_Object *obj) char part[12], day_s[3]; struct tm first_day; Eina_List *l; - char *buf; Eina_Bool last_row = EINA_TRUE; Widget_Data *wd = elm_widget_data_get(obj); @@ -227,15 +242,7 @@ _populate(Evas_Object *obj) mon = wd->selected_time.tm_mon; year = wd->selected_time.tm_year; - /* Set selected month */ - buf = wd->format_func(&wd->selected_time); - if (buf) - { - edje_object_part_text_set(wd->calendar, "month_text", buf); - free(buf); - } - else - edje_object_part_text_set(wd->calendar, "month_text", ""); + _set_month_year(wd); /* Set days */ day = 0; @@ -911,6 +918,7 @@ elm_calendar_format_function_set(Evas_Object *obj, char * (*format_function) (st Widget_Data *wd = elm_widget_data_get(obj); if (!wd) return; wd->format_func = format_function; + _set_month_year(wd); } EAPI Elm_Calendar_Mark * -- 2.7.4