From: Minkyu Kang Date: Tue, 14 Jul 2015 12:26:24 +0000 (+0900) Subject: progressbar: add function for setting time format X-Git-Tag: accepted/tizen/tv/20150728.070555~70 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d0a4cccd4d1b681617cb2297dd351cc3fa2ce062;p=profile%2Ftv%2Fapps%2Fnative%2Fair_mediahub.git progressbar: add function for setting time format Change-Id: If9a302665dd320e951a4a766077c1e3ebfe5a282 Signed-off-by: Minkyu Kang --- diff --git a/include/util/progressbar.h b/include/util/progressbar.h index 792dcc8..884761e 100644 --- a/include/util/progressbar.h +++ b/include/util/progressbar.h @@ -24,6 +24,11 @@ struct progressbar_ops { int (*set_value)(void *data); }; +enum progressbar_time_format { + PROG_TIME_FORMAT_FIT, /* eg) 7:17 - default */ + PROG_TIME_FORMAT_FULL, /* eg) 00:07:17 */ +}; + struct progressbar *progressbar_create(Evas_Object *base, const char *style); void progressbar_destroy(struct progressbar *m); @@ -31,6 +36,8 @@ void progressbar_set_parts(struct progressbar *m, const char *slider, const char *total, const char *progress, const char *separator); void progressbar_set_ops(struct progressbar *m, struct progressbar_ops *ops, void *data); +void progressbar_set_time_format(struct progressbar *m, + enum progressbar_time_format fmt); void progressbar_reset(struct progressbar *m, int position, int duration); void progressbar_show(struct progressbar *m); diff --git a/src/util/progressbar.c b/src/util/progressbar.c index 756c44a..b89b71e 100644 --- a/src/util/progressbar.c +++ b/src/util/progressbar.c @@ -39,13 +39,15 @@ struct progressbar { char *part_total; char *part_progress; char *str_separator; + + enum progressbar_time_format fmt; }; static void _update_progress_info(struct progressbar *m, int position) { char progress[32] = {0,}; - util_time_string(progress, sizeof(progress), position); + util_time_string(progress, sizeof(progress), position, m->fmt); elm_object_part_text_set(m->base, m->part_progress, progress); } @@ -54,7 +56,7 @@ static void _update_time_info(struct progressbar *m, int position, int duration) char str[32] = {0,}; char total[32] = {0,}; - util_time_string(str, sizeof(str), duration); + util_time_string(str, sizeof(str), duration, m->fmt); snprintf(total, sizeof(total), "%s%s", m->str_separator, str); elm_object_part_text_set(m->base, m->part_total, total); @@ -174,6 +176,17 @@ void progressbar_reset(struct progressbar *m, int position, int duration) _update_time_info(m, position, duration); } +void progressbar_set_time_format(struct progressbar *m, + enum progressbar_time_format fmt) +{ + if (!m) { + _ERR("invalid parameter"); + return; + } + + m->fmt = fmt; +} + void progressbar_set_ops(struct progressbar *m, struct progressbar_ops *ops, void *data) { @@ -225,19 +238,20 @@ struct progressbar *progressbar_create(Evas_Object *base, const char *style) return NULL; } + if (style) + elm_object_style_set(obj, style); + elm_slider_indicator_show_set(obj, EINA_FALSE); elm_slider_indicator_show_on_focus_set(obj, EINA_FALSE); elm_slider_horizontal_set(obj, EINA_TRUE); elm_slider_step_set(obj, SLIDER_DEFAULT); - if (style) - elm_object_style_set(obj, style); - /* FIXME: focus disabled */ elm_object_focus_allow_set(obj, EINA_FALSE); m->base = base; m->slider = obj; + m->fmt = PROG_TIME_FORMAT_FIT; return m; }