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

Side by Side Diff: ui/app_list/views/folder_header_view.cc

Issue 578223002: Experimental app list: Enforce a 24-pixel padding on the top and sides. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ares-folder-heading-line-width
Patch Set: Rebase. Created 6 years, 3 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
« no previous file with comments | « ui/app_list/views/app_list_main_view.cc ('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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/app_list/views/folder_header_view.h" 5 #include "ui/app_list/views/folder_header_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "ui/app_list/app_list_constants.h" 10 #include "ui/app_list/app_list_constants.h"
11 #include "ui/app_list/app_list_folder_item.h" 11 #include "ui/app_list/app_list_folder_item.h"
12 #include "ui/app_list/app_list_switches.h"
12 #include "ui/app_list/views/app_list_folder_view.h" 13 #include "ui/app_list/views/app_list_folder_view.h"
13 #include "ui/base/resource/resource_bundle.h" 14 #include "ui/base/resource/resource_bundle.h"
14 #include "ui/gfx/canvas.h" 15 #include "ui/gfx/canvas.h"
15 #include "ui/resources/grit/ui_resources.h" 16 #include "ui/resources/grit/ui_resources.h"
16 #include "ui/strings/grit/ui_strings.h" 17 #include "ui/strings/grit/ui_strings.h"
17 #include "ui/views/border.h" 18 #include "ui/views/border.h"
18 #include "ui/views/controls/button/image_button.h" 19 #include "ui/views/controls/button/image_button.h"
19 #include "ui/views/controls/textfield/textfield.h" 20 #include "ui/views/controls/textfield/textfield.h"
20 #include "ui/views/painter.h" 21 #include "ui/views/painter.h"
21 22
22 namespace app_list { 23 namespace app_list {
23 24
24 namespace { 25 namespace {
25 26
26 const int kPreferredWidth = 360; 27 const int kPreferredWidth = 360;
27 const int kPreferredHeight = 48; 28 const int kPreferredHeight = 48;
28 const int kIconDimension = 24; 29 const int kIconDimension = 24;
29 const int kPadding = 14; 30 const int kBackButtonPadding = 14;
30 const int kBottomSeparatorPadding = 9; 31 const int kBottomSeparatorPadding = 9; // Non-experimental app list only.
31 const int kBottomSeparatorHeight = 1; 32 const int kBottomSeparatorHeight = 1;
32 const int kMaxFolderNameWidth = 300; 33 const int kMaxFolderNameWidth = 300;
33 34
34 const SkColor kHintTextColor = SkColorSetRGB(0xA0, 0xA0, 0xA0); 35 const SkColor kHintTextColor = SkColorSetRGB(0xA0, 0xA0, 0xA0);
35 36
36 } // namespace 37 } // namespace
37 38
38 class FolderHeaderView::FolderNameView : public views::Textfield { 39 class FolderHeaderView::FolderNameView : public views::Textfield {
39 public: 40 public:
40 FolderNameView() { 41 FolderNameView() {
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 gfx::Size FolderHeaderView::GetPreferredSize() const { 152 gfx::Size FolderHeaderView::GetPreferredSize() const {
152 return gfx::Size(kPreferredWidth, kPreferredHeight); 153 return gfx::Size(kPreferredWidth, kPreferredHeight);
153 } 154 }
154 155
155 void FolderHeaderView::Layout() { 156 void FolderHeaderView::Layout() {
156 gfx::Rect rect(GetContentsBounds()); 157 gfx::Rect rect(GetContentsBounds());
157 if (rect.IsEmpty()) 158 if (rect.IsEmpty())
158 return; 159 return;
159 160
160 gfx::Rect back_bounds(rect); 161 gfx::Rect back_bounds(rect);
161 back_bounds.set_width(kIconDimension + 2 * kPadding); 162 back_bounds.set_width(kIconDimension + 2 * kBackButtonPadding);
163 if (app_list::switches::IsExperimentalAppListEnabled()) {
164 // Align the left edge of the button image with the left margin of the
165 // launcher window. Note that this means the physical button dimensions
166 // extends slightly into the margin.
167 back_bounds.set_x(kExperimentalWindowPadding - kBackButtonPadding);
168 }
162 back_button_->SetBoundsRect(back_bounds); 169 back_button_->SetBoundsRect(back_bounds);
163 170
164 gfx::Rect text_bounds(rect); 171 gfx::Rect text_bounds(rect);
165 base::string16 text = folder_item_ && !folder_item_->name().empty() 172 base::string16 text = folder_item_ && !folder_item_->name().empty()
166 ? base::UTF8ToUTF16(folder_item_->name()) 173 ? base::UTF8ToUTF16(folder_item_->name())
167 : folder_name_placeholder_text_; 174 : folder_name_placeholder_text_;
168 int text_width = 175 int text_width =
169 gfx::Canvas::GetStringWidth(text, folder_name_view_->GetFontList()) + 176 gfx::Canvas::GetStringWidth(text, folder_name_view_->GetFontList()) +
170 folder_name_view_->GetCaretBounds().width() + 177 folder_name_view_->GetCaretBounds().width() +
171 folder_name_view_->GetInsets().width(); 178 folder_name_view_->GetInsets().width();
(...skipping 13 matching lines...) Expand all
185 } 192 }
186 193
187 void FolderHeaderView::OnPaint(gfx::Canvas* canvas) { 194 void FolderHeaderView::OnPaint(gfx::Canvas* canvas) {
188 views::View::OnPaint(canvas); 195 views::View::OnPaint(canvas);
189 196
190 gfx::Rect rect(GetContentsBounds()); 197 gfx::Rect rect(GetContentsBounds());
191 if (rect.IsEmpty() || !folder_name_visible_) 198 if (rect.IsEmpty() || !folder_name_visible_)
192 return; 199 return;
193 200
194 // Draw bottom separator line. 201 // Draw bottom separator line.
195 rect.Inset(kBottomSeparatorPadding, 0); 202 int horizontal_padding = app_list::switches::IsExperimentalAppListEnabled()
203 ? kExperimentalWindowPadding
204 : kBottomSeparatorPadding;
205 rect.Inset(horizontal_padding, 0);
196 rect.set_y(rect.bottom() - kBottomSeparatorHeight); 206 rect.set_y(rect.bottom() - kBottomSeparatorHeight);
197 rect.set_height(kBottomSeparatorHeight); 207 rect.set_height(kBottomSeparatorHeight);
198 canvas->FillRect(rect, kTopSeparatorColor); 208 canvas->FillRect(rect, kTopSeparatorColor);
199 } 209 }
200 210
201 void FolderHeaderView::ContentsChanged(views::Textfield* sender, 211 void FolderHeaderView::ContentsChanged(views::Textfield* sender,
202 const base::string16& new_contents) { 212 const base::string16& new_contents) {
203 // Temporarily remove from observer to ignore data change caused by us. 213 // Temporarily remove from observer to ignore data change caused by us.
204 if (!folder_item_) 214 if (!folder_item_)
205 return; 215 return;
(...skipping 14 matching lines...) Expand all
220 void FolderHeaderView::ButtonPressed(views::Button* sender, 230 void FolderHeaderView::ButtonPressed(views::Button* sender,
221 const ui::Event& event) { 231 const ui::Event& event) {
222 delegate_->NavigateBack(folder_item_, event); 232 delegate_->NavigateBack(folder_item_, event);
223 } 233 }
224 234
225 void FolderHeaderView::ItemNameChanged() { 235 void FolderHeaderView::ItemNameChanged() {
226 Update(); 236 Update();
227 } 237 }
228 238
229 } // namespace app_list 239 } // namespace app_list
OLDNEW
« no previous file with comments | « ui/app_list/views/app_list_main_view.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698