elementary / cursor, scroller, icon - removed white spaces

SVN revision: 58248
This commit is contained in:
ChunEon Park 2011-04-01 11:08:31 +00:00
parent e88243c16a
commit 71d2f4b067
3 changed files with 420 additions and 420 deletions

View File

@ -297,7 +297,7 @@ _els_smart_icon_orient_set(Evas_Object *obj, Elm_Image_Orient orient)
return;
case ELM_IMAGE_FLIP_VERTICAL:
_els_smart_icon_flip_vertical(sd);
return;
return;
case ELM_IMAGE_ROTATE_180_CW:
_els_smart_icon_rotate_180(sd);
return;
@ -321,28 +321,28 @@ _els_smart_icon_orient_set(Evas_Object *obj, Elm_Image_Orient orient)
switch (orient)
{
case ELM_IMAGE_FLIP_TRANSPOSE:
to = data;
hw = -hw + 1;
break;
to = data;
hw = -hw + 1;
break;
case ELM_IMAGE_FLIP_TRANSVERSE:
to = data + hw - 1;
w = -w;
hw = hw - 1;
break;
to = data + hw - 1;
w = -w;
hw = hw - 1;
break;
case ELM_IMAGE_ROTATE_90_CW:
to = data + w - 1;
hw = -hw - 1;
break;
to = data + w - 1;
hw = -hw - 1;
break;
case ELM_IMAGE_ROTATE_90_CCW:
to = data + hw - w;
w = -w;
hw = hw + 1;
break;
to = data + hw - w;
w = -w;
hw = hw + 1;
break;
default:
ERR("unknown orient %d", orient);
evas_object_del(tmp);
evas_object_image_data_set(sd->obj, data); // give it back
return;
ERR("unknown orient %d", orient);
evas_object_del(tmp);
evas_object_image_data_set(sd->obj, data); // give it back
return;
}
from = data2;
for (x = iw; --x >= 0;)
@ -423,66 +423,66 @@ _smart_reconfigure(Smart_Data *sd)
if (!sd->obj) return;
if (!strcmp(evas_object_type_get(sd->obj), "edje"))
{
w = sd->w;
h = sd->h;
x = sd->x;
y = sd->y;
evas_object_move(sd->obj, x, y);
evas_object_resize(sd->obj, w, h);
w = sd->w;
h = sd->h;
x = sd->x;
y = sd->y;
evas_object_move(sd->obj, x, y);
evas_object_resize(sd->obj, w, h);
}
else
{
int iw = 0, ih = 0;
evas_object_image_size_get(sd->obj, &iw, &ih);
evas_object_image_size_get(sd->obj, &iw, &ih);
iw = ((double)iw) * sd->scale;
ih = ((double)ih) * sd->scale;
iw = ((double)iw) * sd->scale;
ih = ((double)ih) * sd->scale;
if (iw < 1) iw = 1;
if (ih < 1) ih = 1;
if (iw < 1) iw = 1;
if (ih < 1) ih = 1;
if (sd->fill_inside)
{
w = sd->w;
h = ((double)ih * w) / (double)iw;
if (h > sd->h)
{
h = sd->h;
w = ((double)iw * h) / (double)ih;
}
}
else
{
w = sd->w;
h = ((double)ih * w) / (double)iw;
if (h < sd->h)
{
h = sd->h;
w = ((double)iw * h) / (double)ih;
}
}
if (!sd->scale_up)
{
if ((w > iw) || (h > ih))
{
w = iw;
h = ih;
}
}
if (!sd->scale_down)
{
if ((w < iw) || (h < ih))
{
w = iw;
h = ih;
}
}
x = sd->x + ((sd->w - w) / 2);
y = sd->y + ((sd->h - h) / 2);
evas_object_move(sd->obj, x, y);
evas_object_image_fill_set(sd->obj, 0, 0, w, h);
evas_object_resize(sd->obj, w, h);
if (sd->fill_inside)
{
w = sd->w;
h = ((double)ih * w) / (double)iw;
if (h > sd->h)
{
h = sd->h;
w = ((double)iw * h) / (double)ih;
}
}
else
{
w = sd->w;
h = ((double)ih * w) / (double)iw;
if (h < sd->h)
{
h = sd->h;
w = ((double)iw * h) / (double)ih;
}
}
if (!sd->scale_up)
{
if ((w > iw) || (h > ih))
{
w = iw;
h = ih;
}
}
if (!sd->scale_down)
{
if ((w < iw) || (h < ih))
{
w = iw;
h = ih;
}
}
x = sd->x + ((sd->w - w) / 2);
y = sd->y + ((sd->h - h) / 2);
evas_object_move(sd->obj, x, y);
evas_object_image_fill_set(sd->obj, 0, 0, w, h);
evas_object_resize(sd->obj, w, h);
}
}
@ -491,28 +491,28 @@ _smart_init(void)
{
if (_e_smart) return;
{
static const Evas_Smart_Class sc =
{
"e_icon",
EVAS_SMART_CLASS_VERSION,
_smart_add,
_smart_del,
_smart_move,
_smart_resize,
_smart_show,
_smart_hide,
_smart_color_set,
_smart_clip_set,
_smart_clip_unset,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
};
_e_smart = evas_smart_class_new(&sc);
static const Evas_Smart_Class sc =
{
"e_icon",
EVAS_SMART_CLASS_VERSION,
_smart_add,
_smart_del,
_smart_move,
_smart_resize,
_smart_show,
_smart_hide,
_smart_color_set,
_smart_clip_set,
_smart_clip_unset,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
};
_e_smart = evas_smart_class_new(&sc);
}
}

