Example #1
0
double ease_out_in_quad(double t, double b, double c, double d, const std::vector<double>& params)
{
    if (t < d / 2)
        return ease_out_quad(t * 2, b, c / 2, d, params);

    return ease_in_quad(t * 2 - d, b + c / 2, c / 2, d, params);
}
static void
gtk_revealer_animate_step (GtkRevealer *revealer,
                           gint64       now)
{
  GtkRevealerPrivate *priv = gtk_revealer_get_instance_private (revealer);
  gdouble t;

  t = 1.0;
  if (now < priv->end_time)
      t = (now - priv->start_time) / (gdouble) (priv->end_time - priv->start_time);
  t = ease_out_quad (t, 1.0);

  gtk_revealer_set_position (revealer,
                            priv->source_pos + (t * (priv->target_pos - priv->source_pos)));
}