blob: 629a9dc3ba41cfc965c8bda5e25e067e497db91b [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/core/css/css_font_feature_values_rule.h"
#include "third_party/blink/renderer/core/css/css_identifier_value.h"
#include "third_party/blink/renderer/core/css/css_value_list.h"
#include "third_party/blink/renderer/core/css/style_rule.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
namespace blink {
CSSFontFeatureValuesRule::CSSFontFeatureValuesRule(
StyleRuleFontFeatureValues* font_feature_values_rule,
CSSStyleSheet* parent)
: CSSRule(parent), font_feature_values_rule_(font_feature_values_rule) {}
CSSFontFeatureValuesRule::~CSSFontFeatureValuesRule() = default;
void CSSFontFeatureValuesRule::setFontFamily(const String& font_family) {}
String CSSFontFeatureValuesRule::fontFamily() {
return font_feature_values_rule_->FontFamily().CssText();
}
void CSSFontFeatureValuesRule::setFontDisplay(const String& font_display) {}
String CSSFontFeatureValuesRule::fontDisplay() {
if (font_feature_values_rule_->FontDisplay())
return font_feature_values_rule_->FontDisplay()->CssText();
return "";
}
String CSSFontFeatureValuesRule::cssText() const {
StringBuilder result;
result.Append("@font-feature-values ");
DCHECK(font_feature_values_rule_);
result.Append(font_feature_values_rule_->FontFamily().CssText());
result.Append(" { ");
if (const CSSIdentifierValue* display =
font_feature_values_rule_->FontDisplay()) {
result.Append("{ font-display: ");
result.Append(display->CssText());
result.Append("; } ");
}
result.Append("}");
return result.ToString();
}
void CSSFontFeatureValuesRule::Reattach(StyleRuleBase* rule) {
DCHECK(rule);
font_feature_values_rule_ = ToStyleRuleFontFeatureValues(rule);
}
void CSSFontFeatureValuesRule::Trace(blink::Visitor* visitor) {
visitor->Trace(font_feature_values_rule_);
CSSRule::Trace(visitor);
}
} // namespace blink