/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* implementation of quotes for the CSS 'content' property */
// Don't set up text for 'no-open-quote' and 'no-close-quote'. if (IsRealQuote()) {
aTextFrame->GetContent()->AsText()->SetText(Text(), false);
} return dirty;
}
nsString nsQuoteNode::Text() {
NS_ASSERTION(mType == StyleContentType::OpenQuote ||
mType == StyleContentType::CloseQuote, "should only be called when mText should be non-null");
nsString result;
int32_t depth = Depth();
MOZ_ASSERT(depth >= -1);
if (quotesProp.IsAuto()) { // Look up CLDR-derived quotation marks for the language of the context. const nsIFrame* frame = mPseudoFrame->GetInFlowParent(); // Parent of the pseudo is the element around which the quotes are applied; // we want lang from *its* parent, unless it is the root. // XXX Are there other cases where we shouldn't look up to the parent? if (!frame->Style()->IsRootElementStyle()) { if (const nsIFrame* parent = frame->GetInFlowParent()) {
frame = parent;
}
} const intl::Quotes* quotes =
intl::QuotesForLang(frame->StyleFont()->mLanguage); // If we don't have quote-mark data for the language, use built-in // defaults. if (!quotes) { staticconst intl::Quotes sDefaultQuotes = {
{0x201c, 0x201d, 0x2018, 0x2019}};
quotes = &sDefaultQuotes;
}
size_t index = (depth == 0 ? 0 : 2); // select first or second pair
index += (mType == StyleContentType::OpenQuote ? 0 : 1); // open or close
result.Append(quotes->mChars[index]); return result;
}
// Reuse the last pair when the depth is greater than the number of // pairs of quotes. (Also make 'quotes: none' and close-quote from // a depth of 0 equivalent for the next test.) if (depth >= static_cast<int32_t>(quotes.Length())) {
depth = static_cast<int32_t>(quotes.Length()) - 1;
}
if (depth == -1) { // close-quote from a depth of 0 or 'quotes: none' 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 ist noch experimentell.