forked from enlightenment/enlightenment
get e17 to use the ecore pos map call to do accel/decel for shading,
and while we're at it allow more modes... like bouncing. pretty cool to have bouncing shaded windows :) SVN revision: 60476
This commit is contained in:
parent
ebb04e18be
commit
e0eeb1def3
|
@ -8066,36 +8066,67 @@ _e_border_shade_animator(void *data)
|
|||
val = dt / dur;
|
||||
|
||||
if (val < 0.0) val = 0.0;
|
||||
else if (val > 1.0)
|
||||
val = 1.0;
|
||||
else if (val > 1.0) val = 1.0;
|
||||
|
||||
if (e_config->border_shade_transition == E_TRANSITION_SINUSOIDAL)
|
||||
{
|
||||
if (bd->shaded)
|
||||
bd->shade.val = (1 - cos(val * M_PI)) / 2.0;
|
||||
else
|
||||
bd->shade.val = 0.5 + (cos(val * M_PI) / 2.0);
|
||||
bd->shade.val =
|
||||
ecore_animator_pos_map(val, ECORE_POS_MAP_SINUSOIDAL, 0.0, 0.0);
|
||||
if (!bd->shaded) bd->shade.val = 1.0 - bd->shade.val;
|
||||
}
|
||||
else if (e_config->border_shade_transition == E_TRANSITION_DECELERATE)
|
||||
{
|
||||
if (bd->shaded)
|
||||
bd->shade.val = sin(val * M_PI / 2.0);
|
||||
else
|
||||
bd->shade.val = 1 - sin(val * M_PI / 2.0);
|
||||
bd->shade.val =
|
||||
ecore_animator_pos_map(val, ECORE_POS_MAP_DECELERATE, 0.0, 0.0);
|
||||
if (!bd->shaded) bd->shade.val = 1.0 - bd->shade.val;
|
||||
}
|
||||
else if (e_config->border_shade_transition == E_TRANSITION_ACCELERATE)
|
||||
{
|
||||
if (bd->shaded)
|
||||
bd->shade.val = 1 - cos(val * M_PI / 2.0);
|
||||
else
|
||||
bd->shade.val = cos(val * M_PI / 2.0);
|
||||
bd->shade.val =
|
||||
ecore_animator_pos_map(val, ECORE_POS_MAP_ACCELERATE, 0.0, 0.0);
|
||||
if (!bd->shaded) bd->shade.val = 1.0 - bd->shade.val;
|
||||
}
|
||||
else /* LINEAR if none of the others */
|
||||
else if (e_config->border_shade_transition == E_TRANSITION_LINEAR)
|
||||
{
|
||||
if (bd->shaded)
|
||||
bd->shade.val = val;
|
||||
else
|
||||
bd->shade.val = 1 - val;
|
||||
bd->shade.val =
|
||||
ecore_animator_pos_map(val, ECORE_POS_MAP_LINEAR, 0.0, 0.0);
|
||||
if (!bd->shaded) bd->shade.val = 1.0 - bd->shade.val;
|
||||
}
|
||||
else if (e_config->border_shade_transition == E_TRANSITION_ACCELERATE_LOTS)
|
||||
{
|
||||
bd->shade.val =
|
||||
ecore_animator_pos_map(val, ECORE_POS_MAP_ACCELERATE_FACTOR, 1.7, 0.0);
|
||||
if (!bd->shaded) bd->shade.val = 1.0 - bd->shade.val;
|
||||
}
|
||||
else if (e_config->border_shade_transition == E_TRANSITION_DECELERATE_LOTS)
|
||||
{
|
||||
bd->shade.val =
|
||||
ecore_animator_pos_map(val, ECORE_POS_MAP_DECELERATE_FACTOR, 1.7, 0.0);
|
||||
if (!bd->shaded) bd->shade.val = 1.0 - bd->shade.val;
|
||||
}
|
||||
else if (e_config->border_shade_transition == E_TRANSITION_SINUSOIDAL_LOTS)
|
||||
{
|
||||
bd->shade.val =
|
||||
ecore_animator_pos_map(val, ECORE_POS_MAP_SINUSOIDAL_FACTOR, 1.7, 0.0);
|
||||
if (!bd->shaded) bd->shade.val = 1.0 - bd->shade.val;
|
||||
}
|
||||
else if (e_config->border_shade_transition == E_TRANSITION_BOUNCE)
|
||||
{
|
||||
bd->shade.val =
|
||||
ecore_animator_pos_map(val, ECORE_POS_MAP_BOUNCE, 1.2, 3.0);
|
||||
if (!bd->shaded) bd->shade.val = 1.0 - bd->shade.val;
|
||||
}
|
||||
else if (e_config->border_shade_transition == E_TRANSITION_BOUNCE_LOTS)
|
||||
{
|
||||
bd->shade.val =
|
||||
ecore_animator_pos_map(val, ECORE_POS_MAP_BOUNCE, 1.2, 5.0);
|
||||
if (!bd->shaded) bd->shade.val = 1.0 - bd->shade.val;
|
||||
}
|
||||
else
|
||||
{
|
||||
bd->shade.val =
|
||||
ecore_animator_pos_map(val, ECORE_POS_MAP_LINEAR, 0.0, 0.0);
|
||||
if (!bd->shaded) bd->shade.val = 1.0 - bd->shade.val;
|
||||
}
|
||||
|
||||
/* due to M_PI's innacuracy, cos(M_PI/2) != 0.0, so we need this */
|
||||
|
@ -8133,8 +8164,7 @@ _e_border_shade_animator(void *data)
|
|||
bd->changed = 1;
|
||||
|
||||
/* we're done */
|
||||
if ((bd->shaded && (bd->shade.val == 1)) ||
|
||||
((!bd->shaded) && (bd->shade.val == 0)))
|
||||
if (val == 1)
|
||||
{
|
||||
E_Event_Border_Resize *ev;
|
||||
|
||||
|
|
|
@ -17,10 +17,15 @@ typedef enum _E_Direction
|
|||
|
||||
typedef enum _E_Transition
|
||||
{
|
||||
E_TRANSITION_LINEAR,
|
||||
E_TRANSITION_SINUSOIDAL,
|
||||
E_TRANSITION_ACCELERATE,
|
||||
E_TRANSITION_DECELERATE
|
||||
E_TRANSITION_LINEAR = 0,
|
||||
E_TRANSITION_SINUSOIDAL = 1,
|
||||
E_TRANSITION_ACCELERATE = 2,
|
||||
E_TRANSITION_DECELERATE = 3,
|
||||
E_TRANSITION_ACCELERATE_LOTS = 4,
|
||||
E_TRANSITION_DECELERATE_LOTS = 5,
|
||||
E_TRANSITION_SINUSOIDAL_LOTS = 6,
|
||||
E_TRANSITION_BOUNCE = 7,
|
||||
E_TRANSITION_BOUNCE_LOTS = 8
|
||||
} E_Transition;
|
||||
|
||||
typedef enum _E_Stacking
|
||||
|
|
|
@ -1181,7 +1181,7 @@ e_config_load(void)
|
|||
E_CONFIG_LIMIT(e_config->menus_fast_mouse_move_threshhold, 1.0, 2000.0);
|
||||
E_CONFIG_LIMIT(e_config->menus_click_drag_timeout, 0.0, 10.0);
|
||||
E_CONFIG_LIMIT(e_config->border_shade_animate, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->border_shade_transition, 0, 3);
|
||||
E_CONFIG_LIMIT(e_config->border_shade_transition, 0, 8);
|
||||
E_CONFIG_LIMIT(e_config->border_shade_speed, 1.0, 20000.0);
|
||||
E_CONFIG_LIMIT(e_config->framerate, 1.0, 200.0);
|
||||
E_CONFIG_LIMIT(e_config->priority, 0, 19);
|
||||
|
|
|
@ -192,23 +192,52 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
|
|||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
||||
|
||||
rg = e_widget_radio_group_new(&(cfdata->border_shade_transition));
|
||||
|
||||
ow = e_widget_radio_add(evas, _("Linear"), E_TRANSITION_LINEAR, rg);
|
||||
e_widget_disabled_set(ow, !cfdata->border_shade_animate);
|
||||
cfdata->shading_list = eina_list_append(cfdata->shading_list, ow);
|
||||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
||||
ow = e_widget_radio_add(evas, _("Accelerate, then decelerate"),
|
||||
E_TRANSITION_SINUSOIDAL, rg);
|
||||
|
||||
ow = e_widget_radio_add(evas, _("Accelerate, then decelerate"), E_TRANSITION_SINUSOIDAL, rg);
|
||||
e_widget_disabled_set(ow, !cfdata->border_shade_animate);
|
||||
cfdata->shading_list = eina_list_append(cfdata->shading_list, ow);
|
||||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
||||
|
||||
ow = e_widget_radio_add(evas, _("Accelerate"), E_TRANSITION_ACCELERATE, rg);
|
||||
e_widget_disabled_set(ow, !cfdata->border_shade_animate);
|
||||
cfdata->shading_list = eina_list_append(cfdata->shading_list, ow);
|
||||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
||||
|
||||
ow = e_widget_radio_add(evas, _("Decelerate"), E_TRANSITION_DECELERATE, rg);
|
||||
e_widget_disabled_set(ow, !cfdata->border_shade_animate);
|
||||
cfdata->shading_list = eina_list_append(cfdata->shading_list, ow);
|
||||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
||||
|
||||
ow = e_widget_radio_add(evas, _("Pronounced Accelerate"), E_TRANSITION_ACCELERATE_LOTS, rg);
|
||||
e_widget_disabled_set(ow, !cfdata->border_shade_animate);
|
||||
cfdata->shading_list = eina_list_append(cfdata->shading_list, ow);
|
||||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
||||
|
||||
ow = e_widget_radio_add(evas, _("Pronounced Decelerate"), E_TRANSITION_DECELERATE_LOTS, rg);
|
||||
e_widget_disabled_set(ow, !cfdata->border_shade_animate);
|
||||
cfdata->shading_list = eina_list_append(cfdata->shading_list, ow);
|
||||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
||||
|
||||
ow = e_widget_radio_add(evas, _("Pronounced Acceleratem then decelerate"), E_TRANSITION_SINUSOIDAL_LOTS, rg);
|
||||
e_widget_disabled_set(ow, !cfdata->border_shade_animate);
|
||||
cfdata->shading_list = eina_list_append(cfdata->shading_list, ow);
|
||||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
||||
|
||||
ow = e_widget_radio_add(evas, _("Bounce"), E_TRANSITION_BOUNCE, rg);
|
||||
e_widget_disabled_set(ow, !cfdata->border_shade_animate);
|
||||
cfdata->shading_list = eina_list_append(cfdata->shading_list, ow);
|
||||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
||||
|
||||
ow = e_widget_radio_add(evas, _("Bounce more"), E_TRANSITION_BOUNCE_LOTS, rg);
|
||||
e_widget_disabled_set(ow, !cfdata->border_shade_animate);
|
||||
cfdata->shading_list = eina_list_append(cfdata->shading_list, ow);
|
||||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
||||
|
||||
e_widget_toolbook_page_append(otb, NULL, _("Shading"), ol,
|
||||
0, 0, 1, 0, 0.5, 0.0);
|
||||
|
||||
|
|
Loading…
Reference in New Issue