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

Unified Diff: ui/app_list/views/folder_header_view.cc

Issue 645853013: Remove some platform specific stuff from views. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/app_list/views/folder_header_view.h ('k') | ui/app_list/views/folder_header_view_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/app_list/views/folder_header_view.cc
diff --git a/ui/app_list/views/folder_header_view.cc b/ui/app_list/views/folder_header_view.cc
deleted file mode 100644
index e3c3cfc2ab704155c4be2c9767e5709694c9df1d..0000000000000000000000000000000000000000
--- a/ui/app_list/views/folder_header_view.cc
+++ /dev/null
@@ -1,239 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/app_list/views/folder_header_view.h"
-
-#include <algorithm>
-
-#include "base/strings/utf_string_conversions.h"
-#include "ui/app_list/app_list_constants.h"
-#include "ui/app_list/app_list_folder_item.h"
-#include "ui/app_list/app_list_switches.h"
-#include "ui/app_list/views/app_list_folder_view.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/gfx/canvas.h"
-#include "ui/resources/grit/ui_resources.h"
-#include "ui/strings/grit/ui_strings.h"
-#include "ui/views/border.h"
-#include "ui/views/controls/button/image_button.h"
-#include "ui/views/controls/textfield/textfield.h"
-#include "ui/views/painter.h"
-
-namespace app_list {
-
-namespace {
-
-const int kPreferredWidth = 360;
-const int kPreferredHeight = 48;
-const int kIconDimension = 24;
-const int kBackButtonPadding = 14;
-const int kBottomSeparatorPadding = 9; // Non-experimental app list only.
-const int kBottomSeparatorHeight = 1;
-const int kMaxFolderNameWidth = 300;
-
-} // namespace
-
-class FolderHeaderView::FolderNameView : public views::Textfield {
- public:
- FolderNameView() {
- SetBorder(views::Border::CreateEmptyBorder(1, 1, 1, 1));
- const SkColor kFocusBorderColor = SkColorSetRGB(64, 128, 250);
- SetFocusPainter(views::Painter::CreateSolidFocusPainter(
- kFocusBorderColor,
- gfx::Insets(0, 0, 1, 1)));
-
- SetTextColor(kFolderTitleColor);
- }
-
- virtual ~FolderNameView() {
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(FolderNameView);
-};
-
-FolderHeaderView::FolderHeaderView(FolderHeaderViewDelegate* delegate)
- : folder_item_(NULL),
- back_button_(new views::ImageButton(this)),
- folder_name_view_(new FolderNameView),
- folder_name_placeholder_text_(
- ui::ResourceBundle::GetSharedInstance().GetLocalizedString(
- IDS_APP_LIST_FOLDER_NAME_PLACEHOLDER)),
- delegate_(delegate),
- folder_name_visible_(true) {
- ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
- back_button_->SetImage(views::ImageButton::STATE_NORMAL,
- rb.GetImageSkiaNamed(IDR_APP_LIST_FOLDER_BACK_NORMAL));
- back_button_->SetImageAlignment(views::ImageButton::ALIGN_CENTER,
- views::ImageButton::ALIGN_MIDDLE);
- AddChildView(back_button_);
- back_button_->SetFocusable(true);
- back_button_->SetAccessibleName(
- ui::ResourceBundle::GetSharedInstance().GetLocalizedString(
- IDS_APP_LIST_FOLDER_CLOSE_FOLDER_ACCESSIBILE_NAME));
-
- folder_name_view_->SetFontList(
- rb.GetFontList(ui::ResourceBundle::MediumFont));
- folder_name_view_->set_placeholder_text_color(kFolderTitleHintTextColor);
- folder_name_view_->set_placeholder_text(folder_name_placeholder_text_);
- folder_name_view_->SetBorder(views::Border::NullBorder());
- folder_name_view_->SetBackgroundColor(kContentsBackgroundColor);
- folder_name_view_->set_controller(this);
- AddChildView(folder_name_view_);
-}
-
-FolderHeaderView::~FolderHeaderView() {
- if (folder_item_)
- folder_item_->RemoveObserver(this);
-}
-
-void FolderHeaderView::SetFolderItem(AppListFolderItem* folder_item) {
- if (folder_item_)
- folder_item_->RemoveObserver(this);
-
- folder_item_ = folder_item;
- if (!folder_item_)
- return;
- folder_item_->AddObserver(this);
-
- folder_name_view_->SetEnabled(folder_item_->folder_type() !=
- AppListFolderItem::FOLDER_TYPE_OEM);
-
- Update();
-}
-
-void FolderHeaderView::UpdateFolderNameVisibility(bool visible) {
- folder_name_visible_ = visible;
- Update();
- SchedulePaint();
-}
-
-void FolderHeaderView::OnFolderItemRemoved() {
- folder_item_ = NULL;
-}
-
-void FolderHeaderView::Update() {
- if (!folder_item_)
- return;
-
- folder_name_view_->SetVisible(folder_name_visible_);
- if (folder_name_visible_) {
- folder_name_view_->SetText(base::UTF8ToUTF16(folder_item_->name()));
- UpdateFolderNameAccessibleName();
- }
-
- Layout();
-}
-
-void FolderHeaderView::UpdateFolderNameAccessibleName() {
- // Sets |folder_name_view_|'s accessible name to the placeholder text if
- // |folder_name_view_| is blank; otherwise, clear the accessible name, the
- // accessible state's value is set to be folder_name_view_->text() by
- // TextField.
- base::string16 accessible_name = folder_name_view_->text().empty()
- ? folder_name_placeholder_text_
- : base::string16();
- folder_name_view_->SetAccessibleName(accessible_name);
-}
-
-const base::string16& FolderHeaderView::GetFolderNameForTest() {
- return folder_name_view_->text();
-}
-
-void FolderHeaderView::SetFolderNameForTest(const base::string16& name) {
- folder_name_view_->SetText(name);
-}
-
-bool FolderHeaderView::IsFolderNameEnabledForTest() const {
- return folder_name_view_->enabled();
-}
-
-gfx::Size FolderHeaderView::GetPreferredSize() const {
- return gfx::Size(kPreferredWidth, kPreferredHeight);
-}
-
-void FolderHeaderView::Layout() {
- gfx::Rect rect(GetContentsBounds());
- if (rect.IsEmpty())
- return;
-
- gfx::Rect back_bounds(rect);
- back_bounds.set_width(kIconDimension + 2 * kBackButtonPadding);
- if (app_list::switches::IsExperimentalAppListEnabled()) {
- // Align the left edge of the button image with the left margin of the
- // launcher window. Note that this means the physical button dimensions
- // extends slightly into the margin.
- back_bounds.set_x(kExperimentalWindowPadding - kBackButtonPadding);
- }
- back_button_->SetBoundsRect(back_bounds);
-
- gfx::Rect text_bounds(rect);
- base::string16 text = folder_item_ && !folder_item_->name().empty()
- ? base::UTF8ToUTF16(folder_item_->name())
- : folder_name_placeholder_text_;
- int text_width =
- gfx::Canvas::GetStringWidth(text, folder_name_view_->GetFontList()) +
- folder_name_view_->GetCaretBounds().width() +
- folder_name_view_->GetInsets().width();
- text_width = std::min(text_width, kMaxFolderNameWidth);
- text_bounds.set_x(back_bounds.x() + (rect.width() - text_width) / 2);
- text_bounds.set_width(text_width);
- text_bounds.ClampToCenteredSize(gfx::Size(text_bounds.width(),
- folder_name_view_->GetPreferredSize().height()));
- folder_name_view_->SetBoundsRect(text_bounds);
-}
-
-bool FolderHeaderView::OnKeyPressed(const ui::KeyEvent& event) {
- if (event.key_code() == ui::VKEY_RETURN)
- delegate_->GiveBackFocusToSearchBox();
-
- return false;
-}
-
-void FolderHeaderView::OnPaint(gfx::Canvas* canvas) {
- views::View::OnPaint(canvas);
-
- gfx::Rect rect(GetContentsBounds());
- if (rect.IsEmpty() || !folder_name_visible_)
- return;
-
- // Draw bottom separator line.
- int horizontal_padding = app_list::switches::IsExperimentalAppListEnabled()
- ? kExperimentalWindowPadding
- : kBottomSeparatorPadding;
- rect.Inset(horizontal_padding, 0);
- rect.set_y(rect.bottom() - kBottomSeparatorHeight);
- rect.set_height(kBottomSeparatorHeight);
- canvas->FillRect(rect, kTopSeparatorColor);
-}
-
-void FolderHeaderView::ContentsChanged(views::Textfield* sender,
- const base::string16& new_contents) {
- // Temporarily remove from observer to ignore data change caused by us.
- if (!folder_item_)
- return;
-
- folder_item_->RemoveObserver(this);
- // Enforce the maximum folder name length in UI.
- std::string name = base::UTF16ToUTF8(
- folder_name_view_->text().substr(0, kMaxFolderNameChars));
- if (name != folder_item_->name())
- delegate_->SetItemName(folder_item_, name);
- folder_item_->AddObserver(this);
-
- UpdateFolderNameAccessibleName();
-
- Layout();
-}
-
-void FolderHeaderView::ButtonPressed(views::Button* sender,
- const ui::Event& event) {
- delegate_->NavigateBack(folder_item_, event);
-}
-
-void FolderHeaderView::ItemNameChanged() {
- Update();
-}
-
-} // namespace app_list
« no previous file with comments | « ui/app_list/views/folder_header_view.h ('k') | ui/app_list/views/folder_header_view_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698