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

Side by Side Diff: chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc

Issue 3083022: Rework gfx::Font by moving platform-specific code into inner classes.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "chrome/browser/views/autocomplete/autocomplete_popup_contents_view.h" 5 #include "chrome/browser/views/autocomplete/autocomplete_popup_contents_view.h"
6 6
7 #include "app/bidi_line_iterator.h" 7 #include "app/bidi_line_iterator.h"
8 #include "app/l10n_util.h" 8 #include "app/l10n_util.h"
9 #include "app/resource_bundle.h" 9 #include "app/resource_bundle.h"
10 #include "app/theme_provider.h" 10 #include "app/theme_provider.h"
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 306
307 DrawString(canvas, match_.description, match_.description_class, true, x, 307 DrawString(canvas, match_.description, match_.description_class, true, x,
308 text_bounds_.y()); 308 text_bounds_.y());
309 } 309 }
310 } 310 }
311 311
312 void AutocompleteResultView::Layout() { 312 void AutocompleteResultView::Layout() {
313 icon_bounds_.SetRect(LocationBarView::kEdgeItemPadding, 313 icon_bounds_.SetRect(LocationBarView::kEdgeItemPadding,
314 (height() - icon_size_) / 2, icon_size_, icon_size_); 314 (height() - icon_size_) / 2, icon_size_, icon_size_);
315 int text_x = icon_bounds_.right() + LocationBarView::kItemPadding; 315 int text_x = icon_bounds_.right() + LocationBarView::kItemPadding;
316 int font_height = std::max(normal_font_.height(), bold_font_.height()); 316 int font_height = std::max(normal_font_.GetHeight(), bold_font_.GetHeight());
317 text_bounds_.SetRect(text_x, std::max(0, (height() - font_height) / 2), 317 text_bounds_.SetRect(text_x, std::max(0, (height() - font_height) / 2),
318 std::max(bounds().width() - text_x - LocationBarView::kEdgeItemPadding, 318 std::max(bounds().width() - text_x - LocationBarView::kEdgeItemPadding,
319 0), font_height); 319 0), font_height);
320 } 320 }
321 321
322 gfx::Size AutocompleteResultView::GetPreferredSize() { 322 gfx::Size AutocompleteResultView::GetPreferredSize() {
323 return gfx::Size(0, GetPreferredHeight(normal_font_, bold_font_)); 323 return gfx::Size(0, GetPreferredHeight(normal_font_, bold_font_));
324 } 324 }
325 325
326 // static 326 // static
327 int AutocompleteResultView::GetPreferredHeight( 327 int AutocompleteResultView::GetPreferredHeight(
328 const gfx::Font& font, 328 const gfx::Font& font,
329 const gfx::Font& bold_font) { 329 const gfx::Font& bold_font) {
330 int text_height = std::max(font.height(), bold_font.height()) + 330 int text_height = std::max(font.GetHeight(), bold_font.GetHeight()) +
331 (kTextVerticalPadding * 2); 331 (kTextVerticalPadding * 2);
332 int icon_height = icon_size_ + (kIconVerticalPadding * 2); 332 int icon_height = icon_size_ + (kIconVerticalPadding * 2);
333 return std::max(icon_height, text_height); 333 return std::max(icon_height, text_height);
334 } 334 }
335 335
336 // static 336 // static
337 bool AutocompleteResultView::SortRunsLogically(const RunData& lhs, 337 bool AutocompleteResultView::SortRunsLogically(const RunData& lhs,
338 const RunData& rhs) { 338 const RunData& rhs) {
339 return lhs.run_start < rhs.run_start; 339 return lhs.run_start < rhs.run_start;
340 } 340 }
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 int flags = gfx::Canvas::NO_ELLIPSIS; // We've already elided. 502 int flags = gfx::Canvas::NO_ELLIPSIS; // We've already elided.
503 if (reverse_visible_order) { 503 if (reverse_visible_order) {
504 std::reverse(i->classifications.begin(), i->classifications.end()); 504 std::reverse(i->classifications.begin(), i->classifications.end());
505 if (i->is_rtl) 505 if (i->is_rtl)
506 flags |= gfx::Canvas::FORCE_RTL_DIRECTIONALITY; 506 flags |= gfx::Canvas::FORCE_RTL_DIRECTIONALITY;
507 } 507 }
508 for (Classifications::const_iterator j(i->classifications.begin()); 508 for (Classifications::const_iterator j(i->classifications.begin());
509 j != i->classifications.end(); ++j) { 509 j != i->classifications.end(); ++j) {
510 int left = mirroring_context_->mirrored_left_coord(x, x + j->pixel_width); 510 int left = mirroring_context_->mirrored_left_coord(x, x + j->pixel_width);
511 canvas->DrawStringInt(j->text, *j->font, j->color, left, y, 511 canvas->DrawStringInt(j->text, *j->font, j->color, left, y,
512 j->pixel_width, j->font->height(), flags); 512 j->pixel_width, j->font->GetHeight(), flags);
513 x += j->pixel_width; 513 x += j->pixel_width;
514 } 514 }
515 } 515 }
516 516
517 return x; 517 return x;
518 } 518 }
519 519
520 void AutocompleteResultView::Elide(Runs* runs, int remaining_width) const { 520 void AutocompleteResultView::Elide(Runs* runs, int remaining_width) const {
521 // The complexity of this function is due to edge cases like the following: 521 // The complexity of this function is due to edge cases like the following:
522 // We have 100 px of available space, an initial classification that takes 86 522 // We have 100 px of available space, an initial classification that takes 86
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after
1002 // bubble appear at the same height as the Star bubble. 1002 // bubble appear at the same height as the Star bubble.
1003 location_bar_bounds.Inset(LocationBarView::kNormalHorizontalEdgeThickness, 1003 location_bar_bounds.Inset(LocationBarView::kNormalHorizontalEdgeThickness,
1004 0); 1004 0);
1005 } 1005 }
1006 gfx::Point location_bar_origin(location_bar_bounds.origin()); 1006 gfx::Point location_bar_origin(location_bar_bounds.origin());
1007 views::View::ConvertPointToScreen(location_bar_, &location_bar_origin); 1007 views::View::ConvertPointToScreen(location_bar_, &location_bar_origin);
1008 location_bar_bounds.set_origin(location_bar_origin); 1008 location_bar_bounds.set_origin(location_bar_origin);
1009 return bubble_border_->GetBounds( 1009 return bubble_border_->GetBounds(
1010 location_bar_bounds, gfx::Size(location_bar_bounds.width(), h)); 1010 location_bar_bounds, gfx::Size(location_bar_bounds.width(), h));
1011 } 1011 }
OLDNEW
« no previous file with comments | « chrome/browser/views/about_chrome_view.cc ('k') | chrome/browser/views/constrained_window_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698