| Index: ui/app_list/views/app_list_item_view.cc
|
| diff --git a/ui/app_list/views/app_list_item_view.cc b/ui/app_list/views/app_list_item_view.cc
|
| index 3d4897c00e3ca168aa31cdbe9775135cc22994d4..b551e0e548ffc7af2cbc08da73dfde7ea52ef797 100644
|
| --- a/ui/app_list/views/app_list_item_view.cc
|
| +++ b/ui/app_list/views/app_list_item_view.cc
|
| @@ -13,7 +13,6 @@
|
| #include "ui/app_list/app_list_folder_item.h"
|
| #include "ui/app_list/app_list_item.h"
|
| #include "ui/app_list/views/apps_grid_view.h"
|
| -#include "ui/app_list/views/cached_label.h"
|
| #include "ui/app_list/views/progress_bar_view.h"
|
| #include "ui/base/dragdrop/drag_utils.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| @@ -71,22 +70,18 @@ AppListItemView::AppListItemView(AppsGridView* apps_grid_view,
|
| item_(item),
|
| apps_grid_view_(apps_grid_view),
|
| icon_(new views::ImageView),
|
| - title_(new CachedLabel),
|
| + title_(new views::Label),
|
| progress_bar_(new ProgressBarView),
|
| ui_state_(UI_STATE_NORMAL),
|
| touch_dragging_(false) {
|
| icon_->set_interactive(false);
|
|
|
| ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
|
| - title_->SetBackgroundColor(0);
|
| title_->SetAutoColorReadabilityEnabled(false);
|
| title_->SetEnabledColor(kGridTitleColor);
|
| title_->SetFontList(
|
| rb.GetFontList(kItemTextFontStyle).DeriveWithSizeDelta(kFontSizeDelta));
|
| - title_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
|
| title_->SetVisible(!item_->is_installing());
|
| - title_->Invalidate();
|
| - SetTitleSubpixelAA();
|
|
|
| const gfx::ShadowValue kIconShadows[] = {
|
| gfx::ShadowValue(gfx::Point(0, 2), 2, SkColorSetARGB(0x24, 0, 0, 0)),
|
| @@ -187,7 +182,7 @@ void AppListItemView::SetUIState(UIState state) {
|
| }
|
| #endif // !OS_WIN
|
|
|
| - SchedulePaint();
|
| + Layout();
|
| }
|
|
|
| void AppListItemView::SetTouchDragging(bool touch_dragging) {
|
| @@ -203,36 +198,6 @@ void AppListItemView::OnMouseDragTimer() {
|
| SetUIState(UI_STATE_DRAGGING);
|
| }
|
|
|
| -void AppListItemView::SetTitleSubpixelAA() {
|
| - // TODO(tapted): Enable AA for folders as well, taking care to play nice with
|
| - // the folder bubble animation.
|
| - bool enable_aa = !item_->IsInFolder() && ui_state_ == UI_STATE_NORMAL &&
|
| - !item_->highlighted() &&
|
| - !apps_grid_view_->IsSelectedView(this) &&
|
| - !apps_grid_view_->IsAnimatingView(this);
|
| -
|
| - bool currently_enabled = title_->background() != NULL;
|
| - if (currently_enabled == enable_aa)
|
| - return;
|
| -
|
| - if (enable_aa) {
|
| - title_->SetBackgroundColor(app_list::kContentsBackgroundColor);
|
| - title_->set_background(views::Background::CreateSolidBackground(
|
| - app_list::kContentsBackgroundColor));
|
| - } else {
|
| - // In other cases, keep the background transparent to ensure correct
|
| - // interactions with animations. This will temporarily disable subpixel AA.
|
| - title_->SetBackgroundColor(0);
|
| - title_->set_background(NULL);
|
| - }
|
| - title_->Invalidate();
|
| - title_->SchedulePaint();
|
| -}
|
| -
|
| -void AppListItemView::Prerender() {
|
| - title_->PaintToBackingImage();
|
| -}
|
| -
|
| void AppListItemView::CancelContextMenu() {
|
| if (context_menu_runner_)
|
| context_menu_runner_->Cancel();
|
| @@ -265,7 +230,6 @@ void AppListItemView::ItemIconChanged() {
|
|
|
| void AppListItemView::ItemNameChanged() {
|
| title_->SetText(base::UTF8ToUTF16(item_->GetDisplayName()));
|
| - title_->Invalidate();
|
| UpdateTooltip();
|
| // Use full name for accessibility.
|
| SetAccessibleName(item_->GetItemType() == AppListFolderItem::kItemType
|
| @@ -278,7 +242,7 @@ void AppListItemView::ItemNameChanged() {
|
|
|
| void AppListItemView::ItemHighlightedChanged() {
|
| apps_grid_view_->EnsureViewVisible(this);
|
| - SchedulePaint();
|
| + Layout();
|
| }
|
|
|
| void AppListItemView::ItemIsInstallingChanged() {
|
| @@ -286,7 +250,7 @@ void AppListItemView::ItemIsInstallingChanged() {
|
| apps_grid_view_->EnsureViewVisible(this);
|
| title_->SetVisible(!item_->is_installing());
|
| progress_bar_->SetVisible(item_->is_installing());
|
| - SchedulePaint();
|
| + Layout();
|
| }
|
|
|
| void AppListItemView::ItemPercentDownloadedChanged() {
|
| @@ -303,46 +267,33 @@ const char* AppListItemView::GetClassName() const {
|
| }
|
|
|
| void AppListItemView::Layout() {
|
| - gfx::Rect rect(GetContentsBounds());
|
| -
|
| - const int left_right_padding =
|
| - title_->font_list().GetExpectedTextWidth(kLeftRightPaddingChars);
|
| - rect.Inset(left_right_padding, kTopPadding, left_right_padding, 0);
|
| - const int y = rect.y();
|
| + SkColor color = app_list::kContentsBackgroundColor;
|
| + if (item_->highlighted() && !item_->is_installing())
|
| + color = kHighlightedColor;
|
| + else if (apps_grid_view_->IsSelectedView(this))
|
| + color = kSelectedColor;
|
| + set_background(views::Background::CreateSolidBackground(color));
|
|
|
| icon_->SetBoundsRect(GetIconBoundsForTargetViewBounds(GetContentsBounds()));
|
| - const gfx::Size title_size = title_->GetPreferredSize();
|
| - gfx::Rect title_bounds(rect.x() + (rect.width() - title_size.width()) / 2,
|
| - y + icon_size_.height() + kIconTitleSpacing,
|
| - title_size.width(),
|
| - title_size.height());
|
| - title_bounds.Intersect(rect);
|
| - title_->SetBoundsRect(title_bounds);
|
| +
|
| + gfx::Rect rect(icon_->bounds());
|
| + rect.set_y(icon_->bounds().bottom() + kIconTitleSpacing);
|
| + rect.set_height(title_->GetPreferredSize().height());
|
| + rect.Intersect(GetContentsBounds());
|
| + title_->SetBoundsRect(rect);
|
| + title_->SetBackgroundColor(color);
|
|
|
| gfx::Rect progress_bar_bounds(progress_bar_->GetPreferredSize());
|
| progress_bar_bounds.set_x(GetContentsBounds().x() +
|
| kProgressBarHorizontalPadding);
|
| - progress_bar_bounds.set_y(title_bounds.y());
|
| + progress_bar_bounds.set_y(rect.y());
|
| progress_bar_->SetBoundsRect(progress_bar_bounds);
|
| -}
|
|
|
| -void AppListItemView::SchedulePaintInRect(const gfx::Rect& r) {
|
| - SetTitleSubpixelAA();
|
| - views::CustomButton::SchedulePaintInRect(r);
|
| + SchedulePaint();
|
| }
|
|
|
| void AppListItemView::OnPaint(gfx::Canvas* canvas) {
|
| - if (apps_grid_view_->IsDraggedView(this))
|
| - return;
|
| -
|
| - gfx::Rect rect(GetContentsBounds());
|
| - if (item_->highlighted() && !item_->is_installing()) {
|
| - canvas->FillRect(rect, kHighlightedColor);
|
| - return;
|
| - }
|
| - if (apps_grid_view_->IsSelectedView(this))
|
| - canvas->FillRect(rect, kSelectedColor);
|
| -
|
| + CustomButton::OnPaint(canvas);
|
| if (ui_state_ == UI_STATE_DROPPING_IN_FOLDER) {
|
| DCHECK(apps_grid_view_->model()->folders_enabled());
|
|
|
| @@ -384,6 +335,7 @@ void AppListItemView::StateChanged() {
|
| if (state() == STATE_HOVERED || state() == STATE_PRESSED) {
|
| if (!is_folder_ui_enabled)
|
| apps_grid_view_->SetSelectedView(this);
|
| + item_->SetHighlighted(true);
|
| title_->SetEnabledColor(kGridTitleHoverColor);
|
| } else {
|
| if (!is_folder_ui_enabled)
|
| @@ -391,7 +343,7 @@ void AppListItemView::StateChanged() {
|
| item_->SetHighlighted(false);
|
| title_->SetEnabledColor(kGridTitleColor);
|
| }
|
| - title_->Invalidate();
|
| + Layout();
|
| }
|
|
|
| bool AppListItemView::ShouldEnterPushedState(const ui::Event& event) {
|
|
|