extra: refactor progress popup

this refactors the progress displaying of hte popups and progress calls
from the lib.
This commit is contained in:
Marcel Hollerbach 2017-01-09 16:24:59 +01:00
parent 443d899a12
commit 4b28a5d844
1 changed files with 49 additions and 46 deletions

View File

@ -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();