From 6dae07b76fb4e559eb0c76984f5dbef48ed4ae48 Mon Sep 17 00:00:00 2001 From: Daniel Pham Date: Tue, 10 May 2016 15:02:56 -0400 Subject: [PATCH] Add API: app.dock.downloadFinished(filePath) --- atom/browser/api/atom_api_app.cc | 2 ++ atom/browser/browser.h | 3 +++ atom/browser/browser_mac.mm | 6 ++++++ docs/api/app.md | 6 ++++++ lib/browser/api/app.js | 1 + 5 files changed, 18 insertions(+) diff --git a/atom/browser/api/atom_api_app.cc b/atom/browser/api/atom_api_app.cc index 52a6926..835a2b5 100644 --- a/atom/browser/api/atom_api_app.cc +++ b/atom/browser/api/atom_api_app.cc @@ -546,6 +546,8 @@ void Initialize(v8::Local exports, v8::Local unused, dict.SetMethod("dockBounce", &DockBounce); dict.SetMethod("dockCancelBounce", base::Bind(&Browser::DockCancelBounce, browser)); + dict.SetMethod("dockDownloadFinished", + base::Bind(&Browser::DockDownloadFinished, browser)); dict.SetMethod("dockSetBadgeText", base::Bind(&Browser::DockSetBadgeText, browser)); dict.SetMethod("dockGetBadgeText", diff --git a/atom/browser/browser.h b/atom/browser/browser.h index eb8d286..1c70eb8 100644 --- a/atom/browser/browser.h +++ b/atom/browser/browser.h @@ -111,6 +111,9 @@ class Browser : public WindowListObserver { int DockBounce(BounceType type); void DockCancelBounce(int request_id); + // Bounce the Downloads stack. + void DockDownloadFinished(const std::string& filePath); + // Set/Get dock's badge text. void DockSetBadgeText(const std::string& label); std::string DockGetBadgeText(); diff --git a/atom/browser/browser_mac.mm b/atom/browser/browser_mac.mm index eb7191b..477a132 100644 --- a/atom/browser/browser_mac.mm +++ b/atom/browser/browser_mac.mm @@ -134,6 +134,12 @@ void Browser::DockSetBadgeText(const std::string& label) { [tile setBadgeLabel:base::SysUTF8ToNSString(label)]; } +void Browser::DockDownloadFinished(const std::string& filePath) { + [[NSDistributedNotificationCenter defaultCenter] + postNotificationName: @"com.apple.DownloadFileFinished" + object: base::SysUTF8ToNSString(filePath)]; +} + std::string Browser::DockGetBadgeText() { NSDockTile *tile = [[AtomApplication sharedApplication] dockTile]; return base::SysNSStringToUTF8([tile badgeLabel]); diff --git a/docs/api/app.md b/docs/api/app.md index c6c5887..7f928bb 100644 --- a/docs/api/app.md +++ b/docs/api/app.md @@ -566,6 +566,12 @@ Returns an ID representing the request. Cancel the bounce of `id`. +### `app.dock.downloadFinished(filePath)` _OS X_ + +* `filePath` String + +Bounces the Downloads stack if the filePath is inside the Downloads folder. + ### `app.dock.setBadge(text)` _OS X_ * `text` String diff --git a/lib/browser/api/app.js b/lib/browser/api/app.js index 0487270..f8bff4b 100644 --- a/lib/browser/api/app.js +++ b/lib/browser/api/app.js @@ -32,6 +32,7 @@ if (process.platform === 'darwin') { return bindings.dockBounce(type) }, cancelBounce: bindings.dockCancelBounce, + downloadFinished: bindings.dockDownloadFinished, setBadge: bindings.dockSetBadgeText, getBadge: bindings.dockGetBadgeText, hide: bindings.dockHide, -- 2.7.4