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

Side by Side Diff: ui/gfx/platform_font_ios.mm

Issue 497503004: Add NSString category for providing iOS6-style string drawing APIs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: don't cache scale Created 6 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « ui/gfx/gfx.gyp ('k') | ui/gfx/text_utils_ios.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/gfx/platform_font_ios.h" 5 #include "ui/gfx/platform_font_ios.h"
6 6
7 #import <UIKit/UIKit.h> 7 #import <UIKit/UIKit.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "base/strings/sys_string_conversions.h" 12 #include "base/strings/sys_string_conversions.h"
13 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
14 #include "ui/gfx/font.h" 14 #include "ui/gfx/font.h"
15 #include "ui/gfx/font_render_params.h" 15 #include "ui/gfx/font_render_params.h"
16 #include "ui/ios/NSString+CrStringDrawing.h"
16 17
17 namespace gfx { 18 namespace gfx {
18 19
19 //////////////////////////////////////////////////////////////////////////////// 20 ////////////////////////////////////////////////////////////////////////////////
20 // PlatformFontIOS, public: 21 // PlatformFontIOS, public:
21 22
22 PlatformFontIOS::PlatformFontIOS() { 23 PlatformFontIOS::PlatformFontIOS() {
23 font_size_ = [UIFont systemFontSize]; 24 font_size_ = [UIFont systemFontSize];
24 style_ = gfx::Font::NORMAL; 25 style_ = gfx::Font::NORMAL;
25 UIFont* system_font = [UIFont systemFontOfSize:font_size_]; 26 UIFont* system_font = [UIFont systemFontOfSize:font_size_];
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 font_size_ = font_size; 106 font_size_ = font_size;
106 style_ = style; 107 style_ = style;
107 CalculateMetrics(); 108 CalculateMetrics();
108 } 109 }
109 110
110 void PlatformFontIOS::CalculateMetrics() { 111 void PlatformFontIOS::CalculateMetrics() {
111 UIFont* font = GetNativeFont(); 112 UIFont* font = GetNativeFont();
112 height_ = font.lineHeight; 113 height_ = font.lineHeight;
113 ascent_ = font.ascender; 114 ascent_ = font.ascender;
114 cap_height_ = font.capHeight; 115 cap_height_ = font.capHeight;
115 if (font) { 116 average_width_ = [@"x" cr_sizeWithFont:font].width;
116 NSDictionary* attributes = @{ NSFontAttributeName : font };
117 average_width_ = std::ceil([@"x" sizeWithAttributes:attributes].width);
118 } else {
119 average_width_ = 0;
120 }
121 } 117 }
122 118
123 //////////////////////////////////////////////////////////////////////////////// 119 ////////////////////////////////////////////////////////////////////////////////
124 // PlatformFont, public: 120 // PlatformFont, public:
125 121
126 // static 122 // static
127 PlatformFont* PlatformFont::CreateDefault() { 123 PlatformFont* PlatformFont::CreateDefault() {
128 return new PlatformFontIOS; 124 return new PlatformFontIOS;
129 } 125 }
130 126
131 // static 127 // static
132 PlatformFont* PlatformFont::CreateFromNativeFont(NativeFont native_font) { 128 PlatformFont* PlatformFont::CreateFromNativeFont(NativeFont native_font) {
133 return new PlatformFontIOS(native_font); 129 return new PlatformFontIOS(native_font);
134 } 130 }
135 131
136 // static 132 // static
137 PlatformFont* PlatformFont::CreateFromNameAndSize(const std::string& font_name, 133 PlatformFont* PlatformFont::CreateFromNameAndSize(const std::string& font_name,
138 int font_size) { 134 int font_size) {
139 return new PlatformFontIOS(font_name, font_size); 135 return new PlatformFontIOS(font_name, font_size);
140 } 136 }
141 137
142 } // namespace gfx 138 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gfx/gfx.gyp ('k') | ui/gfx/text_utils_ios.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698