Пример #1
0
GtkStyleAnimation *
_gtk_css_transition_new (guint        property,
                         GtkCssValue *start,
                         GtkCssValue *end,
                         GtkCssValue *ease,
                         gint64       start_time_us,
                         gint64       end_time_us)
{
  GtkCssTransition *transition;

  g_return_val_if_fail (start != NULL, NULL);
  g_return_val_if_fail (end != NULL, NULL);
  g_return_val_if_fail (ease != NULL, NULL);
  g_return_val_if_fail (start_time_us <= end_time_us, NULL);

  transition = g_object_new (GTK_TYPE_CSS_TRANSITION, NULL);

  transition->property = property;
  transition->start = _gtk_css_value_ref (start);
  transition->end = _gtk_css_value_ref (end);
  transition->ease = _gtk_css_value_ref (ease);
  transition->start_time = start_time_us;
  transition->end_time = end_time_us;

  return GTK_STYLE_ANIMATION (transition);
}
Пример #2
0
GtkStyleAnimation *
_gtk_css_animation_new (const char      *name,
                        GtkCssKeyframes *keyframes,
                        gint64           timestamp,
                        gint64           delay_us,
                        gint64           duration_us,
                        GtkCssValue     *ease,
                        GtkCssDirection  direction,
                        GtkCssPlayState  play_state,
                        GtkCssFillMode   fill_mode,
                        double           iteration_count)
{
  GtkCssAnimation *animation;

  g_return_val_if_fail (name != NULL, NULL);
  g_return_val_if_fail (keyframes != NULL, NULL);
  g_return_val_if_fail (ease != NULL, NULL);
  g_return_val_if_fail (iteration_count >= 0, NULL);

  animation = g_object_new (GTK_TYPE_CSS_ANIMATION, NULL);

  animation->name = g_strdup (name);
  animation->keyframes = _gtk_css_keyframes_ref (keyframes);
  if (play_state == GTK_CSS_PLAY_STATE_PAUSED)
    animation->timestamp = - delay_us;
  else
    animation->timestamp = timestamp + delay_us;

  animation->duration = duration_us;
  animation->ease = _gtk_css_value_ref (ease);
  animation->direction = direction;
  animation->play_state = play_state;
  animation->fill_mode = fill_mode;
  animation->iteration_count = iteration_count;

  return GTK_STYLE_ANIMATION (animation);
}