View File

@ -25,19 +25,19 @@ struct _Smart_Data
Elm_Smart_Scroller_Policy hbar_flags, vbar_flags;
struct {
Evas_Coord x, y;
Evas_Coord sx, sy;
Evas_Coord dx, dy;
Evas_Coord pdx, pdy;
Evas_Coord bx, by;
Evas_Coord ax, ay;
Evas_Coord bx0, by0;
Evas_Coord b0x, b0y;
Evas_Coord b2x, b2y;
struct {
Evas_Coord x, y;
double timestamp;
} history[20];
Evas_Coord x, y;
Evas_Coord sx, sy;
Evas_Coord dx, dy;
Evas_Coord pdx, pdy;
Evas_Coord bx, by;
Evas_Coord ax, ay;
Evas_Coord bx0, by0;
Evas_Coord b0x, b0y;
Evas_Coord b2x, b2y;
struct {
Evas_Coord x, y;
double timestamp;
} history[20];
double anim_start;
double anim_start2;
double anim_start3;
@ -193,8 +193,8 @@ elm_smart_scroller_child_set(Evas_Object *obj, Evas_Object *child)
API_ENTRY return;
if (sd->child_obj)
{
_elm_smart_pan_child_set(sd->pan_obj, NULL);
evas_object_event_callback_del_full(sd->child_obj, EVAS_CALLBACK_DEL, _smart_child_del_hook, sd);
_elm_smart_pan_child_set(sd->pan_obj, NULL);
evas_object_event_callback_del_full(sd->child_obj, EVAS_CALLBACK_DEL, _smart_child_del_hook, sd);
}
sd->child_obj = child;
@ -205,11 +205,11 @@ elm_smart_scroller_child_set(Evas_Object *obj, Evas_Object *child)
if (!sd->pan_obj)
{
o = _elm_smart_pan_add(evas_object_evas_get(obj));
sd->pan_obj = o;
evas_object_smart_callback_add(o, "changed", _smart_pan_changed_hook, sd);
evas_object_smart_callback_add(o, "pan_changed", _smart_pan_pan_changed_hook, sd);
edje_object_part_swallow(sd->edje_obj, "elm.swallow.content", o);
o = _elm_smart_pan_add(evas_object_evas_get(obj));
sd->pan_obj = o;
evas_object_smart_callback_add(o, "changed", _smart_pan_changed_hook, sd);
evas_object_smart_callback_add(o, "pan_changed", _smart_pan_pan_changed_hook, sd);
edje_object_part_swallow(sd->edje_obj, "elm.swallow.content", o);
}
sd->pan_func.set = _elm_smart_pan_set;
@ -247,24 +247,24 @@ elm_smart_scroller_extern_pan_set(Evas_Object *obj, Evas_Object *pan,
if (sd->extern_pan)
{
if (sd->pan_obj)
{
edje_object_part_unswallow(sd->edje_obj, sd->pan_obj);
sd->pan_obj = NULL;
}
if (sd->pan_obj)
{
edje_object_part_unswallow(sd->edje_obj, sd->pan_obj);
sd->pan_obj = NULL;
}
}
else
{
if (sd->pan_obj)
{
evas_object_del(sd->pan_obj);
sd->pan_obj = NULL;
}
if (sd->pan_obj)
{
evas_object_del(sd->pan_obj);
sd->pan_obj = NULL;
}
}
if (!pan)
{
sd->extern_pan = 0;
return;
sd->extern_pan = 0;
return;
}
sd->pan_obj = pan;
@ -646,13 +646,13 @@ _smart_bounce_x_animator(void *data)
dt = t - sd->down.anim_start2;
if (dt >= 0.0)
{
dt = dt / _elm_config->thumbscroll_bounce_friction;
if (dt > 1.0) dt = 1.0;
p = 1.0 - ((1.0 - dt) * (1.0 - dt));
dt = dt / _elm_config->thumbscroll_bounce_friction;
if (dt > 1.0) dt = 1.0;
p = 1.0 - ((1.0 - dt) * (1.0 - dt));
elm_smart_scroller_child_pos_get(sd->smart_obj, &x, &y);
dx = sd->down.b2x - sd->down.bx;
dx = (dx * p);
x = sd->down.bx + dx;
dx = (dx * p);
x = sd->down.bx + dx;
if (!sd->down.cancelled)
elm_smart_scroller_child_pos_set(sd->smart_obj, x, y);
if (dt >= 1.0)
@ -660,7 +660,7 @@ _smart_bounce_x_animator(void *data)
if (sd->down.momentum_animator)
sd->down.bounce_x_hold = 1;
else if ((!sd->down.bounce_y_animator) &&
(!sd->scrollto.y.animator))
(!sd->scrollto.y.animator))
_smart_anim_stop(sd->smart_obj);
sd->down.bounce_x_animator = NULL;
sd->down.pdx = 0;
@ -765,22 +765,22 @@ _smart_momentum_animator(void *data)
if ((sd->down.dir_y) && !can_scroll(sd, sd->down.vdir))
{
sd->down.dir_y = 0;
}
}
if ((!sd->down.dir_x) && (!sd->down.dir_y))
{
sd->down.cancelled = 1;
}
}
}
if ((!sd->down.dir_x) && (!sd->down.dir_y))
{
sd->down.cancelled = 1;
}
*/
dt = dt / (_elm_config->thumbscroll_friction + sd->down.extra_time);
if (dt > 1.0) dt = 1.0;
p = 1.0 - ((1.0 - dt) * (1.0 - dt));
dx = (sd->down.dx * (_elm_config->thumbscroll_friction + sd->down.extra_time) * p);
dy = (sd->down.dy * (_elm_config->thumbscroll_friction + sd->down.extra_time) * p);
dt = dt / (_elm_config->thumbscroll_friction + sd->down.extra_time);
if (dt > 1.0) dt = 1.0;
p = 1.0 - ((1.0 - dt) * (1.0 - dt));
dx = (sd->down.dx * (_elm_config->thumbscroll_friction + sd->down.extra_time) * p);
dy = (sd->down.dy * (_elm_config->thumbscroll_friction + sd->down.extra_time) * p);
sd->down.ax = dx;
sd->down.ay = dy;
x = sd->down.sx - dx;
y = sd->down.sy - dy;
x = sd->down.sx - dx;
y = sd->down.sy - dy;
elm_smart_scroller_child_pos_get(sd->smart_obj, &px, &py);
if ((sd->down.bounce_x_animator) ||
(sd->down.bounce_x_hold))
@ -794,10 +794,10 @@ _smart_momentum_animator(void *data)
sd->down.by = sd->down.by0 - dy + sd->down.b0y;
y = py;
}
elm_smart_scroller_child_pos_set(sd->smart_obj, x, y);
elm_smart_scroller_child_pos_set(sd->smart_obj, x, y);
sd->pan_func.max_get(sd->pan_obj, &maxx, &maxy);
sd->pan_func.min_get(sd->pan_obj, &minx, &miny);
if (!sd->bounce_horiz)
if (!sd->bounce_horiz)
{
if (x <= minx) no_bounce_x_end = EINA_TRUE;
if ((x - minx) >= maxx) no_bounce_x_end = EINA_TRUE;
@ -810,19 +810,19 @@ _smart_momentum_animator(void *data)
if ((dt >= 1.0) ||
((sd->down.bounce_x_hold) && (sd->down.bounce_y_hold)) ||
(no_bounce_x_end && no_bounce_y_end))
{
{
_smart_anim_stop(sd->smart_obj);
_update_wanted_coordinates(sd, px, py);
sd->down.momentum_animator = NULL;
sd->down.momentum_animator = NULL;
sd->down.bounce_x_hold = 0;
sd->down.bounce_y_hold = 0;
sd->down.ax = 0;
sd->down.ay = 0;
sd->down.pdx = 0;
sd->down.pdy = 0;
return ECORE_CALLBACK_CANCEL;
}
return ECORE_CALLBACK_CANCEL;
}
}
return ECORE_CALLBACK_RENEW;
}
@ -1464,9 +1464,9 @@ _smart_pan_changed_hook(void *data, Evas_Object *obj __UNUSED__, void *event_inf
sd->pan_func.child_size_get(sd->pan_obj, &w, &h);
if ((w != sd->child.w) || (h != sd->child.h))
{
sd->child.w = w;
sd->child.h = h;
_smart_scrollbar_size_adjust(sd);
sd->child.w = w;
sd->child.h = h;
_smart_scrollbar_size_adjust(sd);
evas_object_size_hint_min_set(sd->smart_obj, sd->child.w, sd->child.h);
_elm_smart_scroller_wanted_region_set(sd->smart_obj);
}
@ -1574,7 +1574,7 @@ _smart_event_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSE
sd = data;
ev = event_info;
// if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return ;
// if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return ;
if (_elm_config->thumbscroll_enable)
{
sd->down.hold = 0;
@ -1609,42 +1609,42 @@ _smart_event_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSE
sd->down.bounce_y_animator = NULL;
sd->bouncemey = 0;
}
if (sd->down.hold_animator)
{
ecore_animator_del(sd->down.hold_animator);
sd->down.hold_animator = NULL;
if (sd->down.hold_animator)
{
ecore_animator_del(sd->down.hold_animator);
sd->down.hold_animator = NULL;
_smart_drag_stop(sd->smart_obj);
}
if (sd->down.momentum_animator)
{
ecore_animator_del(sd->down.momentum_animator);
sd->down.momentum_animator = NULL;
}
if (sd->down.momentum_animator)
{
ecore_animator_del(sd->down.momentum_animator);
sd->down.momentum_animator = NULL;
sd->down.bounce_x_hold = 0;
sd->down.bounce_y_hold = 0;
sd->down.ax = 0;
sd->down.ay = 0;
}
if (ev->button == 1)
{
sd->down.now = 1;
sd->down.dragged = 0;
sd->down.dir_x = 0;
sd->down.dir_y = 0;
sd->down.x = ev->canvas.x;
sd->down.y = ev->canvas.y;
elm_smart_scroller_child_pos_get(sd->smart_obj, &x, &y);
sd->down.sx = x;
sd->down.sy = y;
sd->down.locked = 0;
memset(&(sd->down.history[0]), 0, sizeof(sd->down.history[0]) * 20);
}
if (ev->button == 1)
{
sd->down.now = 1;
sd->down.dragged = 0;
sd->down.dir_x = 0;
sd->down.dir_y = 0;
sd->down.x = ev->canvas.x;
sd->down.y = ev->canvas.y;
elm_smart_scroller_child_pos_get(sd->smart_obj, &x, &y);
sd->down.sx = x;
sd->down.sy = y;
sd->down.locked = 0;
memset(&(sd->down.history[0]), 0, sizeof(sd->down.history[0]) * 20);
#ifdef EVTIME
sd->down.history[0].timestamp = ev->timestamp / 1000.0;
sd->down.history[0].timestamp = ev->timestamp / 1000.0;
#else
sd->down.history[0].timestamp = ecore_loop_time_get();
sd->down.history[0].timestamp = ecore_loop_time_get();
#endif
sd->down.history[0].x = ev->canvas.x;
sd->down.history[0].y = ev->canvas.y;
}
sd->down.history[0].x = ev->canvas.x;
sd->down.history[0].y = ev->canvas.y;
}
sd->down.dragged_began = 0;
sd->down.hold_parent = 0;
sd->down.cancelled = 0;
@ -1703,20 +1703,20 @@ _smart_event_mouse_up(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *ev
sd = data;
ev = event_info;
sd->down.hold_parent = 0;
// if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return ;
// if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return ;
evas_post_event_callback_push(e, _smart_event_post_up, sd);
// FIXME: respect elm_widget_scroll_hold_get of parent container
if (_elm_config->thumbscroll_enable)
{
if (ev->button == 1)
{
if (ev->button == 1)
{
if (sd->down.onhold_animator)
{
ecore_animator_del(sd->down.onhold_animator);
sd->down.onhold_animator = NULL;
}
x = ev->canvas.x - sd->down.x;
y = ev->canvas.y - sd->down.y;
x = ev->canvas.x - sd->down.x;
y = ev->canvas.y - sd->down.y;
if (sd->down.dragged)
{
_smart_drag_stop(sd->smart_obj);
@ -1775,17 +1775,17 @@ _smart_event_mouse_up(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *ev
((sd->down.dx < 0) && (sd->down.pdx < 0)) ||
((sd->down.dy > 0) && (sd->down.pdy > 0)) ||
((sd->down.dy < 0) && (sd->down.pdy < 0)))
{
double t = ecore_loop_time_get();
double dt = t - sd->down.anim_start;
{
double t = ecore_loop_time_get();
double dt = t - sd->down.anim_start;
if (dt < 0.0) dt = 0.0;
else if (dt > _elm_config->thumbscroll_friction)
dt = _elm_config->thumbscroll_friction;
sd->down.extra_time = _elm_config->thumbscroll_friction - dt;
}
if (dt < 0.0) dt = 0.0;
else if (dt > _elm_config->thumbscroll_friction)
dt = _elm_config->thumbscroll_friction;
sd->down.extra_time = _elm_config->thumbscroll_friction - dt;
}
else
sd->down.extra_time = 0.0;
sd->down.extra_time = 0.0;
sd->down.pdx = sd->down.dx;
sd->down.pdy = sd->down.dy;
ox = -sd->down.dx;
@ -1845,7 +1845,7 @@ _smart_event_mouse_up(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *ev
}
}
}
}
}
else
{
sd->down.pdx = 0;
@ -1888,15 +1888,15 @@ _smart_event_mouse_up(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *ev
sd->down.dir_x = 0;
sd->down.dir_y = 0;
sd->down.want_dragged = 0;
sd->down.dragged = 0;
sd->down.now = 0;
sd->down.dragged = 0;
sd->down.now = 0;
elm_smart_scroller_child_pos_get(sd->smart_obj, &x, &y);
elm_smart_scroller_child_pos_set(sd->smart_obj, x, y);
_update_wanted_coordinates(sd, x, y);
if (!_smart_do_page(sd))
bounce_eval(sd);
}
}
}
}
@ -2017,28 +2017,28 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *
sd = data;
ev = event_info;
// if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return ;
// if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return ;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) sd->down.hold_parent = 1;
evas_post_event_callback_push(e, _smart_event_post_move, sd);
// FIXME: respect elm_widget_scroll_hold_get of parent container
if (_elm_config->thumbscroll_enable)
{
if (sd->down.now)
{
if (sd->down.now)
{
int dodir = 0;
#ifdef SCROLLDBG
printf("::: %i %i\n", ev->cur.canvas.x, ev->cur.canvas.y);
#endif
memmove(&(sd->down.history[1]), &(sd->down.history[0]),
sizeof(sd->down.history[0]) * 19);
memmove(&(sd->down.history[1]), &(sd->down.history[0]),
sizeof(sd->down.history[0]) * 19);
#ifdef EVTIME
sd->down.history[0].timestamp = ev->timestamp / 1000.0;
sd->down.history[0].timestamp = ev->timestamp / 1000.0;
#else
sd->down.history[0].timestamp = ecore_loop_time_get();
sd->down.history[0].timestamp = ecore_loop_time_get();
#endif
sd->down.history[0].x = ev->cur.canvas.x;
sd->down.history[0].y = ev->cur.canvas.y;
sd->down.history[0].x = ev->cur.canvas.x;
sd->down.history[0].y = ev->cur.canvas.y;
if (!sd->down.dragged_began)
{
@ -2085,10 +2085,10 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *
}
else
{
// can_scroll(sd, LEFT);
// can_scroll(sd, RIGHT);
// can_scroll(sd, UP);
// can_scroll(sd, DOWN);
// can_scroll(sd, LEFT);
// can_scroll(sd, RIGHT);
// can_scroll(sd, UP);
// can_scroll(sd, DOWN);
sd->down.dir_x = 1;
sd->down.dir_y = 1;
}
@ -2105,15 +2105,15 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *
{
sd->down.want_dragged = 1;
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
// evas_event_feed_hold(e, 1, ev->timestamp, ev->data);
// _smart_drag_start(sd->smart_obj);
// evas_event_feed_hold(e, 1, ev->timestamp, ev->data);
// _smart_drag_start(sd->smart_obj);
}
if (sd->down.dragged)
{
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
// ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
// sd->down.dragged = 1;
// ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
// sd->down.dragged = 1;
if (sd->down.dir_x)
x = sd->down.sx - (ev->cur.canvas.x - sd->down.x);
else
@ -2141,23 +2141,23 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *
Evas_Coord minx, miny;
sd->pan_func.min_get(sd->pan_obj, &minx, &miny);
if (y < miny)
y += (miny - y) *
_elm_config->thumbscroll_border_friction;
y += (miny - y) *
_elm_config->thumbscroll_border_friction;
else if (sd->child.h <= sd->h)
y += (sd->down.sy - y) *
_elm_config->thumbscroll_border_friction;
y += (sd->down.sy - y) *
_elm_config->thumbscroll_border_friction;
else if ((sd->child.h - sd->h + miny) < y)
y += (sd->child.h - sd->h + miny - y) *
_elm_config->thumbscroll_border_friction;
y += (sd->child.h - sd->h + miny - y) *
_elm_config->thumbscroll_border_friction;
if (x < minx)
x += (minx - x) *
_elm_config->thumbscroll_border_friction;
x += (minx - x) *
_elm_config->thumbscroll_border_friction;
else if (sd->child.w <= sd->w)
x += (sd->down.sx - x) *
_elm_config->thumbscroll_border_friction;
x += (sd->down.sx - x) *
_elm_config->thumbscroll_border_friction;
else if ((sd->child.w - sd->w + minx) < x)
x += (sd->child.w - sd->w + minx - x) *
_elm_config->thumbscroll_border_friction;
x += (sd->child.w - sd->w + minx - x) *
_elm_config->thumbscroll_border_friction;
}
sd->down.hold_x = x;
@ -2165,9 +2165,9 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *
if (!sd->down.hold_animator)
sd->down.hold_animator =
ecore_animator_add(_smart_hold_animator, sd);
// printf("a %i %i\n", sd->down.hold_x, sd->down.hold_y);
// _smart_onhold_animator(sd);
// elm_smart_scroller_child_pos_set(sd->smart_obj, x, y);
// printf("a %i %i\n", sd->down.hold_x, sd->down.hold_y);
// _smart_onhold_animator(sd);
// elm_smart_scroller_child_pos_set(sd->smart_obj, x, y);
}
else
{
@ -2181,7 +2181,7 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *
}
}
}
}
}
else if (!sd->freeze)
{
Evas_Coord ex, ey, ew, eh;
@ -2194,7 +2194,7 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *
{
if (_elm_config->thumbscroll_threshold > 0.0)
vx = -(double)(_elm_config->thumbscroll_threshold - x) /
_elm_config->thumbscroll_threshold;
_elm_config->thumbscroll_threshold;
else
vx = -1.0;
}
@ -2202,7 +2202,7 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *
{
if (_elm_config->thumbscroll_threshold > 0.0)
vx = (double)(_elm_config->thumbscroll_threshold - (ew - x)) /
_elm_config->thumbscroll_threshold;
_elm_config->thumbscroll_threshold;
else
vx = 1.0;
}
@ -2210,7 +2210,7 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *
{
if (_elm_config->thumbscroll_threshold > 0.0)
vy = -(double)(_elm_config->thumbscroll_threshold - y) /
_elm_config->thumbscroll_threshold;
_elm_config->thumbscroll_threshold;
else
vy = -1.0;
}
@ -2218,7 +2218,7 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *
{
if (_elm_config->thumbscroll_threshold > 0.0)
vy = (double)(_elm_config->thumbscroll_threshold - (eh - y)) /
_elm_config->thumbscroll_threshold;
_elm_config->thumbscroll_threshold;
else
vy = 1.0;
}
@ -2233,7 +2233,7 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *
sd->down.onhold_tlast = 0.0;
sd->down.onhold_animator = ecore_animator_add(_smart_onhold_animator, sd);
}
// printf("b %i %i\n", sd->down.hold_x, sd->down.hold_y);
// printf("b %i %i\n", sd->down.hold_x, sd->down.hold_y);
}
else
{
@ -2244,7 +2244,7 @@ _smart_event_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *
}
}
}
}
}
}
}
@ -2275,8 +2275,8 @@ _smart_scrollbar_reset(Smart_Data *sd)
edje_object_part_drag_value_set(sd->edje_obj, "elm.dragable.hbar", 0.0, 0.0);
if ((!sd->child_obj) && (!sd->extern_pan))
{
edje_object_part_drag_size_set(sd->edje_obj, "elm.dragable.vbar", 1.0, 1.0);
edje_object_part_drag_size_set(sd->edje_obj, "elm.dragable.hbar", 1.0, 1.0);
edje_object_part_drag_size_set(sd->edje_obj, "elm.dragable.vbar", 1.0, 1.0);
edje_object_part_drag_size_set(sd->edje_obj, "elm.dragable.hbar", 1.0, 1.0);
}
if (sd->pan_obj)
{
@ -2299,46 +2299,46 @@ _smart_scrollbar_bar_v_visibility_adjust(Smart_Data *sd)
evas_object_geometry_get(sd->pan_obj, NULL, NULL, &vw, &vh);
if (sd->vbar_visible)
{
if (sd->vbar_flags == ELM_SMART_SCROLLER_POLICY_AUTO)
{
if ((sd->child_obj) || (sd->extern_pan))
{
if (h <= vh)
{
scroll_v_vis_change = 1;
sd->vbar_visible = 0;
}
}
else
{
scroll_v_vis_change = 1;
sd->vbar_visible = 0;
}
}
else if (sd->vbar_flags == ELM_SMART_SCROLLER_POLICY_OFF)
{
scroll_v_vis_change = 1;
sd->vbar_visible = 0;
}
if (sd->vbar_flags == ELM_SMART_SCROLLER_POLICY_AUTO)
{
if ((sd->child_obj) || (sd->extern_pan))
{
if (h <= vh)
{
scroll_v_vis_change = 1;
sd->vbar_visible = 0;
}
}
else
{
scroll_v_vis_change = 1;
sd->vbar_visible = 0;
}
}
else if (sd->vbar_flags == ELM_SMART_SCROLLER_POLICY_OFF)
{
scroll_v_vis_change = 1;
sd->vbar_visible = 0;
}
}
else
{
if (sd->vbar_flags == ELM_SMART_SCROLLER_POLICY_AUTO)
{
if ((sd->child_obj) || (sd->extern_pan))
{
if (h > vh)
{
scroll_v_vis_change = 1;
sd->vbar_visible = 1;
}
}
}
else if (sd->vbar_flags == ELM_SMART_SCROLLER_POLICY_ON)
{
scroll_v_vis_change = 1;
sd->vbar_visible = 1;
}
if (sd->vbar_flags == ELM_SMART_SCROLLER_POLICY_AUTO)
{
if ((sd->child_obj) || (sd->extern_pan))
{
if (h > vh)
{
scroll_v_vis_change = 1;
sd->vbar_visible = 1;
}
}
}
else if (sd->vbar_flags == ELM_SMART_SCROLLER_POLICY_ON)
{
scroll_v_vis_change = 1;
sd->vbar_visible = 1;
}
}
if (scroll_v_vis_change)
{
@ -2368,46 +2368,46 @@ _smart_scrollbar_bar_h_visibility_adjust(Smart_Data *sd)
evas_object_geometry_get(sd->pan_obj, NULL, NULL, &vw, &vh);
if (sd->hbar_visible)
{
if (sd->hbar_flags == ELM_SMART_SCROLLER_POLICY_AUTO)
{
if ((sd->child_obj) || (sd->extern_pan))
{
if (w <= vw)
{
scroll_h_vis_change = 1;
sd->hbar_visible = 0;
}
}
else
{
scroll_h_vis_change = 1;
sd->hbar_visible = 0;
}
}
else if (sd->hbar_flags == ELM_SMART_SCROLLER_POLICY_OFF)
{
scroll_h_vis_change = 1;
sd->hbar_visible = 0;
}
if (sd->hbar_flags == ELM_SMART_SCROLLER_POLICY_AUTO)
{
if ((sd->child_obj) || (sd->extern_pan))
{
if (w <= vw)
{
scroll_h_vis_change = 1;
sd->hbar_visible = 0;
}
}
else
{
scroll_h_vis_change = 1;
sd->hbar_visible = 0;
}
}
else if (sd->hbar_flags == ELM_SMART_SCROLLER_POLICY_OFF)
{
scroll_h_vis_change = 1;
sd->hbar_visible = 0;
}
}
else
{
if (sd->hbar_flags == ELM_SMART_SCROLLER_POLICY_AUTO)
{
if ((sd->child_obj) || (sd->extern_pan))
{
if (w > vw)
{
scroll_h_vis_change = 1;
sd->hbar_visible = 1;
}
}
}
else if (sd->hbar_flags == ELM_SMART_SCROLLER_POLICY_ON)
{
scroll_h_vis_change = 1;
sd->hbar_visible = 1;
}
if (sd->hbar_flags == ELM_SMART_SCROLLER_POLICY_AUTO)
{
if ((sd->child_obj) || (sd->extern_pan))
{
if (w > vw)
{
scroll_h_vis_change = 1;
sd->hbar_visible = 1;
}
}
}
else if (sd->hbar_flags == ELM_SMART_SCROLLER_POLICY_ON)
{
scroll_h_vis_change = 1;
sd->hbar_visible = 1;
}
}
if (scroll_h_vis_change)
{
@ -2422,7 +2422,7 @@ _smart_scrollbar_bar_h_visibility_adjust(Smart_Data *sd)
}
else
edje_object_signal_emit(sd->edje_obj, "elm,action,hide,hbar", "elm");
_smart_scrollbar_size_adjust(sd);
_smart_scrollbar_size_adjust(sd);
}
return scroll_h_vis_change;
}
@ -2436,8 +2436,8 @@ _smart_scrollbar_bar_visibility_adjust(Smart_Data *sd)
changed |= _smart_scrollbar_bar_v_visibility_adjust(sd);
if (changed)
{
_smart_scrollbar_bar_h_visibility_adjust(sd);
_smart_scrollbar_bar_v_visibility_adjust(sd);
_smart_scrollbar_bar_h_visibility_adjust(sd);
_smart_scrollbar_bar_v_visibility_adjust(sd);
}
}
@ -2446,67 +2446,67 @@ _smart_scrollbar_size_adjust(Smart_Data *sd)
{
if ((sd->child_obj) || (sd->extern_pan))
{
Evas_Coord x, y, w, h, mx = 0, my = 0, vw = 0, vh = 0, px, py, minx = 0, miny = 0;
double vx, vy, size;
Evas_Coord x, y, w, h, mx = 0, my = 0, vw = 0, vh = 0, px, py, minx = 0, miny = 0;
double vx, vy, size;
edje_object_part_geometry_get(sd->edje_obj, "elm.swallow.content",
NULL, NULL, &vw, &vh);
w = sd->child.w;
if (w < 1) w = 1;
size = (double)vw / (double)w;
if (size > 1.0)
{
size = 1.0;
edje_object_part_drag_value_set(sd->edje_obj, "elm.dragable.hbar", 0.0, 0.0);
}
edje_object_part_drag_size_set(sd->edje_obj, "elm.dragable.hbar", size, 1.0);
edje_object_part_geometry_get(sd->edje_obj, "elm.swallow.content",
NULL, NULL, &vw, &vh);
w = sd->child.w;
if (w < 1) w = 1;
size = (double)vw / (double)w;
if (size > 1.0)
{
size = 1.0;
edje_object_part_drag_value_set(sd->edje_obj, "elm.dragable.hbar", 0.0, 0.0);
}
edje_object_part_drag_size_set(sd->edje_obj, "elm.dragable.hbar", size, 1.0);
h = sd->child.h;
if (h < 1) h = 1;
size = (double)vh / (double)h;
if (size > 1.0)
{
size = 1.0;
edje_object_part_drag_value_set(sd->edje_obj, "elm.dragable.vbar", 0.0, 0.0);
}
edje_object_part_drag_size_set(sd->edje_obj, "elm.dragable.vbar", 1.0, size);
h = sd->child.h;
if (h < 1) h = 1;
size = (double)vh / (double)h;
if (size > 1.0)
{
size = 1.0;
edje_object_part_drag_value_set(sd->edje_obj, "elm.dragable.vbar", 0.0, 0.0);
}
edje_object_part_drag_size_set(sd->edje_obj, "elm.dragable.vbar", 1.0, size);
edje_object_part_drag_value_get(sd->edje_obj, "elm.dragable.hbar", &vx, NULL);
edje_object_part_drag_value_get(sd->edje_obj, "elm.dragable.vbar", NULL, &vy);
sd->pan_func.max_get(sd->pan_obj, &mx, &my);
sd->pan_func.min_get(sd->pan_obj, &minx, &miny);
x = vx * mx + minx;
y = vy * my + miny;
edje_object_part_drag_value_get(sd->edje_obj, "elm.dragable.hbar", &vx, NULL);
edje_object_part_drag_value_get(sd->edje_obj, "elm.dragable.vbar", NULL, &vy);
sd->pan_func.max_get(sd->pan_obj, &mx, &my);
sd->pan_func.min_get(sd->pan_obj, &minx, &miny);
x = vx * mx + minx;
y = vy * my + miny;
edje_object_part_drag_step_set(sd->edje_obj, "elm.dragable.hbar", (double)sd->step.x / (double)w, 0.0);
edje_object_part_drag_step_set(sd->edje_obj, "elm.dragable.vbar", 0.0, (double)sd->step.y / (double)h);
if (sd->page.x > 0)
edje_object_part_drag_page_set(sd->edje_obj, "elm.dragable.hbar", (double)sd->page.x / (double)w, 0.0);
else
edje_object_part_drag_page_set(sd->edje_obj, "elm.dragable.hbar", -((double)sd->page.x * ((double)vw / (double)w)) / 100.0, 0.0);
if (sd->page.y > 0)
edje_object_part_drag_page_set(sd->edje_obj, "elm.dragable.vbar", 0.0, (double)sd->page.y / (double)h);
else
edje_object_part_drag_page_set(sd->edje_obj, "elm.dragable.vbar", 0.0, -((double)sd->page.y * ((double)vh / (double)h)) / 100.0);
edje_object_part_drag_step_set(sd->edje_obj, "elm.dragable.hbar", (double)sd->step.x / (double)w, 0.0);
edje_object_part_drag_step_set(sd->edje_obj, "elm.dragable.vbar", 0.0, (double)sd->step.y / (double)h);
if (sd->page.x > 0)
edje_object_part_drag_page_set(sd->edje_obj, "elm.dragable.hbar", (double)sd->page.x / (double)w, 0.0);
else
edje_object_part_drag_page_set(sd->edje_obj, "elm.dragable.hbar", -((double)sd->page.x * ((double)vw / (double)w)) / 100.0, 0.0);
if (sd->page.y > 0)
edje_object_part_drag_page_set(sd->edje_obj, "elm.dragable.vbar", 0.0, (double)sd->page.y / (double)h);
else
edje_object_part_drag_page_set(sd->edje_obj, "elm.dragable.vbar", 0.0, -((double)sd->page.y * ((double)vh / (double)h)) / 100.0);
sd->pan_func.get(sd->pan_obj, &px, &py);
sd->pan_func.get(sd->pan_obj, &px, &py);
if (vx != mx) x = px;
if (vy != my) y = py;
sd->pan_func.set(sd->pan_obj, x, y);
// if ((px != 0) || (py != 0))
// edje_object_signal_emit(sd->edje_obj, "elm,action,scroll", "elm");
sd->pan_func.set(sd->pan_obj, x, y);
// if ((px != 0) || (py != 0))
// edje_object_signal_emit(sd->edje_obj, "elm,action,scroll", "elm");
}
else
{
Evas_Coord px = 0, py = 0, minx = 0, miny = 0;
Evas_Coord px = 0, py = 0, minx = 0, miny = 0;
edje_object_part_drag_size_set(sd->edje_obj, "elm.dragable.vbar", 1.0, 1.0);
edje_object_part_drag_size_set(sd->edje_obj, "elm.dragable.hbar", 1.0, 1.0);
edje_object_part_drag_size_set(sd->edje_obj, "elm.dragable.vbar", 1.0, 1.0);
edje_object_part_drag_size_set(sd->edje_obj, "elm.dragable.hbar", 1.0, 1.0);
sd->pan_func.min_get(sd->pan_obj, &minx, &miny);
sd->pan_func.get(sd->pan_obj, &px, &py);
sd->pan_func.set(sd->pan_obj, minx, miny);
sd->pan_func.get(sd->pan_obj, &px, &py);
sd->pan_func.set(sd->pan_obj, minx, miny);
if ((px != minx) || (py != miny))
edje_object_signal_emit(sd->edje_obj, "elm,action,scroll", "elm");
edje_object_signal_emit(sd->edje_obj, "elm,action,scroll", "elm");
}
_smart_scrollbar_bar_visibility_adjust(sd);
}
@ -2671,28 +2671,28 @@ _smart_init(void)
{
if (_smart) return;
{
static const Evas_Smart_Class sc =
{
SMART_NAME,
EVAS_SMART_CLASS_VERSION,
_smart_add,
_smart_del,
_smart_move,
_smart_resize,
_smart_show,
_smart_hide,
_smart_color_set,
_smart_clip_set,
_smart_clip_unset,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
};
_smart = evas_smart_class_new(&sc);
static const Evas_Smart_Class sc =
{
SMART_NAME,
EVAS_SMART_CLASS_VERSION,
_smart_add,
_smart_del,
_smart_move,
_smart_resize,
_smart_show,
_smart_hide,
_smart_color_set,
_smart_clip_set,
_smart_clip_unset,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
};
_smart = evas_smart_class_new(&sc);
}
}