| Index: ui/views/controls/label.cc
|
| diff --git a/ui/views/controls/label.cc b/ui/views/controls/label.cc
|
| index 9412a6ab792a2827454cdbd828ea5ca720eb9828..74bf39afd0e293162ff1dee4c501d83aede1d13d 100644
|
| --- a/ui/views/controls/label.cc
|
| +++ b/ui/views/controls/label.cc
|
| @@ -114,7 +114,7 @@ void Label::SetHorizontalAlignment(Alignment alignment) {
|
| }
|
|
|
| void Label::SetMultiLine(bool multi_line) {
|
| - DCHECK(!multi_line || !elide_in_middle_);
|
| + DCHECK(!multi_line || elide_behavior_ != ELIDE_IN_MIDDLE);
|
| if (multi_line != is_multi_line_) {
|
| is_multi_line_ = multi_line;
|
| text_size_valid_ = false;
|
| @@ -132,10 +132,10 @@ void Label::SetAllowCharacterBreak(bool allow_character_break) {
|
| }
|
| }
|
|
|
| -void Label::SetElideInMiddle(bool elide_in_middle) {
|
| - DCHECK(!elide_in_middle || !is_multi_line_);
|
| - if (elide_in_middle != elide_in_middle_) {
|
| - elide_in_middle_ = elide_in_middle;
|
| +void Label::SetElideBehavior(ElideBehavior elide_behavior) {
|
| + DCHECK(elide_behavior != ELIDE_IN_MIDDLE || !is_multi_line_);
|
| + if (elide_behavior != elide_behavior_) {
|
| + elide_behavior_ = elide_behavior;
|
| text_size_valid_ = false;
|
| is_email_ = false;
|
| PreferredSizeChanged();
|
| @@ -359,7 +359,7 @@ void Label::Init(const string16& text, const gfx::Font& font) {
|
| horiz_alignment_ = ALIGN_CENTER;
|
| is_multi_line_ = false;
|
| allow_character_break_ = false;
|
| - elide_in_middle_ = false;
|
| + elide_behavior_ = NO_ELIDE;
|
| is_email_ = false;
|
| collapse_when_hidden_ = false;
|
| directionality_mode_ = USE_UI_DIRECTIONALITY;
|
| @@ -485,9 +485,12 @@ void Label::CalculateDrawStringParams(string16* paint_text,
|
|
|
| if (is_email_) {
|
| *paint_text = ui::ElideEmail(text_, font_, GetAvailableRect().width());
|
| - } else if (elide_in_middle_) {
|
| + } else if (elide_behavior_ == ELIDE_IN_MIDDLE) {
|
| *paint_text = ui::ElideText(text_, font_, GetAvailableRect().width(),
|
| ui::ELIDE_IN_MIDDLE);
|
| + } else if (elide_behavior_ == ELIDE_AT_END) {
|
| + *paint_text = ui::ElideText(text_, font_, GetAvailableRect().width(),
|
| + ui::ELIDE_AT_END);
|
| } else {
|
| *paint_text = text_;
|
| }
|
|
|