extra: move the common fields to a struct

This commit is contained in:
Marcel Hollerbach 2017-02-16 20:28:42 +01:00
parent b62d34180c
commit 34e1160449
4 changed files with 39 additions and 36 deletions

View File

@ -119,7 +119,7 @@ _text_basic_get(void *data, Evas_Object *obj EINA_UNUSED, const char *source EIN
{ {
Extra_Background *t = data; Extra_Background *t = data;
return strdup(t->name); return strdup(t->obj.name);
} }
static void static void
@ -164,4 +164,4 @@ extra_background_selector_create(void)
evas_object_event_callback_add(grid, EVAS_CALLBACK_HIDE, _selector_hide, NULL); evas_object_event_callback_add(grid, EVAS_CALLBACK_HIDE, _selector_hide, NULL);
return grid; return grid;
} }

View File

@ -63,7 +63,7 @@ _install_theme(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_U
Eina_Strbuf *title; Eina_Strbuf *title;
title = eina_strbuf_new(); title = eina_strbuf_new();
eina_strbuf_append_printf(title, "Installing theme %s!", candidate->name); eina_strbuf_append_printf(title, "Installing theme %s!", candidate->obj.name);
progress = extra_ui_progress_popup_show(eina_strbuf_string_get(title), _install_done, candidate); progress = extra_ui_progress_popup_show(eina_strbuf_string_get(title), _install_done, candidate);
extra_theme_download(progress, candidate); extra_theme_download(progress, candidate);
@ -137,8 +137,8 @@ _popup_theme(Evas_Object *win, Extra_Theme *theme)
Evas_Object *o, *inwin, *table; Evas_Object *o, *inwin, *table;
char title_str[1024], author_str[1024]; char title_str[1024], author_str[1024];
snprintf(title_str, sizeof(title_str), "<title>%s</title>", theme->name); snprintf(title_str, sizeof(title_str), "<title>%s</title>", theme->obj.name);
snprintf(author_str, sizeof(author_str), "<link>%s</link>", theme->author); snprintf(author_str, sizeof(author_str), "<link>%s</link>", theme->obj.author);
inwin = o = elm_win_inwin_add(win); inwin = o = elm_win_inwin_add(win);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@ -203,7 +203,7 @@ _text_basic_get(void *data, Evas_Object *obj EINA_UNUSED, const char *source EIN
{ {
Extra_Theme *t = data; Extra_Theme *t = data;
return strdup(t->name); return strdup(t->obj.name);
} }
static void static void

View File

@ -21,7 +21,7 @@ Eina_List *_background_list = NULL;
void _extra_theme_cache_load(); void _extra_theme_cache_load();
static Eina_Bool extra_request_may_override(Extra_Request *req, Extra_Progress *progress); static Eina_Bool extra_request_may_override(Extra_Request *req, Extra_Progress *progress);
#define GEN_FILE_NAME(buf, t) eina_strbuf_append_printf(buf, "%s-%d.edj", t->id, t->version); #define GEN_FILE_NAME(buf, t) eina_strbuf_append_printf(buf, "%s-%d.edj", t->obj.id, t->obj.version);
//=========== //===========
//theme stuff //theme stuff
@ -67,11 +67,11 @@ _fill_themes(Eina_Strbuf *buf)
versionNumb = atoi(eina_strbuf_string_get(obj->version)); versionNumb = atoi(eina_strbuf_string_get(obj->version));
theme = calloc(1, sizeof(*theme)); theme = calloc(1, sizeof(*theme));
theme->theme.id = sec_strdup(obj->id); theme->theme.obj.id = sec_strdup(obj->id);
theme->theme.name = sec_strdup(obj->name); theme->theme.obj.name = sec_strdup(obj->name);
theme->theme.author = sec_strdup(obj->author); theme->theme.obj.author = sec_strdup(obj->author);
theme->theme.description = sec_strdup(obj->description); theme->theme.description = sec_strdup(obj->description);
theme->theme.version = versionNumb; theme->theme.obj.version = versionNumb;
_theme_list = eina_list_append(_theme_list, theme); _theme_list = eina_list_append(_theme_list, theme);
extra_json_list_part_free(&template, obj); extra_json_list_part_free(&template, obj);
@ -122,10 +122,10 @@ _fill_backgrounds(Eina_Strbuf *buf)
versionNumb = atoi(eina_strbuf_string_get(obj->version)); versionNumb = atoi(eina_strbuf_string_get(obj->version));
background->background.author = sec_strdup(obj->author); background->background.obj.author = sec_strdup(obj->author);
background->background.id = sec_strdup(obj->id); background->background.obj.id = sec_strdup(obj->id);
background->background.name = sec_strdup(obj->name); background->background.obj.name = sec_strdup(obj->name);
background->background.version = versionNumb; background->background.obj.version = versionNumb;
_background_list = eina_list_append(_background_list, background); _background_list = eina_list_append(_background_list, background);
@ -325,7 +325,7 @@ EAPI Extra_Theme *extra_theme_get(const char *id)
Eina_List *item; Eina_List *item;
EINA_LIST_FOREACH(extra_themes_list(), item, theme) EINA_LIST_FOREACH(extra_themes_list(), item, theme)
if (!strcmp(id, theme->id)) if (!strcmp(id, theme->obj.id))
return theme; return theme;
return NULL; return NULL;
@ -403,7 +403,7 @@ extra_theme_preview_get(Extra_Theme *theme)
//download is in progress do not return the path //download is in progress do not return the path
if (priv->preview) return NULL; if (priv->preview) return NULL;
local = _extra_preview_local_generate("themes", theme->id, theme->version); local = _extra_preview_local_generate("themes", theme->obj.id, theme->obj.version);
if (!ecore_file_exists(local)) if (!ecore_file_exists(local))
{ {
free(local); free(local);
@ -413,8 +413,8 @@ extra_theme_preview_get(Extra_Theme *theme)
{ {
if (!priv->cache_preview) if (!priv->cache_preview)
{ {
src = _extra_preview_remote_generate("themes", theme->id); src = _extra_preview_remote_generate("themes", theme->obj.id);
dst = _extra_preview_local_generate("themes", theme->id, theme->version); dst = _extra_preview_local_generate("themes", theme->obj.id, theme->obj.version);
extra_file_cache_download(&p, src, dst, &priv->cache_preview); extra_file_cache_download(&p, src, dst, &priv->cache_preview);
@ -439,8 +439,8 @@ extra_theme_preview_download(Extra_Progress *progress, Extra_Theme *theme)
return NULL; return NULL;
} }
remote = _extra_preview_remote_generate("themes", theme->id); remote = _extra_preview_remote_generate("themes", theme->obj.id);
dst = _extra_preview_local_generate("themes", theme->id, theme->version); dst = _extra_preview_local_generate("themes", theme->obj.id, theme->obj.version);
extra_file_download(progress, remote, dst, &priv->preview); extra_file_download(progress, remote, dst, &priv->preview);
@ -460,7 +460,7 @@ extra_theme_download_url_get(Extra_Theme *theme)
buf = eina_strbuf_new(); buf = eina_strbuf_new();
eina_strbuf_append(buf, "http://" HOSTNAME "/themes/"); eina_strbuf_append(buf, "http://" HOSTNAME "/themes/");
eina_strbuf_append_printf(buf, "%s-%d.edj", theme->id, theme->version); eina_strbuf_append_printf(buf, "%s-%d.edj", theme->obj.id, theme->obj.version);
url = eina_strbuf_string_steal(buf); url = eina_strbuf_string_steal(buf);
eina_strbuf_free(buf); eina_strbuf_free(buf);
@ -605,7 +605,7 @@ extra_theme_installed_old(Extra_Theme *t)
if (!strcmp(eina_strbuf_string_get(buf), file)) if (!strcmp(eina_strbuf_string_get(buf), file))
continue; continue;
if (eina_str_has_prefix(file, t->id) && if (eina_str_has_prefix(file, t->obj.id) &&
eina_str_has_extension(file, "edj")) eina_str_has_extension(file, "edj"))
{ {
b = EINA_TRUE; b = EINA_TRUE;
@ -635,7 +635,7 @@ extra_background_get(const char *id)
EINA_LIST_FOREACH(_background_list, n, b) EINA_LIST_FOREACH(_background_list, n, b)
{ {
if (!strcmp(id, b->id)) if (!strcmp(id, b->obj.id))
return b; return b;
} }
@ -652,7 +652,7 @@ extra_background_download_url_get(Extra_Background *background)
buf = eina_strbuf_new(); buf = eina_strbuf_new();
eina_strbuf_append(buf, "http://" HOSTNAME "/backgrounds/"); eina_strbuf_append(buf, "http://" HOSTNAME "/backgrounds/");
eina_strbuf_append_printf(buf, "%s-%d.edj", background->id, background->version); eina_strbuf_append_printf(buf, "%s-%d.edj", background->obj.id, background->obj.version);
url = eina_strbuf_string_steal(buf); url = eina_strbuf_string_steal(buf);
eina_strbuf_free(buf); eina_strbuf_free(buf);
@ -672,7 +672,7 @@ extra_background_install_path_get(Extra_Background *background)
eina_strbuf_append(buf, eina_environment_home_get()); eina_strbuf_append(buf, eina_environment_home_get());
eina_strbuf_append(buf, "/.e/e/backgrounds/"); eina_strbuf_append(buf, "/.e/e/backgrounds/");
eina_strbuf_append_printf(buf, "%s-%d.edj", background->id, background->version); eina_strbuf_append_printf(buf, "%s-%d.edj", background->obj.id, background->obj.version);
path = eina_strbuf_string_steal(buf); path = eina_strbuf_string_steal(buf);
eina_strbuf_free(buf); eina_strbuf_free(buf);
@ -732,7 +732,7 @@ extra_background_preview_get(Extra_Background *background)
if (priv->preview) return NULL; if (priv->preview) return NULL;
local = _extra_preview_local_generate("backgrounds", background->id, background->version); local = _extra_preview_local_generate("backgrounds", background->obj.id, background->obj.version);
if (!ecore_file_exists(local)) if (!ecore_file_exists(local))
{ {
free(local); free(local);
@ -742,8 +742,8 @@ extra_background_preview_get(Extra_Background *background)
{ {
if (!priv->cache_preview) if (!priv->cache_preview)
{ {
src = _extra_preview_remote_generate("backgrounds", background->id); src = _extra_preview_remote_generate("backgrounds", background->obj.id);
dst = _extra_preview_local_generate("backgrounds", background->id, background->version); dst = _extra_preview_local_generate("backgrounds", background->obj.id, background->obj.version);
extra_file_cache_download(&p, src, dst, &priv->cache_preview); extra_file_cache_download(&p, src, dst, &priv->cache_preview);
@ -768,8 +768,8 @@ extra_background_preview_download(Extra_Progress *progress, Extra_Background *ba
return NULL; return NULL;
} }
remote = _extra_preview_remote_generate("backgrounds", background->id); remote = _extra_preview_remote_generate("backgrounds", background->obj.id);
local = _extra_preview_local_generate("backgrounds", background->id, background->version); local = _extra_preview_local_generate("backgrounds", background->obj.id, background->obj.version);
extra_file_download(progress, remote, local, &priv->preview); extra_file_download(progress, remote, local, &priv->preview);

View File

@ -41,21 +41,24 @@ extern "C" {
typedef void (*Extra_Progress_Cb)(void *data, double progress); typedef void (*Extra_Progress_Cb)(void *data, double progress);
typedef void (*Extra_Done_Cb)(void *data); typedef void (*Extra_Done_Cb)(void *data);
typedef struct _Extra_Theme typedef struct _Extra_Base_Object
{ {
const char *id; const char *id;
const char *name; const char *name;
const char *author; const char *author;
int version; int version;
} Extra_Base_Object;
typedef struct _Extra_Theme
{
Extra_Base_Object obj;
const char *description; const char *description;
} Extra_Theme; } Extra_Theme;
typedef struct _Extra_Background typedef struct _Extra_Background
{ {
const char *id; Extra_Base_Object obj;
const char *name;
const char *author;
int version;
} Extra_Background; } Extra_Background;
typedef struct _Extra_Progress typedef struct _Extra_Progress