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 e481cb46cc9854ba9887cfd19f821d5a23b076ae..4793a994a01be069183ab3856c8c1d0bbebadbd2 100644 |
--- a/ui/app_list/views/app_list_item_view.cc |
+++ b/ui/app_list/views/app_list_item_view.cc |
@@ -31,6 +31,9 @@ namespace { |
const int kTopBottomPadding = 10; |
const int kTopPadding = 20; |
const int kIconTitleSpacing = 7; |
+const int kProgressBarHorizontalPadding = 8; |
+const int kProgressBarVerticalPadding = 4; |
+const int kProgressBarHeight = 4; |
const SkColor kTitleColor = SkColorSetRGB(0x5A, 0x5A, 0x5A); |
const SkColor kTitleHoverColor = SkColorSetRGB(0x3C, 0x3C, 0x3C); |
@@ -38,6 +41,9 @@ const SkColor kTitleHoverColor = SkColorSetRGB(0x3C, 0x3C, 0x3C); |
const SkColor kHoverAndPushedColor = SkColorSetARGB(0x19, 0, 0, 0); |
const SkColor kSelectedColor = SkColorSetARGB(0x0D, 0, 0, 0); |
const SkColor kHighlightedColor = kHoverAndPushedColor; |
+const SkColor kDownloadProgressBackgroundColor = |
+ SkColorSetRGB(0x90, 0x90, 0x90); |
+const SkColor kDownloadProgressColor = SkColorSetRGB(0x20, 0xAA, 0x20); |
const int kLeftRightPaddingChars = 1; |
@@ -168,6 +174,16 @@ void AppListItemView::ItemHighlightedChanged() { |
SchedulePaint(); |
} |
+void AppListItemView::ItemIsInstallingChanged() { |
+ if (model_->is_installing()) |
+ apps_grid_view_->EnsureViewVisible(this); |
+ SchedulePaint(); |
+} |
+ |
+void AppListItemView::ItemPercentDownloadedChanged() { |
+ SchedulePaint(); |
+} |
+ |
std::string AppListItemView::GetClassName() const { |
return kViewClassName; |
} |
@@ -210,6 +226,25 @@ void AppListItemView::OnPaint(gfx::Canvas* canvas) { |
} else if (apps_grid_view_->IsSelectedView(this)) { |
canvas->FillRect(rect, kSelectedColor); |
} |
+ |
+ if (model_->is_installing()) { |
+ gfx::Rect progress_bar_background( |
+ rect.x() + kProgressBarHorizontalPadding, |
+ rect.bottom() - kProgressBarVerticalPadding - kProgressBarHeight, |
+ rect.width() - 2 * kProgressBarHorizontalPadding, |
+ kProgressBarHeight); |
+ canvas->FillRect(progress_bar_background, kDownloadProgressBackgroundColor); |
+ |
+ if (model_->percent_downloaded() != -1) { |
+ float percent = model_->percent_downloaded() / 100.0; |
+ gfx::Rect progress_bar( |
+ progress_bar_background.x(), |
+ progress_bar_background.y(), |
+ progress_bar_background.width() * percent, |
+ progress_bar_background.height()); |
+ canvas->FillRect(progress_bar, kDownloadProgressColor); |
+ } |
+ } |
} |
void AppListItemView::GetAccessibleState(ui::AccessibleViewState* state) { |