static int check_bar_item_number(Widget_Data *wd);
static void selected_box(Elm_Controlbar_Item * it);
static void cancel_selected_box(Widget_Data *wd);
-static int pressed_box(Elm_Controlbar_Item * it);
+static Eina_Bool pressed_box(Elm_Controlbar_Item * it);
static void item_color_set(Elm_Controlbar_Item *item, const char *color_part);
///////////////////////////////////////////////////////////////////
}
else if (item->style == TOOLBAR)
{
- if(!item->disable)
- {
- edje_object_signal_emit(_EDJ(item->base), "elm,state,unselected", "elm");
- }
+ edje_object_signal_emit(_EDJ(item->base), "elm,state,unselected", "elm");
}
}
}
return;
}
-static int
+static Eina_Bool
pressed_box(Elm_Controlbar_Item * it)
{
Widget_Data * wd = elm_widget_data_get(it->obj);
const Eina_List *l;
Elm_Controlbar_Item * item;
- if(wd->animating) return EXIT_FAILURE;
+ if(wd->animating) return EINA_FALSE;
- if(it->disable) return EXIT_FAILURE;
+ if(it->disable) return EINA_FALSE;
EINA_LIST_FOREACH(wd->items, l, item)
{
}
else if (it->style == TOOLBAR)
{
-
- if(!it->disable)
- {
- edje_object_signal_emit(_EDJ(it->base), "elm,state,toolbar_pressed", "elm");
- }
+ edje_object_signal_emit(_EDJ(it->base), "elm,state,toolbar_pressed", "elm");
}
evas_object_event_callback_add(wd->event_box, EVAS_CALLBACK_MOUSE_UP, unpressed_box_cb, (void *)wd);
}
}
if (!check)
- return EXIT_FAILURE;
+ return EINA_FALSE;
wd->pre_item = it;
- return EXIT_SUCCESS;
+ return EINA_TRUE;
}
static Evas_Object *
(vel > _elm_config->thumbscroll_momentum_threshold) &&
(!sd->freeze))
{
+ Evas_Coord cw = 0, ch = 0, px = 0, py = 0;
sd->down.dx = ((double)dx / at);
sd->down.dy = ((double)dy / at);
if (((sd->down.dx > 0) && (sd->down.pdx > 0)) ||
- ((sd->down.dx < 0) && (sd->down.pdx < 0)))
- sd->down.dx += (double)sd->down.pdx * 1.5; // FIXME: * 1.5 - probably should be config
- if (((sd->down.dy > 0) && (sd->down.pdy > 0)) ||
- ((sd->down.dy < 0) && (sd->down.pdy < 0)))
- sd->down.dy += (double)sd->down.pdy * 1.5; // FIXME: * 1.5 - probably should be config
- if (((sd->down.dx > 0) && (sd->down.pdx > 0)) ||
((sd->down.dx < 0) && (sd->down.pdx < 0)) ||
((sd->down.dy > 0) && (sd->down.pdy > 0)) ||
((sd->down.dy < 0) && (sd->down.pdy < 0)))
dt = _elm_config->thumbscroll_friction;
sd->down.extra_time = _elm_config->thumbscroll_friction - dt;
}
+ if (((sd->down.dx > 0) && (sd->down.pdx > 0)) ||
+ ((sd->down.dx < 0) && (sd->down.pdx < 0)))
+ {
+ int buf = (int)((double)sd->down.dx * (_elm_config->thumbscroll_friction + sd->down.extra_time) * 2);
+ sd->down.dx += (double)sd->down.pdx * 1.5; // FIXME: * 1.5 - probably should be config
+ int dest = (int)((double)sd->down.dx * (_elm_config->thumbscroll_friction + sd->down.extra_time));
+ if (dest < ((px - cw) + buf))
+ sd->down.dx = (int)((double)((px - cw) + buf) / (_elm_config->thumbscroll_friction + sd->down.extra_time));
+ else if (dest > (px + buf))
+ sd->down.dx = (int)((double)(px + buf) / (_elm_config->thumbscroll_friction + sd->down.extra_time));
+ }
+ if (((sd->down.dy > 0) && (sd->down.pdy > 0)) ||
+ ((sd->down.dy < 0) && (sd->down.pdy < 0)))
+ {
+ int buf = (int)((double)sd->down.dy * (_elm_config->thumbscroll_friction + sd->down.extra_time) * 2);
+ sd->down.dy += (double)sd->down.pdy * 1.5; // FIXME: * 1.5 - probably should be config
+ int dest = (int)((double)sd->down.dy * (_elm_config->thumbscroll_friction + sd->down.extra_time));
+ if (dest < ((py - ch) + buf))
+ sd->down.dy = (int)((double)((py - ch) + buf) / (_elm_config->thumbscroll_friction + sd->down.extra_time));
+ else if (dest > (py + buf))
+ sd->down.dy = (int)((double)(py + buf) / (_elm_config->thumbscroll_friction + sd->down.extra_time));
+ }
else
sd->down.extra_time = 0.0;
sd->down.pdx = sd->down.dx;