static GtkCssValue *
gtk_css_value_array_transition (GtkCssValue *start,
GtkCssValue *end,
guint property_id, double progress)
{ switch (property_id)
{ case GTK_CSS_PROPERTY_BACKGROUND_CLIP: case GTK_CSS_PROPERTY_BACKGROUND_ORIGIN: case GTK_CSS_PROPERTY_BACKGROUND_SIZE: case GTK_CSS_PROPERTY_BACKGROUND_POSITION: case GTK_CSS_PROPERTY_BACKGROUND_REPEAT: return gtk_css_value_array_transition_repeat (start, end, property_id, progress); case GTK_CSS_PROPERTY_BACKGROUND_IMAGE: return gtk_css_value_array_transition_extend (start, end, property_id, progress); case GTK_CSS_PROPERTY_COLOR: case GTK_CSS_PROPERTY_FONT_SIZE: case GTK_CSS_PROPERTY_BACKGROUND_COLOR: case GTK_CSS_PROPERTY_FONT_FAMILY: case GTK_CSS_PROPERTY_FONT_STYLE: case GTK_CSS_PROPERTY_FONT_WEIGHT: case GTK_CSS_PROPERTY_TEXT_SHADOW: case GTK_CSS_PROPERTY_ICON_SHADOW: case GTK_CSS_PROPERTY_BOX_SHADOW: case GTK_CSS_PROPERTY_MARGIN_TOP: case GTK_CSS_PROPERTY_MARGIN_LEFT: case GTK_CSS_PROPERTY_MARGIN_BOTTOM: case GTK_CSS_PROPERTY_MARGIN_RIGHT: case GTK_CSS_PROPERTY_PADDING_TOP: case GTK_CSS_PROPERTY_PADDING_LEFT: case GTK_CSS_PROPERTY_PADDING_BOTTOM: case GTK_CSS_PROPERTY_PADDING_RIGHT: case GTK_CSS_PROPERTY_BORDER_TOP_STYLE: case GTK_CSS_PROPERTY_BORDER_TOP_WIDTH: case GTK_CSS_PROPERTY_BORDER_LEFT_STYLE: case GTK_CSS_PROPERTY_BORDER_LEFT_WIDTH: case GTK_CSS_PROPERTY_BORDER_BOTTOM_STYLE: case GTK_CSS_PROPERTY_BORDER_BOTTOM_WIDTH: case GTK_CSS_PROPERTY_BORDER_RIGHT_STYLE: case GTK_CSS_PROPERTY_BORDER_RIGHT_WIDTH: case GTK_CSS_PROPERTY_BORDER_TOP_LEFT_RADIUS: case GTK_CSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS: case GTK_CSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS: case GTK_CSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS: case GTK_CSS_PROPERTY_OUTLINE_STYLE: case GTK_CSS_PROPERTY_OUTLINE_WIDTH: case GTK_CSS_PROPERTY_OUTLINE_OFFSET: case GTK_CSS_PROPERTY_BORDER_TOP_COLOR: case GTK_CSS_PROPERTY_BORDER_RIGHT_COLOR: case GTK_CSS_PROPERTY_BORDER_BOTTOM_COLOR: case GTK_CSS_PROPERTY_BORDER_LEFT_COLOR: case GTK_CSS_PROPERTY_OUTLINE_COLOR: case GTK_CSS_PROPERTY_BORDER_IMAGE_SOURCE: case GTK_CSS_PROPERTY_BORDER_IMAGE_REPEAT: case GTK_CSS_PROPERTY_BORDER_IMAGE_SLICE: case GTK_CSS_PROPERTY_BORDER_IMAGE_WIDTH: default: /* keep all values that are not arrays here, so we get a warning if we ever turn them
* into arrays and start animating them. */
g_warning ("Don't know how to transition arrays for property '%s'",
_gtk_style_property_get_name (GTK_STYLE_PROPERTY (_gtk_css_style_property_lookup_by_id (property_id)))); return NULL; case GTK_CSS_PROPERTY_TRANSITION_PROPERTY: case GTK_CSS_PROPERTY_TRANSITION_DURATION: case GTK_CSS_PROPERTY_TRANSITION_TIMING_FUNCTION: case GTK_CSS_PROPERTY_TRANSITION_DELAY: return NULL;
}
}
result->is_computed = TRUE;
result->contains_variables = FALSE;
result->contains_current_color = FALSE; for (i = 0; i < n_values; i ++)
{ if (!gtk_css_value_is_computed (values[i]))
result->is_computed = FALSE;
if (gtk_css_value_contains_variables (values[i]))
result->contains_variables = TRUE;
if (gtk_css_value_contains_current_color (values[i]))
result->contains_current_color = TRUE;
if (!result->is_computed && result->contains_variables && result->contains_current_color) break;
}
if (value == NULL)
{ for (i = 0; i < n_values; i ++)
gtk_css_value_unref (values[i]);
return NULL;
}
values[n_values] = value;
n_values ++; if (G_UNLIKELY (n_values > G_N_ELEMENTS (values)))
g_error ("Only %d elements in a css array are allowed", (int)G_N_ELEMENTS (values));
} while (gtk_css_parser_try_token (parser, GTK_CSS_TOKEN_COMMA));
result = _gtk_css_array_value_new_from_array (values, n_values); return result;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.