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

Side by Side Diff: app/gfx/text_elider.cc

Issue 113441: ChromeFont->gfx::Font... (Closed) Base URL: svn://chrome-svn.corp.google.com/chrome/trunk/src/
Patch Set: Created 11 years, 7 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
« no previous file with comments | « app/gfx/text_elider.h ('k') | app/gfx/text_elider_unittest.cc » ('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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "app/gfx/chrome_font.h" 5 #include "app/gfx/chrome_font.h"
6 #include "app/gfx/text_elider.h" 6 #include "app/gfx/text_elider.h"
7 #include "base/file_path.h" 7 #include "base/file_path.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/sys_string_conversions.h" 9 #include "base/sys_string_conversions.h"
10 #include "googleurl/src/gurl.h" 10 #include "googleurl/src/gurl.h"
(...skipping 26 matching lines...) Expand all
37 // which composed of parts from subdomain, domain, path, filename and query. 37 // which composed of parts from subdomain, domain, path, filename and query.
38 // A "..." is added automatically at the end if the elided string is bigger 38 // A "..." is added automatically at the end if the elided string is bigger
39 // than the available pixel width. For available pixel width = 0, a formatted, 39 // than the available pixel width. For available pixel width = 0, a formatted,
40 // but un-elided, string is returned. 40 // but un-elided, string is returned.
41 // 41 //
42 // TODO(pkasting): http://b/119635 This whole function gets 42 // TODO(pkasting): http://b/119635 This whole function gets
43 // kerning/ligatures/etc. issues potentially wrong by assuming that the width of 43 // kerning/ligatures/etc. issues potentially wrong by assuming that the width of
44 // a rendered string is always the sum of the widths of its substrings. Also I 44 // a rendered string is always the sum of the widths of its substrings. Also I
45 // suspect it could be made simpler. 45 // suspect it could be made simpler.
46 std::wstring ElideUrl(const GURL& url, 46 std::wstring ElideUrl(const GURL& url,
47 const ChromeFont& font, 47 const gfx::Font& font,
48 int available_pixel_width, 48 int available_pixel_width,
49 const std::wstring& languages) { 49 const std::wstring& languages) {
50 // Get a formatted string and corresponding parsing of the url. 50 // Get a formatted string and corresponding parsing of the url.
51 url_parse::Parsed parsed; 51 url_parse::Parsed parsed;
52 std::wstring url_string = GetCleanStringFromUrl(url, languages, &parsed, 52 std::wstring url_string = GetCleanStringFromUrl(url, languages, &parsed,
53 NULL); 53 NULL);
54 if (available_pixel_width <= 0) 54 if (available_pixel_width <= 0)
55 return url_string; 55 return url_string;
56 56
57 // If non-standard or not file type, return plain eliding. 57 // If non-standard or not file type, return plain eliding.
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 pixel_width_dot_dot_slash + pixel_width_dots_trailer + 264 pixel_width_dot_dot_slash + pixel_width_dots_trailer +
265 font.GetStringWidth(L"UV")) // A hack to prevent trailing "../...". 265 font.GetStringWidth(L"UV")) // A hack to prevent trailing "../...".
266 final_elided_url_string += elided_path; 266 final_elided_url_string += elided_path;
267 else 267 else
268 final_elided_url_string += url_path; 268 final_elided_url_string += url_path;
269 269
270 return ElideText(final_elided_url_string, font, available_pixel_width); 270 return ElideText(final_elided_url_string, font, available_pixel_width);
271 } 271 }
272 272
273 std::wstring ElideFilename(const FilePath& filename, 273 std::wstring ElideFilename(const FilePath& filename,
274 const ChromeFont& font, 274 const gfx::Font& font,
275 int available_pixel_width) { 275 int available_pixel_width) {
276 int full_width = font.GetStringWidth(filename.ToWStringHack()); 276 int full_width = font.GetStringWidth(filename.ToWStringHack());
277 if (full_width <= available_pixel_width) 277 if (full_width <= available_pixel_width)
278 return filename.ToWStringHack(); 278 return filename.ToWStringHack();
279 279
280 #if defined(OS_WIN) 280 #if defined(OS_WIN)
281 std::wstring extension = filename.Extension(); 281 std::wstring extension = filename.Extension();
282 #elif defined(OS_POSIX) 282 #elif defined(OS_POSIX)
283 std::wstring extension = base::SysNativeMBToWide(filename.Extension()); 283 std::wstring extension = base::SysNativeMBToWide(filename.Extension());
284 #endif 284 #endif
(...skipping 10 matching lines...) Expand all
295 if (root_width + ext_width <= available_pixel_width) 295 if (root_width + ext_width <= available_pixel_width)
296 return rootname + extension; 296 return rootname + extension;
297 297
298 int available_root_width = available_pixel_width - ext_width; 298 int available_root_width = available_pixel_width - ext_width;
299 return ElideText(rootname, font, available_root_width) + extension; 299 return ElideText(rootname, font, available_root_width) + extension;
300 } 300 }
301 301
302 // This function adds an ellipsis at the end of the text if the text 302 // This function adds an ellipsis at the end of the text if the text
303 // does not fit the given pixel width. 303 // does not fit the given pixel width.
304 std::wstring ElideText(const std::wstring& text, 304 std::wstring ElideText(const std::wstring& text,
305 const ChromeFont& font, 305 const gfx::Font& font,
306 int available_pixel_width){ 306 int available_pixel_width){
307 if (text.empty()) 307 if (text.empty())
308 return text; 308 return text;
309 309
310 int current_text_pixel_width = font.GetStringWidth(text); 310 int current_text_pixel_width = font.GetStringWidth(text);
311 if (current_text_pixel_width <= available_pixel_width) 311 if (current_text_pixel_width <= available_pixel_width)
312 return text; 312 return text;
313 313
314 if (font.GetStringWidth(kEllipsis) > available_pixel_width) 314 if (font.GetStringWidth(kEllipsis) > available_pixel_width)
315 return std::wstring(); 315 return std::wstring();
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 string16 SortedDisplayURL::AfterHost() const { 506 string16 SortedDisplayURL::AfterHost() const {
507 size_t slash_index = display_url_.find(sort_host_, prefix_end_); 507 size_t slash_index = display_url_.find(sort_host_, prefix_end_);
508 if (slash_index == string16::npos) { 508 if (slash_index == string16::npos) {
509 NOTREACHED(); 509 NOTREACHED();
510 return string16(); 510 return string16();
511 } 511 }
512 return display_url_.substr(slash_index + sort_host_.length()); 512 return display_url_.substr(slash_index + sort_host_.length());
513 } 513 }
514 514
515 } // namespace gfx. 515 } // namespace gfx.
OLDNEW
« no previous file with comments | « app/gfx/text_elider.h ('k') | app/gfx/text_elider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698