#define APPS_VIEW_COL 4
#define APPS_VIEW_ROW 5
-#define APPS_VIEW_BG_OPACITY 70
+#define APPS_VIEW_BG_OPACITY 50
#define GROUP_APP_ICON_LY "icon_ly"
#define APPS_ICON_CONTENT "icon_content"
collections {
group { name: GROUP_APPS_BG_LY;
script {
- public rel1;
- public rel2;
public alpha;
public message(Msg_Type:type, id, ...) {
if (type == MSG_FLOAT_SET)
{
- set_float(rel1, getfarg(2));
- set_float(rel2, getfarg(3));
- set_float(alpha, getfarg(4));
- send_message(type, id, getfarg(2), getfarg(3), getfarg(4));
+ set_float(alpha, getfarg(2));
+ send_message(type, id, getfarg(2));
}
}
}
state: "edit" 0.0;
inherit: "default" 0.0;
visible: 1;
- rel1 {relative: 0.06 0.09; to:SIZE_SETTER;}
- rel2 {relative: 0.95 0.87; to:SIZE_SETTER;}
+ rel1 {relative: 0.055 0.0855; to:SIZE_SETTER;}
+ rel2 {relative: 0.95 0.873; to:SIZE_SETTER;}
}
description {
state: "hide" 0.0;
source: SIGNAL_SOURCE;
script {
custom_state(PART:APPS_APPS_VIEW_BG, "show", 0.0);
- //set_state_val(PART:APPS_APPS_VIEW_BG, STATE_REL1, 0, get_float(rel1));
- //set_state_val(PART:APPS_APPS_VIEW_BG, STATE_REL2, 0, get_float(rel2));
set_state_val(PART:APPS_APPS_VIEW_BG, STATE_COLOR, 0, 0, 0, round(get_float(alpha)));
set_state(PART:APPS_APPS_VIEW_BG, "custom", 0.0);
}
LOGE("Failed to get edje from layout");
return;
}
- Edje_Message_Float_Set *msg = malloc(sizeof(*msg) + 3 * sizeof(double));
- msg->count = 3;
- msg->val[0] = ((APPS_VIEW_ANIMATION_DELTA * (1-pos)) / apps_view_s.height);
- msg->val[1] = 1+((APPS_VIEW_ANIMATION_DELTA * (1-pos)) / apps_view_s.height);
- msg->val[2] = pos*APPS_VIEW_BG_OPACITY;
+ Edje_Message_Float_Set *msg = malloc(sizeof(*msg) + sizeof(double));
+ msg->count = 1;
+ msg->val[0] = pos*APPS_VIEW_BG_OPACITY;
edje_object_message_send(edje, EDJE_MESSAGE_FLOAT_SET, 1, msg);
edje_object_signal_emit(edje, SIGNAL_APPS_VIEW_ANIM, SIGNAL_SOURCE);
if (apps_view_icon_set(item))
item_count++;
}
+
//Delete empty page
while (((item_count-1) / (APPS_VIEW_COL*APPS_VIEW_ROW) +1) < eina_list_count(apps_view_s.page_list)) {
__apps_view_remove_page();
}
+
+ Evas_Object *mapbuf = NULL;
+ find_list = NULL;
+ Evas_Object *page_ly = NULL;
+ EINA_LIST_FOREACH(apps_view_s.page_list, find_list, page_ly) {
+ mapbuf = evas_object_data_get(page_ly, "mapbuf");
+ elm_mapbuf_enabled_set(mapbuf, EINA_TRUE);
+ }
}
void apps_view_folder_reroder(void)
evas_object_show(rect);
elm_object_part_content_set(page_ly, SIZE_SETTER, rect);
- elm_box_pack_end(apps_view_s.box, page_ly);
evas_object_show(page_ly);
+ Evas_Object *mapbuf;
+ mapbuf = elm_mapbuf_add(apps_view_s.box);
+
+ elm_mapbuf_smooth_set(mapbuf, EINA_TRUE);
+ elm_mapbuf_alpha_set(mapbuf, EINA_TRUE);
+ elm_object_content_set(mapbuf, page_ly);
+ evas_object_show(mapbuf);
+
+ elm_box_pack_end(apps_view_s.box, mapbuf);
+
+ evas_object_data_set(page_ly, "mapbuf", mapbuf);
+
apps_view_s.page_list = eina_list_append(apps_view_s.page_list, page_ly);
apps_view_s.page_count += 1;
page_indicator_set_page_count(apps_view_s.indicator, apps_view_s.page_count);
apps_view_s.current_page = apps_view_s.page_count - 1;
}
+ Evas_Object *mapbuf = evas_object_data_get(item, "mapbuf");
+
elm_scroller_page_bring_in(apps_view_s.scroller, apps_view_s.current_page, 0);
- elm_box_unpack(apps_view_s.box, item);
+ elm_box_unpack(apps_view_s.box, mapbuf);
page_indicator_set_page_count(apps_view_s.indicator, apps_view_s.page_count);
+ evas_object_del(mapbuf);
evas_object_del(item);
}
__apps_view_close_folder_popup(apps_view_s.opened_folder);
}
- apps_view_set_state(VIEW_STATE_NORMAL);
+ if (apps_view_s.view_state != VIEW_STATE_NORMAL)
+ apps_view_set_state(VIEW_STATE_NORMAL);
return false;
}
LOGE("Failed to get edje from layout");
return;
}
+
edje_object_signal_emit(edje, SIGNAL_EDIT_MODE_OFF_ANI, SIGNAL_SOURCE);
Eina_List *find_list = NULL;
current_x = page_indicator->current_page * page_indicator->w;
angle = (double)(x - current_x) / page_indicator->w * 90.0;
-
- if (fabs((float)(x - current_x)) <= page_indicator->w) {
- next_page = x > current_x ? (page_indicator->current_page + 1) % page_indicator->page_count : page_indicator->current_page-1;
- color = fabs(angle) * 2;
+ if (angle > 90.0) {
+ angle = (double)(x - page_indicator->w * page_indicator->page_count) / page_indicator->w * 90.0;
+ next_page = page_indicator->page_count - 1;
} else {
- if (x > current_x) {
- next_page = page_indicator->page_count-1;
- color = (double)(page_indicator->w*page_indicator->page_count - x)/page_indicator->w * 180.0;
- } else {
- next_page = 0;
- color = 180.0;
- }
+ next_page = page_indicator->current_page + (angle > 0 ? 1 : -1);
+ next_page %= page_indicator->page_count;
}
- if (next_page == page_indicator->page_count - 1 && page_indicator->current_page == 0 && page_indicator->page_count % 2 == 1) {
- angle = angle - 270.0;
- }
+ color = fabs(angle) * 2;
- __page_indicator_unit_rotate(page_indicator->unit[page_indicator->current_page], 90.0 + angle, 255.0 - color);
- __page_indicator_unit_rotate(page_indicator->unit[next_page], angle, 75.0 + color);
+ __page_indicator_unit_rotate(page_indicator->unit[page_indicator->current_page], 90 + angle, 255.0 - color);
+ __page_indicator_unit_rotate(page_indicator->unit[next_page], (angle < 0 ? 360 + angle : angle), 75.0 + color);
}
static void __page_indicator_scroll_anim_stop_cb(void *data, Evas_Object *obj, void *event_info)
page_indicator_t *page_indicator = (page_indicator_t*) data;
elm_scroller_current_page_get(obj, &page_indicator->current_page, NULL);
+ page_indicator->current_page %= page_indicator->page_count;
__page_indicator_set_current_page(page_indicator);
}