|
|
|
|
@@ -344,10 +344,10 @@ std::tuple<bool, Function<T>> StyleParser::parseFunction(JSVal value) {
|
|
|
|
|
template <typename T> inline std::chrono::duration<float> defaultDurationValue() { return std::chrono::duration<float>(300.0f); }
|
|
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
|
std::tuple<bool, FadedStopsFunction<T>> StyleParser::parseFadedStopsFunction(JSVal value) {
|
|
|
|
|
std::tuple<bool, PiecewiseConstantFunction<T>> StyleParser::parsePiecewiseConstantFunction(JSVal value) {
|
|
|
|
|
if (!value.HasMember("stops")) {
|
|
|
|
|
Log::Warning(Event::ParseStyle, "function must specify a function type");
|
|
|
|
|
return std::tuple<bool, FadedStopsFunction<T>> { false, {} };
|
|
|
|
|
return std::tuple<bool, PiecewiseConstantFunction<T>> { false, {} };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::chrono::duration<float> duration = defaultDurationValue<T>();
|
|
|
|
|
@@ -364,10 +364,10 @@ std::tuple<bool, FadedStopsFunction<T>> StyleParser::parseFadedStopsFunction(JSV
|
|
|
|
|
auto stops = parseStops<T>(value["stops"]);
|
|
|
|
|
|
|
|
|
|
if (!std::get<0>(stops)) {
|
|
|
|
|
return std::tuple<bool, FadedStopsFunction<T>> { false, {} };
|
|
|
|
|
return std::tuple<bool, PiecewiseConstantFunction<T>> { false, {} };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return std::tuple<bool, FadedStopsFunction<T>> { true, { std::get<1>(stops), duration } };
|
|
|
|
|
return std::tuple<bool, PiecewiseConstantFunction<T>> { true, { std::get<1>(stops), duration } };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
|
@@ -554,30 +554,30 @@ template<> std::tuple<bool, Function<Color>> StyleParser::parseProperty(JSVal va
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template<> std::tuple<bool, FadedStopsFunction<Faded<std::vector<float>>>> StyleParser::parseProperty(JSVal value, const char *property_name) {
|
|
|
|
|
template<> std::tuple<bool, PiecewiseConstantFunction<Faded<std::vector<float>>>> StyleParser::parseProperty(JSVal value, const char *property_name) {
|
|
|
|
|
if (value.IsObject()) {
|
|
|
|
|
return parseFadedStopsFunction<Faded<std::vector<float>>>(value);
|
|
|
|
|
return parsePiecewiseConstantFunction<Faded<std::vector<float>>>(value);
|
|
|
|
|
} else if (value.IsArray()) {
|
|
|
|
|
Faded<std::vector<float>> parsed;
|
|
|
|
|
std::tuple<bool, std::vector<float>> floatarray = parseFloatArray(value);
|
|
|
|
|
parsed.low = std::get<1>(floatarray);
|
|
|
|
|
return std::tuple<bool, FadedStopsFunction<Faded<std::vector<float>>>> { std::get<0>(floatarray), parsed };
|
|
|
|
|
return std::tuple<bool, PiecewiseConstantFunction<Faded<std::vector<float>>>> { std::get<0>(floatarray), parsed };
|
|
|
|
|
} else {
|
|
|
|
|
Log::Warning(Event::ParseStyle, "value of '%s' must be an array of numbers, or a number array function", property_name);
|
|
|
|
|
return std::tuple<bool, FadedStopsFunction<Faded<std::vector<float>>>> { false, {} };
|
|
|
|
|
return std::tuple<bool, PiecewiseConstantFunction<Faded<std::vector<float>>>> { false, {} };
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template<> std::tuple<bool, FadedStopsFunction<Faded<std::string>>> StyleParser::parseProperty(JSVal value, const char *property_name) {
|
|
|
|
|
template<> std::tuple<bool, PiecewiseConstantFunction<Faded<std::string>>> StyleParser::parseProperty(JSVal value, const char *property_name) {
|
|
|
|
|
if (value.IsObject()) {
|
|
|
|
|
return parseFadedStopsFunction<Faded<std::string>>(value);
|
|
|
|
|
return parsePiecewiseConstantFunction<Faded<std::string>>(value);
|
|
|
|
|
} else if (value.IsString()) {
|
|
|
|
|
Faded<std::string> parsed;
|
|
|
|
|
parsed.low = { value.GetString(), value.GetStringLength() };
|
|
|
|
|
return std::tuple<bool, FadedStopsFunction<Faded<std::string>>> { true, parsed };
|
|
|
|
|
return std::tuple<bool, PiecewiseConstantFunction<Faded<std::string>>> { true, parsed };
|
|
|
|
|
} else {
|
|
|
|
|
Log::Warning(Event::ParseStyle, "value of '%s' must be string or a string function", property_name);
|
|
|
|
|
return std::tuple<bool, FadedStopsFunction<Faded<std::string>>> { false, {} };
|
|
|
|
|
return std::tuple<bool, PiecewiseConstantFunction<Faded<std::string>>> { false, {} };
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -724,7 +724,7 @@ void StyleParser::parsePaint(JSVal value, ClassProperties &klass) {
|
|
|
|
|
parseOptionalProperty<Function<float>>("fill-translate", { Key::FillTranslateX, Key::FillTranslateY }, klass, value);
|
|
|
|
|
parseOptionalProperty<PropertyTransition>("fill-translate-transition", Key::FillTranslate, klass, value);
|
|
|
|
|
parseOptionalProperty<TranslateAnchorType>("fill-translate-anchor", Key::FillTranslateAnchor, klass, value);
|
|
|
|
|
parseOptionalProperty<FadedStopsFunction<Faded<std::string>>>("fill-image", Key::FillImage, klass, value);
|
|
|
|
|
parseOptionalProperty<PiecewiseConstantFunction<Faded<std::string>>>("fill-image", Key::FillImage, klass, value);
|
|
|
|
|
|
|
|
|
|
parseOptionalProperty<Function<float>>("line-opacity", Key::LineOpacity, klass, value);
|
|
|
|
|
parseOptionalProperty<PropertyTransition>("line-opacity-transition", Key::LineOpacity, klass, value);
|
|
|
|
|
@@ -739,8 +739,8 @@ void StyleParser::parsePaint(JSVal value, ClassProperties &klass) {
|
|
|
|
|
parseOptionalProperty<PropertyTransition>("line-gap-width-transition", Key::LineGapWidth, klass, value);
|
|
|
|
|
parseOptionalProperty<Function<float>>("line-blur", Key::LineBlur, klass, value);
|
|
|
|
|
parseOptionalProperty<PropertyTransition>("line-blur-transition", Key::LineBlur, klass, value);
|
|
|
|
|
parseOptionalProperty<FadedStopsFunction<Faded<std::vector<float>>>>("line-dasharray", Key::LineDashArray, klass, value);
|
|
|
|
|
parseOptionalProperty<FadedStopsFunction<Faded<std::string>>>("line-image", Key::LineImage, klass, value);
|
|
|
|
|
parseOptionalProperty<PiecewiseConstantFunction<Faded<std::vector<float>>>>("line-dasharray", Key::LineDashArray, klass, value);
|
|
|
|
|
parseOptionalProperty<PiecewiseConstantFunction<Faded<std::string>>>("line-image", Key::LineImage, klass, value);
|
|
|
|
|
|
|
|
|
|
parseOptionalProperty<Function<float>>("icon-opacity", Key::IconOpacity, klass, value);
|
|
|
|
|
parseOptionalProperty<PropertyTransition>("icon-opacity-transition", Key::IconOpacity, klass, value);
|
|
|
|
|
@@ -790,7 +790,7 @@ void StyleParser::parsePaint(JSVal value, ClassProperties &klass) {
|
|
|
|
|
|
|
|
|
|
parseOptionalProperty<Function<float>>("background-opacity", Key::BackgroundOpacity, klass, value);
|
|
|
|
|
parseOptionalProperty<Function<Color>>("background-color", Key::BackgroundColor, klass, value);
|
|
|
|
|
parseOptionalProperty<FadedStopsFunction<Faded<std::string>>>("background-image", Key::BackgroundImage, klass, value);
|
|
|
|
|
parseOptionalProperty<PiecewiseConstantFunction<Faded<std::string>>>("background-image", Key::BackgroundImage, klass, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void StyleParser::parseLayout(JSVal value, util::ptr<StyleBucket> &bucket) {
|
|
|
|
|
|