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

Unified Diff: chrome/browser/ui/cocoa/download/download_item_cell.mm

Issue 1236463002: Vectorize download shelf progress indicators (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: better Created 5 years, 5 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
Index: chrome/browser/ui/cocoa/download/download_item_cell.mm
diff --git a/chrome/browser/ui/cocoa/download/download_item_cell.mm b/chrome/browser/ui/cocoa/download/download_item_cell.mm
index 6b0bda42d9da8eca8c994032d423c4b235d93ece..cca1e45ccaab312faf253a17d94ab6d5d68b8688 100644
--- a/chrome/browser/ui/cocoa/download/download_item_cell.mm
+++ b/chrome/browser/ui/cocoa/download/download_item_cell.mm
@@ -20,6 +20,7 @@
#include "ui/gfx/font_list.h"
#include "ui/gfx/scoped_ns_graphics_context_save_gstate_mac.h"
#include "ui/gfx/text_elider.h"
+#include "ui/native_theme/native_theme.h"
// Distance from top border to icon.
const CGFloat kImagePaddingTop = 7;
@@ -76,16 +77,6 @@ const CGFloat kInterruptedAnimationDuration = 2.5;
using content::DownloadItem;
-namespace {
-
-// Passed as a callback to DownloadShelf paint functions. On toolkit-views
-// platforms it will mirror the position of the download progress, but that's
-// not done on Mac.
-void DummyRTLMirror(gfx::Rect* bounds) {
-}
-
-} // namespace
-
// This is a helper class to animate the fading out of the status text.
@interface DownloadItemCellAnimation : NSAnimation {
@private
@@ -140,7 +131,6 @@ void DummyRTLMirror(gfx::Rect* bounds) {
isStatusTextVisible_ = NO;
titleY_ = kPrimaryTextOnlyPosTop;
statusAlpha_ = 0.0;
- indeterminateProgressAngle_ = DownloadShelf::kStartAngleDegrees;
[self setFont:[NSFont systemFontOfSize:
[NSFont systemFontSizeForControlSize:NSSmallControlSize]]];
@@ -252,6 +242,7 @@ void DummyRTLMirror(gfx::Rect* bounds) {
if (!indeterminateProgressTimer_) {
indeterminateProgressTimer_.reset([[IndeterminateProgressTimer alloc]
initWithDownloadItemCell:self]);
+ progressStartTime_ = base::TimeTicks::Now();
}
} else {
percentDone_ = downloadModel->PercentComplete();
@@ -562,22 +553,24 @@ void DummyRTLMirror(gfx::Rect* bounds) {
gfx::CanvasSkiaPaint canvas(dirtyRect, false);
canvas.set_composite_alpha(true);
+ canvas.Translate(gfx::Vector2d(x, y));
+
if (completionAnimation_.get()) {
if ([completionAnimation_ isAnimating]) {
if (percentDone_ == -1) {
DownloadShelf::PaintDownloadComplete(
- &canvas, base::Bind(&DummyRTLMirror), x, y,
+ &canvas, *[[self window] themeProvider],
[completionAnimation_ currentValue]);
} else {
DownloadShelf::PaintDownloadInterrupted(
- &canvas, base::Bind(&DummyRTLMirror), x, y,
+ &canvas, *[[self window] themeProvider],
[completionAnimation_ currentValue]);
}
}
} else if (percentDone_ >= 0 || indeterminateProgressTimer_) {
- DownloadShelf::PaintDownloadProgress(&canvas, base::Bind(&DummyRTLMirror),
- x, y, indeterminateProgressAngle_,
- percentDone_);
+ DownloadShelf::PaintDownloadProgress(&canvas,
+ *[[self window] themeProvider],
+ progressStartTime_, percentDone_);
}
}
@@ -689,9 +682,6 @@ void DummyRTLMirror(gfx::Rect* bounds) {
}
- (void)updateIndeterminateDownload {
- indeterminateProgressAngle_ =
- (indeterminateProgressAngle_ + DownloadShelf::kUnknownIncrementDegrees) %
- DownloadShelf::kMaxDegrees;
[[self controlView] setNeedsDisplay:YES];
}

Powered by Google App Engine
This is Rietveld 408576698