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

Side by Side Diff: ash/system/user/user_card_view.cc

Issue 2881183003: Add views::View::set_preferred_size, use it in a few places. (Closed)
Patch Set: auto* Created 3 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "ash/system/user/user_card_view.h" 5 #include "ash/system/user/user_card_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <memory> 8 #include <memory>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 gfx::Size GetPreferredSize() const override; 90 gfx::Size GetPreferredSize() const override;
91 void OnPaint(gfx::Canvas* canvas) override; 91 void OnPaint(gfx::Canvas* canvas) override;
92 void GetAccessibleNodeData(ui::AXNodeData* node_data) override; 92 void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
93 93
94 // Overridden from views::LinkListener. 94 // Overridden from views::LinkListener.
95 void LinkClicked(views::Link* source, int event_flags) override; 95 void LinkClicked(views::Link* source, int event_flags) override;
96 96
97 // Calculate a preferred size that ensures the label text and the following 97 // Calculate a preferred size that ensures the label text and the following
98 // link do not wrap over more than three lines in total for aesthetic reasons 98 // link do not wrap over more than three lines in total for aesthetic reasons
99 // if possible. 99 // if possible.
100 void CalculatePreferredSize(); 100 void DeterminePreferredSize();
101 101
102 base::string16 text_; 102 base::string16 text_;
103 views::Link* learn_more_; 103 views::Link* learn_more_;
104 gfx::Size preferred_size_; 104 gfx::Size preferred_size_;
105 std::vector<std::unique_ptr<gfx::RenderText>> lines_; 105 std::vector<std::unique_ptr<gfx::RenderText>> lines_;
106 106
107 DISALLOW_COPY_AND_ASSIGN(PublicAccountUserDetails); 107 DISALLOW_COPY_AND_ASSIGN(PublicAccountUserDetails);
108 }; 108 };
109 109
110 PublicAccountUserDetails::PublicAccountUserDetails() : learn_more_(nullptr) { 110 PublicAccountUserDetails::PublicAccountUserDetails() : learn_more_(nullptr) {
(...skipping 18 matching lines...) Expand all
129 base::i18n::WrapStringWithLTRFormatting(&domain); 129 base::i18n::WrapStringWithLTRFormatting(&domain);
130 // Retrieve the label text, inserting the display name and domain. 130 // Retrieve the label text, inserting the display name and domain.
131 text_ = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_PUBLIC_LABEL, 131 text_ = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_PUBLIC_LABEL,
132 display_name, domain); 132 display_name, domain);
133 133
134 learn_more_ = new views::Link(l10n_util::GetStringUTF16(IDS_ASH_LEARN_MORE)); 134 learn_more_ = new views::Link(l10n_util::GetStringUTF16(IDS_ASH_LEARN_MORE));
135 learn_more_->SetUnderline(false); 135 learn_more_->SetUnderline(false);
136 learn_more_->set_listener(this); 136 learn_more_->set_listener(this);
137 AddChildView(learn_more_); 137 AddChildView(learn_more_);
138 138
139 CalculatePreferredSize(); 139 DeterminePreferredSize();
140 } 140 }
141 141
142 PublicAccountUserDetails::~PublicAccountUserDetails() {} 142 PublicAccountUserDetails::~PublicAccountUserDetails() {}
143 143
144 void PublicAccountUserDetails::Layout() { 144 void PublicAccountUserDetails::Layout() {
145 lines_.clear(); 145 lines_.clear();
146 const gfx::Rect contents_area = GetContentsBounds(); 146 const gfx::Rect contents_area = GetContentsBounds();
147 if (contents_area.IsEmpty()) 147 if (contents_area.IsEmpty())
148 return; 148 return;
149 149
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 node_data->role = ui::AX_ROLE_STATIC_TEXT; 224 node_data->role = ui::AX_ROLE_STATIC_TEXT;
225 node_data->SetName(text_); 225 node_data->SetName(text_);
226 } 226 }
227 227
228 void PublicAccountUserDetails::LinkClicked(views::Link* source, 228 void PublicAccountUserDetails::LinkClicked(views::Link* source,
229 int event_flags) { 229 int event_flags) {
230 DCHECK_EQ(source, learn_more_); 230 DCHECK_EQ(source, learn_more_);
231 Shell::Get()->system_tray_controller()->ShowPublicAccountInfo(); 231 Shell::Get()->system_tray_controller()->ShowPublicAccountInfo();
232 } 232 }
233 233
234 void PublicAccountUserDetails::CalculatePreferredSize() { 234 void PublicAccountUserDetails::DeterminePreferredSize() {
235 const gfx::FontList font_list; 235 const gfx::FontList font_list;
236 const gfx::Size link_size = learn_more_->GetPreferredSize(); 236 const gfx::Size link_size = learn_more_->GetPreferredSize();
237 const int space_width = 237 const int space_width =
238 gfx::GetStringWidth(base::ASCIIToUTF16(" "), font_list); 238 gfx::GetStringWidth(base::ASCIIToUTF16(" "), font_list);
239 const gfx::Insets insets = GetInsets(); 239 const gfx::Insets insets = GetInsets();
240 int min_width = link_size.width(); 240 int min_width = link_size.width();
241 int max_width = 241 int max_width =
242 gfx::GetStringWidth(text_, font_list) + space_width + link_size.width(); 242 gfx::GetStringWidth(text_, font_list) + space_width + link_size.width();
243 243
244 // Do a binary search for the minimum width that ensures no more than three 244 // Do a binary search for the minimum width that ensures no more than three
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 media_capture_container_ = new views::View(); 441 media_capture_container_ = new views::View();
442 media_capture_container_->SetLayoutManager(new views::FillLayout()); 442 media_capture_container_->SetLayoutManager(new views::FillLayout());
443 media_capture_container_->AddChildView(media_capture_icon_); 443 media_capture_container_->AddChildView(media_capture_icon_);
444 AddChildView(media_capture_container_); 444 AddChildView(media_capture_container_);
445 445
446 Shell::Get()->media_controller()->RequestCaptureState(); 446 Shell::Get()->media_controller()->RequestCaptureState();
447 } 447 }
448 448
449 } // namespace tray 449 } // namespace tray
450 } // namespace ash 450 } // namespace ash
OLDNEW
« no previous file with comments | « ash/system/update/tray_update.cc ('k') | chrome/browser/ui/views/profiles/profile_chooser_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698