OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // For WinDDK ATL compatibility, these ATL headers must come first. | 5 // For WinDDK ATL compatibility, these ATL headers must come first. |
6 #include "build/build_config.h" | 6 #include "build/build_config.h" |
7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
8 #include <atlbase.h> // NOLINT | 8 #include <atlbase.h> // NOLINT |
9 #include <atlwin.h> // NOLINT | 9 #include <atlwin.h> // NOLINT |
10 #endif | 10 #endif |
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
433 | 433 |
434 // We also add this classification's width (sans ellipsis) back to the | 434 // We also add this classification's width (sans ellipsis) back to the |
435 // available width since we want to consider the available space we'll | 435 // available width since we want to consider the available space we'll |
436 // have when we draw this classification. | 436 // have when we draw this classification. |
437 remaining_width += j->pixel_width; | 437 remaining_width += j->pixel_width; |
438 } | 438 } |
439 first_classification = false; | 439 first_classification = false; |
440 | 440 |
441 // Can we fit at least an ellipsis? | 441 // Can we fit at least an ellipsis? |
442 string16 elided_text = | 442 string16 elided_text = |
443 ui::ElideText(j->text, *j->font, remaining_width, false); | 443 ui::ElideText(j->text, *j->font, remaining_width, ui::ELIDE_AT_END); |
444 Classifications::reverse_iterator prior_classification(j); | 444 Classifications::reverse_iterator prior_classification(j); |
445 ++prior_classification; | 445 ++prior_classification; |
446 const bool on_first_classification = | 446 const bool on_first_classification = |
447 (prior_classification == i->classifications.rend()); | 447 (prior_classification == i->classifications.rend()); |
448 if (elided_text.empty() && (remaining_width >= ellipsis_width_) && | 448 if (elided_text.empty() && (remaining_width >= ellipsis_width_) && |
449 on_first_classification) { | 449 on_first_classification) { |
450 // Edge case: This classification is bold, we can't fit a bold ellipsis | 450 // Edge case: This classification is bold, we can't fit a bold ellipsis |
451 // but we can fit a normal one, and this is the first classification in | 451 // but we can fit a normal one, and this is the first classification in |
452 // the run. We should display a lone normal ellipsis, because appending | 452 // the run. We should display a lone normal ellipsis, because appending |
453 // one to the end of the previous run might put it in the wrong visual | 453 // one to the end of the previous run might put it in the wrong visual |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
521 | 521 |
522 // Paint the icon. | 522 // Paint the icon. |
523 canvas->DrawBitmapInt(*GetIcon(), GetMirroredXForRect(icon_bounds_), | 523 canvas->DrawBitmapInt(*GetIcon(), GetMirroredXForRect(icon_bounds_), |
524 icon_bounds_.y()); | 524 icon_bounds_.y()); |
525 | 525 |
526 // Paint the text. | 526 // Paint the text. |
527 int x = GetMirroredXForRect(text_bounds_); | 527 int x = GetMirroredXForRect(text_bounds_); |
528 mirroring_context_->Initialize(x, text_bounds_.width()); | 528 mirroring_context_->Initialize(x, text_bounds_.width()); |
529 PaintMatch(canvas, match_, x); | 529 PaintMatch(canvas, match_, x); |
530 } | 530 } |
OLD | NEW |