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

Side by Side Diff: Source/core/rendering/RenderThemeChromiumMac.mm

Issue 677103002: Expand system font values during property parsing. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Remove isExpandedShorthandForAll. Created 6 years, 1 month 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) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3 * Copyright (C) 2008, 2009 Google, Inc. 3 * Copyright (C) 2008, 2009 Google, Inc.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 FontWeight700, 231 FontWeight700,
232 FontWeight800, 232 FontWeight800,
233 FontWeight800, 233 FontWeight800,
234 FontWeight900, 234 FontWeight900,
235 FontWeight900, 235 FontWeight900,
236 FontWeight900 236 FontWeight900
237 }; 237 };
238 return fontWeights[appKitFontWeight - 1]; 238 return fontWeights[appKitFontWeight - 1];
239 } 239 }
240 240
241 void RenderThemeChromiumMac::systemFont(CSSValueID cssValueId, FontDescription& fontDescription) const 241 static inline NSFont* systemNSFont(CSSValueID systemFontID)
242 { 242 {
243 DEFINE_STATIC_LOCAL(FontDescription, systemFont, ()); 243 switch (systemFontID) {
244 DEFINE_STATIC_LOCAL(FontDescription, smallSystemFont, ()); 244 case CSSValueSmallCaption:
245 DEFINE_STATIC_LOCAL(FontDescription, menuFont, ()); 245 return [NSFont systemFontOfSize:[NSFont smallSystemFontSize]];
246 DEFINE_STATIC_LOCAL(FontDescription, labelFont, ()); 246 case CSSValueMenu:
247 DEFINE_STATIC_LOCAL(FontDescription, miniControlFont, ()); 247 return [NSFont menuFontOfSize:[NSFont systemFontSize]];
248 DEFINE_STATIC_LOCAL(FontDescription, smallControlFont, ()); 248 case CSSValueStatusBar:
249 DEFINE_STATIC_LOCAL(FontDescription, controlFont, ()); 249 return [NSFont labelFontOfSize:[NSFont labelFontSize]];
250 case CSSValueWebkitMiniControl:
251 return [NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSM iniControlSize]];
252 case CSSValueWebkitSmallControl:
253 return [NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSS mallControlSize]];
254 case CSSValueWebkitControl:
255 return [NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSR egularControlSize]];
256 default:
257 return [NSFont systemFontOfSize:[NSFont systemFontSize]];
258 }
259 }
250 260
251 FontDescription* cachedDesc; 261 void RenderThemeChromiumMac::systemFont(CSSValueID systemFontID, FontStyle& font Style, FontWeight& fontWeight, float& fontSize, AtomicString& fontFamily) const
252 NSFont* font = nil; 262 {
253 switch (cssValueId) { 263 NSFont* font = systemNSFont(systemFontID);
254 case CSSValueSmallCaption: 264 if (!font)
255 cachedDesc = &smallSystemFont; 265 return;
256 if (!smallSystemFont.isAbsoluteSize())
257 font = [NSFont systemFontOfSize:[NSFont smallSystemFontSize]];
258 break;
259 case CSSValueMenu:
260 cachedDesc = &menuFont;
261 if (!menuFont.isAbsoluteSize())
262 font = [NSFont menuFontOfSize:[NSFont systemFontSize]];
263 break;
264 case CSSValueStatusBar:
265 cachedDesc = &labelFont;
266 if (!labelFont.isAbsoluteSize())
267 font = [NSFont labelFontOfSize:[NSFont labelFontSize]];
268 break;
269 case CSSValueWebkitMiniControl:
270 cachedDesc = &miniControlFont;
271 if (!miniControlFont.isAbsoluteSize())
272 font = [NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize :NSMiniControlSize]];
273 break;
274 case CSSValueWebkitSmallControl:
275 cachedDesc = &smallControlFont;
276 if (!smallControlFont.isAbsoluteSize())
277 font = [NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize :NSSmallControlSize]];
278 break;
279 case CSSValueWebkitControl:
280 cachedDesc = &controlFont;
281 if (!controlFont.isAbsoluteSize())
282 font = [NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize :NSRegularControlSize]];
283 break;
284 default:
285 cachedDesc = &systemFont;
286 if (!systemFont.isAbsoluteSize())
287 font = [NSFont systemFontOfSize:[NSFont systemFontSize]];
288 }
289 266
290 if (font) { 267 NSFontManager *fontManager = [NSFontManager sharedFontManager];
291 NSFontManager *fontManager = [NSFontManager sharedFontManager]; 268 fontStyle = ([fontManager traitsOfFont:font] & NSItalicFontMask) ? FontStyle Italic : FontStyleNormal;
292 cachedDesc->setIsAbsoluteSize(true); 269 fontWeight = toFontWeight([fontManager weightOfFont:font]);
293 cachedDesc->setGenericFamily(FontDescription::NoFamily); 270 fontSize = [font pointSize];
294 cachedDesc->firstFamily().setFamily([font webCoreFamilyName]); 271 fontFamily = [font webCoreFamilyName];
295 cachedDesc->setSpecifiedSize([font pointSize]);
296 cachedDesc->setWeight(toFontWeight([fontManager weightOfFont:font]));
297 cachedDesc->setStyle([fontManager traitsOfFont:font] & NSItalicFontMask ? FontStyleItalic : FontStyleNormal);
298 }
299 fontDescription = *cachedDesc;
300 } 272 }
301 273
302 static RGBA32 convertNSColorToColor(NSColor *color) 274 static RGBA32 convertNSColorToColor(NSColor *color)
303 { 275 {
304 NSColor *colorInColorSpace = [color colorUsingColorSpaceName:NSDeviceRGBColo rSpace]; 276 NSColor *colorInColorSpace = [color colorUsingColorSpaceName:NSDeviceRGBColo rSpace];
305 if (colorInColorSpace) { 277 if (colorInColorSpace) {
306 static const double scaleFactor = nextafter(256.0, 0.0); 278 static const double scaleFactor = nextafter(256.0, 0.0);
307 return makeRGB(static_cast<int>(scaleFactor * [colorInColorSpace redComp onent]), 279 return makeRGB(static_cast<int>(scaleFactor * [colorInColorSpace redComp onent]),
308 static_cast<int>(scaleFactor * [colorInColorSpace greenComponent]), 280 static_cast<int>(scaleFactor * [colorInColorSpace greenComponent]),
309 static_cast<int>(scaleFactor * [colorInColorSpace blueComponent])); 281 static_cast<int>(scaleFactor * [colorInColorSpace blueComponent]));
(...skipping 1561 matching lines...) Expand 10 before | Expand all | Expand 10 after
1871 1843
1872 bool RenderThemeChromiumMac::shouldUseFallbackTheme(RenderStyle* style) const 1844 bool RenderThemeChromiumMac::shouldUseFallbackTheme(RenderStyle* style) const
1873 { 1845 {
1874 ControlPart part = style->appearance(); 1846 ControlPart part = style->appearance();
1875 if (part == CheckboxPart || part == RadioPart) 1847 if (part == CheckboxPart || part == RadioPart)
1876 return style->effectiveZoom() != 1; 1848 return style->effectiveZoom() != 1;
1877 return false; 1849 return false;
1878 } 1850 }
1879 1851
1880 } // namespace blink 1852 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderThemeChromiumMac.h ('k') | Source/core/rendering/RenderThemeChromiumSkia.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698