OLD | NEW |
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 "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "grit/ui_resources.h" | 8 #include "grit/ui_resources.h" |
9 #include "grit/ui_strings.h" | 9 #include "grit/ui_strings.h" |
10 #include "ui/app_list/app_list_constants.h" | 10 #include "ui/app_list/app_list_constants.h" |
(...skipping 29 matching lines...) Expand all Loading... |
40 SetBorder(views::Border::CreateEmptyBorder(1, 1, 1, 1)); | 40 SetBorder(views::Border::CreateEmptyBorder(1, 1, 1, 1)); |
41 const SkColor kFocusBorderColor = SkColorSetRGB(64, 128, 250); | 41 const SkColor kFocusBorderColor = SkColorSetRGB(64, 128, 250); |
42 SetFocusPainter(views::Painter::CreateSolidFocusPainter( | 42 SetFocusPainter(views::Painter::CreateSolidFocusPainter( |
43 kFocusBorderColor, | 43 kFocusBorderColor, |
44 gfx::Insets(0, 0, 1, 1))); | 44 gfx::Insets(0, 0, 1, 1))); |
45 } | 45 } |
46 | 46 |
47 virtual ~FolderNameView() { | 47 virtual ~FolderNameView() { |
48 } | 48 } |
49 | 49 |
50 void Update() { | |
51 SetBackgroundColor(text().size() <= kMaxFolderNameChars | |
52 ? kContentsBackgroundColor | |
53 : SK_ColorRED); | |
54 } | |
55 | |
56 private: | 50 private: |
57 DISALLOW_COPY_AND_ASSIGN(FolderNameView); | 51 DISALLOW_COPY_AND_ASSIGN(FolderNameView); |
58 }; | 52 }; |
59 | 53 |
60 FolderHeaderView::FolderHeaderView(FolderHeaderViewDelegate* delegate) | 54 FolderHeaderView::FolderHeaderView(FolderHeaderViewDelegate* delegate) |
61 : folder_item_(NULL), | 55 : folder_item_(NULL), |
62 back_button_(new views::ImageButton(this)), | 56 back_button_(new views::ImageButton(this)), |
63 folder_name_view_(new FolderNameView), | 57 folder_name_view_(new FolderNameView), |
64 folder_name_placeholder_text_( | 58 folder_name_placeholder_text_( |
65 ui::ResourceBundle::GetSharedInstance().GetLocalizedString( | 59 ui::ResourceBundle::GetSharedInstance().GetLocalizedString( |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 folder_item_ = NULL; | 107 folder_item_ = NULL; |
114 } | 108 } |
115 | 109 |
116 void FolderHeaderView::Update() { | 110 void FolderHeaderView::Update() { |
117 if (!folder_item_) | 111 if (!folder_item_) |
118 return; | 112 return; |
119 | 113 |
120 folder_name_view_->SetVisible(folder_name_visible_); | 114 folder_name_view_->SetVisible(folder_name_visible_); |
121 if (folder_name_visible_) { | 115 if (folder_name_visible_) { |
122 folder_name_view_->SetText(base::UTF8ToUTF16(folder_item_->name())); | 116 folder_name_view_->SetText(base::UTF8ToUTF16(folder_item_->name())); |
123 folder_name_view_->Update(); | |
124 } | 117 } |
125 | 118 |
126 Layout(); | 119 Layout(); |
127 } | 120 } |
128 | 121 |
129 gfx::Size FolderHeaderView::GetPreferredSize() { | 122 gfx::Size FolderHeaderView::GetPreferredSize() { |
130 return gfx::Size(kPreferredWidth, kPreferredHeight); | 123 return gfx::Size(kPreferredWidth, kPreferredHeight); |
131 } | 124 } |
132 | 125 |
133 void FolderHeaderView::Layout() { | 126 void FolderHeaderView::Layout() { |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
174 rect.set_height(kBottomSeparatorHeight); | 167 rect.set_height(kBottomSeparatorHeight); |
175 canvas->FillRect(rect, kTopSeparatorColor); | 168 canvas->FillRect(rect, kTopSeparatorColor); |
176 } | 169 } |
177 | 170 |
178 void FolderHeaderView::ContentsChanged(views::Textfield* sender, | 171 void FolderHeaderView::ContentsChanged(views::Textfield* sender, |
179 const base::string16& new_contents) { | 172 const base::string16& new_contents) { |
180 // Temporarily remove from observer to ignore data change caused by us. | 173 // Temporarily remove from observer to ignore data change caused by us. |
181 if (!folder_item_) | 174 if (!folder_item_) |
182 return; | 175 return; |
183 | 176 |
184 folder_name_view_->Update(); | |
185 folder_item_->RemoveObserver(this); | 177 folder_item_->RemoveObserver(this); |
186 // Enforce the maximum folder name length in UI. | 178 // Enforce the maximum folder name length in UI. |
187 std::string name = base::UTF16ToUTF8( | 179 std::string name = base::UTF16ToUTF8( |
188 folder_name_view_->text().substr(0, kMaxFolderNameChars)); | 180 folder_name_view_->text().substr(0, kMaxFolderNameChars)); |
189 if (name != folder_item_->name()) | 181 if (name != folder_item_->name()) |
190 delegate_->SetItemName(folder_item_, name); | 182 delegate_->SetItemName(folder_item_, name); |
191 folder_item_->AddObserver(this); | 183 folder_item_->AddObserver(this); |
192 | 184 |
193 Layout(); | 185 Layout(); |
194 } | 186 } |
(...skipping 14 matching lines...) Expand all Loading... |
209 void FolderHeaderView::ItemHighlightedChanged() { | 201 void FolderHeaderView::ItemHighlightedChanged() { |
210 } | 202 } |
211 | 203 |
212 void FolderHeaderView::ItemIsInstallingChanged() { | 204 void FolderHeaderView::ItemIsInstallingChanged() { |
213 } | 205 } |
214 | 206 |
215 void FolderHeaderView::ItemPercentDownloadedChanged() { | 207 void FolderHeaderView::ItemPercentDownloadedChanged() { |
216 } | 208 } |
217 | 209 |
218 } // namespace app_list | 210 } // namespace app_list |
OLD | NEW |