diff --git a/src/bin/extra_main.c b/src/bin/extra_main.c index 1bafb43..27c90f9 100644 --- a/src/bin/extra_main.c +++ b/src/bin/extra_main.c @@ -34,6 +34,46 @@ static Evas_Object *_theme_list; static Extra_Theme *_selected_theme; static Theme_Ui ui; + +static void +_extra_win_progress_popup_cb(double progress) +{ + Evas_Object *p; + + p = elm_object_content_get(_popup); + if (elm_progressbar_pulse_get(p)) + { + elm_progressbar_pulse(p, EINA_FALSE); + elm_progressbar_pulse_set(p, EINA_FALSE); + } + + elm_progressbar_value_set(p, progress); +} + + +static void +_extra_win_progress_popup_show(const char *title) +{ + Evas_Object *progress; + + _popup = elm_popup_add(_win); + progress = elm_progressbar_add(_popup); + elm_progressbar_pulse_set(progress, EINA_TRUE); + elm_progressbar_pulse(progress, EINA_TRUE); + evas_object_show(progress); + + elm_object_part_text_set(_popup, "title,text", title); + elm_object_content_set(_popup, progress); + evas_object_show(_popup); +} + +static void +_extra_win_progress_popup_del(void) +{ + evas_object_del(_popup); + _popup = NULL; +} + static void _extra_win_ask_yes(void *data, Evas_Object *obj EINA_UNUSED, @@ -176,10 +216,9 @@ _extra_win_sync_done_cb() { Extra_Theme *first; - elm_genlist_clear(_theme_list); + _extra_win_progress_popup_del(); - evas_object_del(_popup); - _popup = NULL; + elm_genlist_clear(_theme_list); _extra_win_theme_list_refresh(); first = eina_list_data_get(extra_themes_list()); @@ -189,46 +228,20 @@ _extra_win_sync_done_cb() } static void -extra_win_sync(Evas_Object *win) +extra_win_sync(void) { - Evas_Object *progress; - -// _sync_progress.progress_cb = _extra_win_sync_progress_cb; + _sync_progress.progress_cb = _extra_win_progress_popup_cb; _sync_progress.done_cb = _extra_win_sync_done_cb; - _popup = elm_popup_add(win); - progress = elm_progressbar_add(win); - elm_progressbar_pulse_set(progress, EINA_TRUE); - elm_progressbar_pulse(progress, EINA_TRUE); - evas_object_show(progress); - - elm_object_part_text_set(_popup, "title,text", "Downloading themes"); - elm_object_content_set(_popup, progress); - evas_object_show(_popup); + _extra_win_progress_popup_show("Downloading themes"); extra_sync(&_sync_progress); } -static void -_extra_win_download_progress_cb(double progress) -{ - Evas_Object *p; - - p = elm_object_content_get(_popup); - if (elm_progressbar_pulse_get(p)) - { - elm_progressbar_pulse(p, EINA_FALSE); - elm_progressbar_pulse_set(p, EINA_FALSE); - } - - elm_progressbar_value_set(p, progress); -} - static void _extra_win_download_done_cb() { - evas_object_del(_popup); - _popup = NULL; + _extra_win_progress_popup_del(); elm_genlist_clear(_theme_list); _extra_win_theme_list_refresh(); @@ -240,21 +253,11 @@ _extra_win_download_done_cb() static void _extra_win_install_execute() { - Evas_Object *progress; + _extra_win_progress_popup_show("Installing theme"); - _install_progress.progress_cb = _extra_win_download_progress_cb; + _install_progress.progress_cb = _extra_win_progress_popup_cb; _install_progress.done_cb = _extra_win_download_done_cb; - _popup = elm_popup_add(_win); - progress = elm_progressbar_add(_win); - elm_progressbar_pulse_set(progress, EINA_TRUE); - elm_progressbar_pulse(progress, EINA_TRUE); - evas_object_show(progress); - - elm_object_part_text_set(_popup, "title,text", "Processing..."); - elm_object_content_set(_popup, progress); - evas_object_show(_popup); - extra_theme_download(&_install_progress, _selected_theme); } @@ -451,7 +454,7 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) if (!(win = extra_win_setup())) goto end; - extra_win_sync(win); + extra_win_sync(); elm_run();