#include <app-content-category.h>
#include "AppCommon.h"
#include "AppsBaseLayout.h"
+#include "AppInfo.h"
#include "common-ui.h"
#include "define.h"
#include "menudef.h"
void CAppsBaseLayout::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev)
{
- struct thumb_data *tdata;
+ CAppInfo *ainfo = NULL;
int r;
if (id != EO_THUMBNAIL)
return;
- tdata = (struct thumb_data *)_GET_PRIV(obj);
- if (!tdata) {
+ ainfo = (CAppInfo *)_GET_PRIV(obj);
+ if (!ainfo) {
_ERR("Get data failed.");
return;
}
if (!strcmp(ev->keyname, KEY_ENTER)) {
- elm_object_signal_emit(obj, SIG_CLICKED,
- PART_APPTHUMB);
+ elm_object_signal_emit(obj, SIG_CLICKED, PART_APPTHUMB);
- r = app_content_history_add(APP_CH_APPS, tdata->pkgname);
+ r = app_content_history_add(APP_CH_APPS, ainfo->Pkgname());
if (r != 0) {
_ERR("app_content_history_add failed.");
return;
}
- r = aul_open_app(tdata->pkgname);
+ r = aul_open_app(ainfo->Pkgname());
if (r == AUL_R_EINVAL) {
_ERR("Wrong pkg name.");
return;
m->vmgr->UpdateView((const char *)APPS_BASE_VIEW,
(void *)E_FOCUS_MENU);
return;
- } else if (!strcmp(ev->keyname, KEY_LEFT) && tdata->y == 0) {
+ } else if (!strcmp(ev->keyname, KEY_LEFT) && ainfo->CoordY() == 0) {
m->vmgr->UpdateView((const char *)APPS_BASE_VIEW,
(void *)E_FOCUS_MENU);
return;
- } else if (!strcmp(ev->keyname, KEY_UP) && tdata->x == 0) {
+ } else if (!strcmp(ev->keyname, KEY_UP) && ainfo->CoordX() == 0) {
m->vmgr->UpdateView((const char *)APPS_BASE_VIEW,
(void *)E_FOCUS_SORT);
return;
} else if (!strcmp(ev->keyname, KEY_MENU)) {
- if (!m->vmgr->PushView(APPS_CONTEXT_VIEW, tdata))
+ if (!m->vmgr->PushView(APPS_CONTEXT_VIEW, ainfo))
_ERR("Push context view failed.");
}
}
void CAppsBaseLayout::OnMouseDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Mouse_Down *ev)
{
- struct thumb_data *tdata;
+ CAppInfo *ainfo = NULL;
int r;
if (id != EO_THUMBNAIL)
return;
- tdata = (struct thumb_data *)_GET_PRIV(obj);
- if (!tdata) {
+ ainfo = (CAppInfo *)_GET_PRIV(obj);
+ if (!ainfo) {
_ERR("Get data failed.");
return;
}
elm_object_signal_emit(obj, SIG_CLICKED, PART_APPTHUMB);
- r = app_content_history_add(APP_CH_APPS, tdata->pkgname);
+ r = app_content_history_add(APP_CH_APPS, ainfo->Pkgname());
if (r != 0) {
_ERR("app_content_history_add failed.");
return;
}
- r = aul_open_app(tdata->pkgname);
+ r = aul_open_app(ainfo->Pkgname());
if (r == AUL_R_EINVAL)
_ERR("Wrong package name.");
}
void CAppsBaseLayout::OnFocused(int id, Evas_Object *obj, Elm_Object_Item *item)
{
- struct thumb_data *tdata;
+ CAppInfo *ainfo = NULL;
Evas_Object *lbl, *img;
char title[SIZE_STR];
int r;
m->focused_app = obj;
- tdata = (struct thumb_data *)_GET_PRIV(obj);
- if (!tdata) {
+ ainfo = (CAppInfo *)_GET_PRIV(obj);
+ if (!ainfo) {
_ERR("Get Data failed.");
return;
}
"<align=center><color=#FFFFFFFF>"
"<font_size=30><font_weight=Bold>%s"
"</font_weight></font_size>"
- "</color></align>", tdata->name);
+ "</color></align>", ainfo->Name());
elm_object_text_set(lbl, title);
elm_label_ellipsis_set(lbl, EINA_FALSE);
elm_label_slide_duration_set(lbl, 5);
- elm_label_slide_mode_set(lbl,
- ELM_LABEL_SLIDE_MODE_AUTO);
+ elm_label_slide_mode_set(lbl, ELM_LABEL_SLIDE_MODE_AUTO);
elm_label_slide_go(lbl);
type = E_HIGHLIGHT_MENU;
m->vmgr->UpdateView((const char *)APPS_BASE_VIEW, (void *)&type);
- if (!tdata->pkgname) {
+ if (!ainfo->Pkgname()) {
_ERR("pkgname of focused app is NULL.");
return;
}
- r = app_content_favorite_is_set(APP_CF_APPS, tdata->pkgname);
+ r = app_content_favorite_is_set(APP_CF_APPS, ainfo->Pkgname());
if (r > 0) {
img = elm_image_add(obj);
if (!img) {
return;
}
elm_image_file_set(img, FAV_ICON_PNG, NULL);
- elm_object_part_content_set(obj, PART_FAV_ICON,
- img);
+ elm_object_part_content_set(obj, PART_FAV_ICON, img);
} else {
- elm_object_part_content_set(obj, PART_FAV_ICON,
- NULL);
+ elm_object_part_content_set(obj, PART_FAV_ICON, NULL);
}
}
void CAppsBaseLayout::OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item)
{
- struct thumb_data *tdata;
+ CAppInfo *ainfo = NULL;
Evas_Object *lbl;
char title[SIZE_STR];
if (id != EO_THUMBNAIL)
return;
- tdata = (struct thumb_data *)_GET_PRIV(obj);
- if (!tdata) {
+ ainfo = (CAppInfo *)_GET_PRIV(obj);
+ if (!ainfo) {
_ERR("Invalid argument.");
return;
}
- elm_object_signal_emit(obj, SIG_UNFOCUSED,
- PART_APPTHUMB);
+ elm_object_signal_emit(obj, SIG_UNFOCUSED, PART_APPTHUMB);
lbl = elm_object_part_content_get(obj, PART_THUMB_TXT);
if (!lbl) {
snprintf(title, sizeof(title),
"<align=center><color=#D3D3D3FF>"
"<font_size=30>%s</font_size>"
- "</color></align>", tdata->name);
+ "</color></align>", ainfo->Name());
elm_object_text_set(lbl, title);
elm_label_ellipsis_set(lbl, EINA_TRUE);
- elm_label_slide_mode_set(lbl,
- ELM_LABEL_SLIDE_MODE_NONE);
+ elm_label_slide_mode_set(lbl, ELM_LABEL_SLIDE_MODE_NONE);
elm_label_slide_go(lbl);
}
}
/**
- * @Function which will be used as a sorting method.
- *
- * @param[in] first_data : to be compared data
- * @param[in] second_data : to be compared data
- */
-int CAppsBaseLayout::sm_CbSortThumbs(const void *first_data, const void *second_data)
-{
- struct thumb_data *tdata1 = (struct thumb_data *)(first_data);
- struct thumb_data *tdata2 = (struct thumb_data *)(second_data);
-
- if (!tdata1 || !tdata1->name)
- return 1;
-
- if (!tdata2 || !tdata2->name)
- return -1;
-
- return strcmp(tdata1->name, tdata2->name);
-}
-
-/**
* @Forms the layout of the app thumbnail object.
*
* @param[in] obj : the parent object, namely table object
/**
* @Packs the app thumbnail object to the table.
*
- * @param[in] tdata : app thumbnail data handler
+ * @param[in] ainfo : app thumbnail info handler
*/
-void CAppsBaseLayout::m_PackThumbnail(struct thumb_data *tdata)
+void CAppsBaseLayout::m_PackThumbnail(CAppInfo *ainfo)
{
- ASSERT(tdata);
+ ASSERT(ainfo);
Evas_Object *thumb, *img;
char *pkgname_ptr;
int r;
- thumb = m_LoadAppInfo(m->table, tdata->name, tdata->icon);
+ thumb = m_LoadAppInfo(m->table, ainfo->Name(), ainfo->Icon());
if (!thumb) {
_ERR("m_LoadAppInfo failed.");
return;
}
- _SET_PRIV(thumb, tdata);
+ _SET_PRIV(thumb, ainfo);
- if (!tdata->pkgname) {
+ if (!ainfo->Pkgname()) {
_ERR("App ID is NULL.");
return;
}
- r = app_content_favorite_is_set(APP_CF_APPS, tdata->pkgname);
+ r = app_content_favorite_is_set(APP_CF_APPS, ainfo->Pkgname());
if (r > 0) {
img = elm_image_add(thumb);
if (!img) {
if (m->cur_x == 0)
m->top_right_thumb = thumb;
- tdata->x = m->cur_x;
- tdata->y = m->cur_y;
+ ainfo->SetCoordX(m->cur_x);
+ ainfo->SetCoordY(m->cur_y);
elm_table_pack(m->table, thumb, m->cur_y++, m->cur_x, 1, 1);
evas_object_show(thumb);
m->cur_y = 0;
}
- pkgname_ptr = strdup(tdata->pkgname);
+ pkgname_ptr = strdup(ainfo->Pkgname());
Connect(thumb, EO_THUMBNAIL, TYPE_MOUSE_MOVE | TYPE_FOCUSED
| TYPE_KEY_DOWN | TYPE_UNFOCUSED | TYPE_MOUSE_DOWN);
ASSERT(data);
SAppsBaseLayout *m = (SAppsBaseLayout *)data;
- struct thumb_data *tdata;
+ CAppInfo *ainfo = NULL;
char *pkgname, *name, *icon, *category, *version, *pkgid;
int r, i;
return AIL_CB_RET_CANCEL;
}
+ ainfo = new CAppInfo;
+
+ ainfo->Create();
+ if (!ainfo)
+ return AIL_CB_RET_CANCEL;
+
r = ail_appinfo_get_str(appinfo, AIL_PROP_PACKAGE_STR, &pkgname);
if (r != AIL_ERROR_OK)
goto err;
return AIL_CB_RET_CONTINUE;
}
- tdata = (struct thumb_data *)calloc(1, sizeof(*tdata));
- if (!tdata) {
- _ERR("calloc failed.");
- return AIL_CB_RET_CONTINUE;
- }
-
if (pkgname)
- tdata->pkgname = strdup(pkgname);
+ ainfo->SetPkgname(pkgname);
if (pkgid)
- tdata->pkgid = strdup(pkgid);
+ ainfo->SetPkgid(pkgid);
if (name)
- tdata->name = strdup(name);
+ ainfo->SetName(name);
if (icon)
- tdata->icon = strdup(icon);
+ ainfo->SetIcon(icon);
if (category)
- tdata->category = strdup(category);
+ ainfo->SetCategory(category);
if (version)
- tdata->version = strdup(version);
+ ainfo->SetVersion(version);
- m->menulist[APPS_LIST] = eina_list_append(m->menulist[APPS_LIST], tdata);
+ m->menulist[APPS_LIST] = eina_list_append(m->menulist[APPS_LIST], ainfo);
r = app_content_favorite_is_set(APP_CF_APPS, pkgname);
if (r > 0)
- m->menulist[FAV_LIST] = eina_list_append(m->menulist[FAV_LIST], tdata);
+ m->menulist[FAV_LIST] = eina_list_append(m->menulist[FAV_LIST], ainfo);
return AIL_CB_RET_CONTINUE;
err:
_ERR("ail_appinfo_get_str failed.");
+ ainfo->Destroy();
+ delete ainfo;
return AIL_CB_RET_CONTINUE;
}
Eina_List *list = NULL;
GList *l;
ail_appinfo_h aih;
- struct thumb_data *tdata;
+ CAppInfo *ainfo = NULL;
char *contents_id, *name, *icon, *pkgid;
int i, idx, r;
continue;
}
- tdata = (struct thumb_data *)calloc(1, sizeof(*tdata));
- if (!tdata) {
- _ERR("calloc failed.");
+ ainfo = new CAppInfo;
+
+ ainfo->Create();
+ if (!ainfo)
continue;
- }
if (contents_id)
- tdata->pkgname = strdup(contents_id);
+ ainfo->SetPkgname(contents_id);
if (name)
- tdata->name = strdup(name);
+ ainfo->SetName(name);
if (pkgid)
- tdata->pkgid = strdup(pkgid);
+ ainfo->SetPkgid(pkgid);
if (icon)
- tdata->icon = strdup(icon);
+ ainfo->SetIcon(icon);
- list = eina_list_append(list, tdata);
+ list = eina_list_append(list, ainfo);
ail_destroy_appinfo(aih);
}
{
ASSERT(list);
- struct thumb_data *tdata;
+ CAppInfo *ainfo = NULL;
void *obj;
Eina_List *l;
if (m->sort_type == SORT_A_TO_Z) {
EINA_LIST_FOREACH(list, l, obj) {
- tdata = (struct thumb_data *)obj;
- m_PackThumbnail(tdata);
+ ainfo = (CAppInfo *)obj;
+ m_PackThumbnail(ainfo);
}
} else if (m->sort_type == SORT_Z_TO_A) {
EINA_LIST_REVERSE_FOREACH(list, l, obj) {
- tdata = (struct thumb_data *)obj;
- m_PackThumbnail(tdata);
+ ainfo = (CAppInfo *)obj;
+ m_PackThumbnail(ainfo);
}
}
}
return;
}
- m->menulist[APPS_LIST] = eina_list_sort(m->menulist[APPS_LIST], 0, sm_CbSortThumbs);
- m->menulist[FAV_LIST] = eina_list_sort(m->menulist[FAV_LIST], 0, sm_CbSortThumbs);
+ m->menulist[APPS_LIST] = eina_list_sort(m->menulist[APPS_LIST],
+ 0, CAppInfo::s_SortTitleAZ);
+ m->menulist[FAV_LIST] = eina_list_sort(m->menulist[FAV_LIST],
+ 0, CAppInfo::s_SortTitleAZ);
elm_object_content_set(scroller, table);
elm_object_part_content_set(m->base, PART_APPTABLE, scroller);
{
ASSERT(pkgname);
- struct thumb_data *tdata;
+ CAppInfo *ainfo = NULL;
void *obj;
Eina_List *l;
EINA_LIST_FOREACH(m->menulist[FAV_LIST], l, obj) {
- tdata = (struct thumb_data *)obj;
- if (!strcmp(pkgname, tdata->pkgname)) {
+ ainfo = (CAppInfo *)obj;
+ if (!strcmp(pkgname, ainfo->Pkgname())) {
m->menulist[FAV_LIST]
= eina_list_remove_list(m->menulist[FAV_LIST], l);
return;
{
ASSERT(pkgname);
- struct thumb_data *tdata;
+ CAppInfo *ainfo = NULL;
ail_appinfo_h aih;
char *name, *icon, *category, *version, *pkgid;
int r;
if (r != AIL_ERROR_OK)
goto err;
- tdata = (struct thumb_data *)calloc(1, sizeof(*tdata));
- if (!tdata)
+ ainfo = new CAppInfo();
+
+ ainfo->Create();
+ if (!ainfo)
goto err;
if (pkgname)
- tdata->pkgname = strdup(pkgname);
+ ainfo->SetPkgname(pkgname);
if (name)
- tdata->name = strdup(name);
+ ainfo->SetName(name);
if (name)
- tdata->pkgid = strdup(pkgid);
+ ainfo->SetPkgid(pkgid);
if (icon)
- tdata->icon = strdup(icon);
+ ainfo->SetIcon(icon);
if (category)
- tdata->category = strdup(category);
+ ainfo->SetCategory(category);
if (version)
- tdata->version = strdup(version);
+ ainfo->SetVersion(version);
- m->menulist[FAV_LIST] = eina_list_append(m->menulist[FAV_LIST], tdata);
+ m->menulist[FAV_LIST] = eina_list_append(m->menulist[FAV_LIST], ainfo);
ail_destroy_appinfo(aih);
CAppsBaseLayout *This = (CAppsBaseLayout *)user_data;
SAppsBaseLayout *m = (SAppsBaseLayout *)This->m;
- struct thumb_data *tdata;
+ CAppInfo *ainfo = NULL;
void *obj;
Eina_List *l;
int r;
return;
EINA_LIST_FOREACH(m->menulist[APPS_LIST], l, obj) {
- tdata = (struct thumb_data *)obj;
- if (!strcmp(package, tdata->pkgname)) {
+ ainfo = (CAppInfo *)obj;
+ if (!strcmp(package, ainfo->Pkgname())) {
m->menulist[APPS_LIST] =
eina_list_remove_list(m->menulist[APPS_LIST],
l);
}
EINA_LIST_FOREACH(m->menulist[FAV_LIST], l, obj) {
- tdata = (struct thumb_data *)obj;
- if (!strcmp(package, tdata->pkgname)) {
+ ainfo = (CAppInfo *)obj;
+ if (!strcmp(package, ainfo->Pkgname())) {
m->menulist[FAV_LIST] =
eina_list_remove_list(m->menulist[FAV_LIST],
l);
return true;
}
-/**
- * @Frees the allocated list data memory.
- *
- * @param[in] tdata : app thumbnail data handler
- */
-void CAppsBaseLayout::m_FreeListItem(struct thumb_data *tdata)
-{
- if (!tdata)
- return;
-
- free(tdata->pkgname);
- free(tdata->name);
- free(tdata->icon);
- free(tdata->version);
- free(tdata->category);
- free(tdata);
-}
-
void CAppsBaseLayout::Destroy(void)
{
ASSERT(m);
CBaseLayout::Destroy();
- struct thumb_data *tdata;
+ CAppInfo *ainfo = NULL;
void *obj;
int i;
for (i = 0; i < m->category_cnt + 2; i++) {
EINA_LIST_FREE(m->menulist[i], obj) {
- tdata = (struct thumb_data *)obj;
- m_FreeListItem(tdata);
+ ainfo = (CAppInfo *)obj;
+ ainfo->Destroy();
+ delete ainfo;
}
}