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

Side by Side Diff: ui/views/controls/label.cc

Issue 2765883004: Implement Harmony typography spec. (Closed)
Patch Set: test, nit comment Created 3 years, 8 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
« ui/views/controls/label.h ('K') | « ui/views/controls/label.h ('k') | no next file » | 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/views/controls/label.h" 5 #include "ui/views/controls/label.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <cmath> 10 #include <cmath>
(...skipping 30 matching lines...) Expand all
41 const int Label::kFocusBorderPadding = 1; 41 const int Label::kFocusBorderPadding = 1;
42 42
43 Label::Label() : Label(base::string16()) { 43 Label::Label() : Label(base::string16()) {
44 } 44 }
45 45
46 Label::Label(const base::string16& text) 46 Label::Label(const base::string16& text)
47 : Label(text, style::CONTEXT_LABEL, style::STYLE_PRIMARY) {} 47 : Label(text, style::CONTEXT_LABEL, style::STYLE_PRIMARY) {}
48 48
49 Label::Label(const base::string16& text, int text_context, int text_style) 49 Label::Label(const base::string16& text, int text_context, int text_style)
50 : context_menu_contents_(this) { 50 : context_menu_contents_(this) {
51 Init(text, style::GetFont(text_context, text_style)); 51 Init(text);
52 render_text_->SetFontList(style::GetFont(text_context, text_style));
53 SetLineHeight(style::GetLineHeight(text_context, text_style));
52 } 54 }
53 55
54 Label::Label(const base::string16& text, const CustomFont& font) 56 Label::Label(const base::string16& text, const CustomFont& font)
55 : context_menu_contents_(this) { 57 : context_menu_contents_(this) {
56 Init(text, font.font_list); 58 Init(text);
59 render_text_->SetFontList(font.font_list);
57 } 60 }
58 61
59 Label::~Label() { 62 Label::~Label() {
60 } 63 }
61 64
62 // static 65 // static
63 const gfx::FontList& Label::GetDefaultFontList() { 66 const gfx::FontList& Label::GetDefaultFontList() {
64 return style::GetFont(style::CONTEXT_LABEL, style::STYLE_PRIMARY); 67 return style::GetFont(style::CONTEXT_LABEL, style::STYLE_PRIMARY);
65 } 68 }
66 69
(...skipping 720 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 MaybeBuildRenderTextLines(); 790 MaybeBuildRenderTextLines();
788 791
789 // This may happen when the content bounds of the view are empty. 792 // This may happen when the content bounds of the view are empty.
790 if (lines_.empty()) 793 if (lines_.empty())
791 return nullptr; 794 return nullptr;
792 795
793 DCHECK_EQ(1u, lines_.size()); 796 DCHECK_EQ(1u, lines_.size());
794 return lines_[0].get(); 797 return lines_[0].get();
795 } 798 }
796 799
797 void Label::Init(const base::string16& text, const gfx::FontList& font_list) { 800 void Label::Init(const base::string16& text) {
798 render_text_.reset(gfx::RenderText::CreateInstance()); 801 render_text_.reset(gfx::RenderText::CreateInstance());
799 render_text_->SetHorizontalAlignment(gfx::ALIGN_CENTER); 802 render_text_->SetHorizontalAlignment(gfx::ALIGN_CENTER);
800 render_text_->SetDirectionalityMode(gfx::DIRECTIONALITY_FROM_TEXT); 803 render_text_->SetDirectionalityMode(gfx::DIRECTIONALITY_FROM_TEXT);
801 // NOTE: |render_text_| should not be elided at all. This is used to keep some 804 // NOTE: |render_text_| should not be elided at all. This is used to keep some
802 // properties and to compute the size of the string. 805 // properties and to compute the size of the string.
803 render_text_->SetElideBehavior(gfx::NO_ELIDE); 806 render_text_->SetElideBehavior(gfx::NO_ELIDE);
804 render_text_->SetFontList(font_list);
805 render_text_->SetCursorEnabled(false); 807 render_text_->SetCursorEnabled(false);
806 render_text_->SetWordWrapBehavior(gfx::TRUNCATE_LONG_WORDS); 808 render_text_->SetWordWrapBehavior(gfx::TRUNCATE_LONG_WORDS);
807 809
808 elide_behavior_ = gfx::ELIDE_TAIL; 810 elide_behavior_ = gfx::ELIDE_TAIL;
809 stored_selection_range_ = gfx::Range::InvalidRange(); 811 stored_selection_range_ = gfx::Range::InvalidRange();
810 enabled_color_set_ = disabled_color_set_ = background_color_set_ = false; 812 enabled_color_set_ = disabled_color_set_ = background_color_set_ = false;
811 selection_text_color_set_ = selection_background_color_set_ = false; 813 selection_text_color_set_ = selection_background_color_set_ = false;
812 subpixel_rendering_enabled_ = true; 814 subpixel_rendering_enabled_ = true;
813 auto_color_readability_ = true; 815 auto_color_readability_ = true;
814 multi_line_ = false; 816 multi_line_ = false;
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
1058 .WriteText(GetSelectedText()); 1060 .WriteText(GetSelectedText());
1059 } 1061 }
1060 1062
1061 void Label::BuildContextMenuContents() { 1063 void Label::BuildContextMenuContents() {
1062 context_menu_contents_.AddItemWithStringId(IDS_APP_COPY, IDS_APP_COPY); 1064 context_menu_contents_.AddItemWithStringId(IDS_APP_COPY, IDS_APP_COPY);
1063 context_menu_contents_.AddItemWithStringId(IDS_APP_SELECT_ALL, 1065 context_menu_contents_.AddItemWithStringId(IDS_APP_SELECT_ALL,
1064 IDS_APP_SELECT_ALL); 1066 IDS_APP_SELECT_ALL);
1065 } 1067 }
1066 1068
1067 } // namespace views 1069 } // namespace views
OLDNEW
« ui/views/controls/label.h ('K') | « ui/views/controls/label.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698