inherit, "default" 0.0;
color, 0 119 246 255;
}
+ description {
+ state, "disable" 0.0;
+ inherit, "default" 0.0;
+ color, 87 87 87 125;
+ }
}
part {
name, "icon";
transition, LINEAR 0.5;
target, "bg";
}
+ program {
+ name, "sig,disable";
+ signal, SIG_DISABLE;
+ source, SRC_PROG;
+ action, STATE_SET "disable" 0.0;
+ target, "bg";
+ }
}
}
ITEM_SELECT_ACTION_MAX
};
-enum recent_item_type {
- RECENT_ITEM_ICON,
- RECENT_ITEM_PREVIEW,
- RECENT_ITEM_MAX
-};
-
struct datamgr {
Eina_List *list;
const char *view_id;
char *parameter;
bool noti;
enum datamgr_item_select_action action;
- enum recent_item_type rtype;
+ int type;
};
struct data_class {
#define SIG_SHOW_RECENT "sig.show.recent"
#define SIG_HIDE_RECENT "sig.hide.recent"
#define SIG_HIDE_RECENT_DONE "sig.hide.recent.done"
+#define SIG_DISABLE "sig.disable"
#define TITLE_WIDTH "title.width"
#define THUMB_DEFAULT "/usr/share/icons/default/small/apps_img_app_default_4x2.png"
static struct datamgr_item *_new_datamgr_item(char *title, char *thumb,
- char *parameter, char *icon, enum recent_item_type type)
+ char *parameter, char *icon, int type)
{
struct datamgr_item *di;
di->title = strdup(title);
di->icon = strdup(thumb);
di->focus_icon = strdup(icon);
- di->rtype = type;
+ di->type = type;
di->parameter = strdup(parameter);
di->action = ITEM_SELECT_ACTION_LAUNCH;
thumb_land = THUMB_DEFAULT;
di = _new_datamgr_item(label, thumb_land, rdata->id, IMAGE_RECENT_APP,
- RECENT_ITEM_ICON);
+ 0);
if (di)
dm->list = eina_list_append(dm->list, di);
}
static struct datamgr_item *_pack_user(char *name, char *icon, char *focus_icon,
- enum datamgr_item_select_action action, char *parameter)
+ enum datamgr_item_select_action action, char *parameter,
+ int type)
{
struct datamgr_item *di;
di->icon = strdup(icon);
di->focus_icon = strdup(focus_icon);
di->action = action;
+ di->type = type;
return di;
}
uid_t uid;
char *name, *icon;
struct passwd *passwd;
+ GumUserType type;
uid = getuid();
user = gum_user_get_sync(uid, FALSE);
passwd = getpwuid(uid);
di = _pack_user(passwd->pw_name, IMAGE_USER_DEFAULT,
IMAGE_USER_DEFAULT_FOCUS,
- ITEM_SELECT_ACTION_POP, NULL);
+ ITEM_SELECT_ACTION_POP, NULL, 0);
if (!di)
return false;
name = NULL;
icon = NULL;
g_object_get(G_OBJECT(user), GUM_ATTR_NAME, &name, GUM_ATTR_ICON, &icon,
- NULL);
-
- di = _pack_user(name, icon, icon, ITEM_SELECT_ACTION_POP, NULL);
+ GUM_ATTR_USERTYPE, &type, NULL);
+ di = _pack_user(name, icon, icon, ITEM_SELECT_ACTION_POP, NULL, type);
if (!di) {
g_object_unref(user);
return false;
GumUserList *ulist;
GumUser *user;
GumUserService *service;
+ GumUserType type;
struct datamgr_item *di;
char *name, *icon;
gchar **strv;
continue;
g_object_get(G_OBJECT(user), GUM_ATTR_NAME, &name,
- GUM_ATTR_ICON, &icon, NULL);
+ GUM_ATTR_ICON, &icon,
+ GUM_ATTR_USERTYPE, &type, NULL);
di = _pack_user(name, icon, icon, ITEM_SELECT_ACTION_SWITCH,
- NULL);
+ NULL, type);
if (!di)
continue;
struct datamgr_item *di;
di = _pack_user(NULL, IMAGE_USER_ADD, IMAGE_USER_ADD_FOCUS,
- ITEM_SELECT_ACTION_PUSH, VIEW_USER_EDIT);
+ ITEM_SELECT_ACTION_PUSH, VIEW_USER_EDIT, 1);
if (!di)
return false;
#define MESSAGE_NO_CONTENTS "No Contents"
#define PADDING_BOX 26
+enum recent_item_type {
+ RECENT_ITEM_ICON = 0x00,
+ RECENT_ITEM_PREVIEW = 0x01
+};
+
struct _priv {
Evas_Object *win;
Evas_Object *base;
struct _bar_item *bi;
const char *group;
- switch (di->rtype) {
+ switch (di->type) {
case RECENT_ITEM_PREVIEW:
group = GRP_RECENT_PREVIEW;
break;
#define CTXPOPUP_Y 310
#define MAX_BUF 128
+enum user_item_type {
+ USER_ITEM_NONE = 0x00,
+ USER_ITEM_ADD = 0x01,
+ USER_ITEM_ADMIN = 0x02,
+ USER_ITEM_NORMAL = 0x08
+};
+
struct _icon_info {
const char *file;
const char *focus_file;
{
Evas_Object *btn;
+ if (priv->di->type == USER_ITEM_ADMIN) {
+ btn = utils_add_layout(priv->ly, GRP_USER_EDIT_DELETE, false,
+ PART_USER_EDIT_CONTENTS_DELETE);
+ if (!btn) {
+ _ERR("failed to add delete button");
+ return;
+ }
+ elm_object_signal_emit(btn, SIG_DISABLE, SRC_PROG);
+ return;
+ }
+
+
btn = utils_add_layout(priv->ly, GRP_USER_EDIT_DELETE, true,
PART_USER_EDIT_CONTENTS_DELETE);
if (!btn) {
- _ERR("failed toa add delete button");
+ _ERR("failed to add delete button");
return;
}
inputmgr_add_callback(btn, 0, &del_handler, priv);
}
evas_object_show(priv->base);
+ elm_object_focus_set(priv->cancel, EINA_TRUE);
}
static void _hide(void *data)