#include "ui/app_list/views/folder_header_view.h"
+#include <algorithm>
+
#include "base/strings/utf_string_conversions.h"
#include "grit/ui_resources.h"
#include "grit/ui_strings.h"
const int kBottomSeparatorWidth = 380;
const int kBottomSeparatorHeight = 1;
const int kMaxFolderNameWidth = 300;
-const int kFolderNameLeftRightPaddingChars = 4;
const SkColor kHintTextColor = SkColorSetRGB(0xA0, 0xA0, 0xA0);
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_->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() {
return gfx::Size(kPreferredWidth, kPreferredHeight);
}
back_button_->SetBoundsRect(back_bounds);
gfx::Rect text_bounds(rect);
- int text_char_num = folder_item_->name().size()
- ? folder_item_->name().size()
- : folder_name_placeholder_text_.size();
- int text_width = folder_name_view_->GetFontList().GetExpectedTextWidth(
- text_char_num + kFolderNameLeftRightPaddingChars);
+ base::string16 text = folder_item_->name().empty()
+ ? folder_name_placeholder_text_
+ : base::UTF8ToUTF16(folder_item_->name());
+ int text_width =
+ gfx::Canvas::GetStringWidth(text, folder_name_view_->GetFontList()) +
+ folder_name_view_->GetCaretBounds().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);
delegate_->SetItemName(folder_item_, name);
folder_item_->AddObserver(this);
+ UpdateFolderNameAccessibleName();
+
Layout();
}
void FolderHeaderView::ButtonPressed(views::Button* sender,
const ui::Event& event) {
- delegate_->GiveBackFocusToSearchBox();
delegate_->NavigateBack(folder_item_, event);
}