Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(595)

Side by Side Diff: third_party/WebKit/Source/platform/fonts/FontDescription.cpp

Issue 2161683002: Add LayoutLocale class (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Test stability Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007 Nicholas Shanks <contact@nickshanks.com> 2 * Copyright (C) 2007 Nicholas Shanks <contact@nickshanks.com>
3 * Copyright (C) 2008 Apple Inc. All rights reserved. 3 * Copyright (C) 2008 Apple Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 VariantLigatures ligatures; 116 VariantLigatures ligatures;
117 117
118 ligatures.common = commonLigaturesState(); 118 ligatures.common = commonLigaturesState();
119 ligatures.discretionary = discretionaryLigaturesState(); 119 ligatures.discretionary = discretionaryLigaturesState();
120 ligatures.historical = historicalLigaturesState(); 120 ligatures.historical = historicalLigaturesState();
121 ligatures.contextual = contextualLigaturesState(); 121 ligatures.contextual = contextualLigaturesState();
122 122
123 return ligatures; 123 return ligatures;
124 } 124 }
125 125
126 static const AtomicString& defaultLocale()
127 {
128 DEFINE_STATIC_LOCAL(AtomicString, locale, ());
129 if (locale.isNull()) {
130 AtomicString defaultLocale = defaultLanguage();
131 if (!defaultLocale.isEmpty())
132 locale = defaultLocale;
133 else
134 locale = AtomicString("en");
135 }
136 return locale;
137 }
138
139 const AtomicString& FontDescription::locale(bool includeDefault) const
140 {
141 if (m_locale.isNull() && includeDefault)
142 return defaultLocale();
143 return m_locale;
144 }
145
146 void FontDescription::setTraits(FontTraits traits) 126 void FontDescription::setTraits(FontTraits traits)
147 { 127 {
148 setStyle(traits.style()); 128 setStyle(traits.style());
149 setWeight(traits.weight()); 129 setWeight(traits.weight());
150 setStretch(traits.stretch()); 130 setStretch(traits.stretch());
151 } 131 }
152 132
153 void FontDescription::setVariantCaps(FontVariantCaps variantCaps) 133 void FontDescription::setVariantCaps(FontVariantCaps variantCaps)
154 { 134 {
155 m_fields.m_variantCaps = variantCaps; 135 m_fields.m_variantCaps = variantCaps;
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 const FontFeatureSettings* settings = featureSettings(); 257 const FontFeatureSettings* settings = featureSettings();
278 if (settings) { 258 if (settings) {
279 unsigned numFeatures = settings->size(); 259 unsigned numFeatures = settings->size();
280 for (unsigned i = 0; i < numFeatures; ++i) { 260 for (unsigned i = 0; i < numFeatures; ++i) {
281 const AtomicString& tag = settings->at(i).tag(); 261 const AtomicString& tag = settings->at(i).tag();
282 for (unsigned j = 0; j < tag.length(); j++) 262 for (unsigned j = 0; j < tag.length(); j++)
283 stringHasher.addCharacter(tag[j]); 263 stringHasher.addCharacter(tag[j]);
284 addToHash(hash, settings->at(i).value()); 264 addToHash(hash, settings->at(i).value());
285 } 265 }
286 } 266 }
287 for (unsigned i = 0; i < m_locale.length(); i++) 267 if (m_locale) {
288 stringHasher.addCharacter(m_locale[i]); 268 const AtomicString& locale = m_locale->localeString();
269 for (unsigned i = 0; i < locale.length(); i++)
270 stringHasher.addCharacter(locale[i]);
271 }
289 addToHash(hash, stringHasher.hash()); 272 addToHash(hash, stringHasher.hash());
290 273
291 addFloatToHash(hash, m_specifiedSize); 274 addFloatToHash(hash, m_specifiedSize);
292 addFloatToHash(hash, m_computedSize); 275 addFloatToHash(hash, m_computedSize);
293 addFloatToHash(hash, m_adjustedSize); 276 addFloatToHash(hash, m_adjustedSize);
294 addFloatToHash(hash, m_sizeAdjust); 277 addFloatToHash(hash, m_sizeAdjust);
295 addFloatToHash(hash, m_letterSpacing); 278 addFloatToHash(hash, m_letterSpacing);
296 addFloatToHash(hash, m_wordSpacing); 279 addFloatToHash(hash, m_wordSpacing);
297 addToHash(hash, m_fieldsAsUnsigned.parts[0]); 280 addToHash(hash, m_fieldsAsUnsigned.parts[0]);
298 addToHash(hash, m_fieldsAsUnsigned.parts[1]); 281 addToHash(hash, m_fieldsAsUnsigned.parts[1]);
(...skipping 17 matching lines...) Expand all
316 "FontStretchUltraCondensed should map to kUltraCondensed_Width"); 299 "FontStretchUltraCondensed should map to kUltraCondensed_Width");
317 static_assert( 300 static_assert(
318 static_cast<int>(FontStretchNormal) == static_cast<int>(SkFontStyle::kNo rmal_Width), 301 static_cast<int>(FontStretchNormal) == static_cast<int>(SkFontStyle::kNo rmal_Width),
319 "FontStretchNormal should map to kNormal_Width"); 302 "FontStretchNormal should map to kNormal_Width");
320 static_assert( 303 static_assert(
321 static_cast<int>(FontStretchUltraExpanded) == static_cast<int>(SkFontSty le::kUltaExpanded_Width), 304 static_cast<int>(FontStretchUltraExpanded) == static_cast<int>(SkFontSty le::kUltaExpanded_Width),
322 "FontStretchUltraExpanded should map to kUltaExpanded_Width"); 305 "FontStretchUltraExpanded should map to kUltaExpanded_Width");
323 } 306 }
324 307
325 } // namespace blink 308 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698