From 7229d2462a7df262c5c3f54e88c4b5472daffa18 Mon Sep 17 00:00:00 2001 From: ragingwind Date: Sun, 24 Jan 2016 08:30:14 +0900 Subject: [PATCH] Add app.dock.setIcon to change icon of dock --- atom/browser/api/atom_api_app.cc | 3 +++ atom/browser/api/lib/app.js | 3 ++- atom/browser/browser.h | 7 +++++++ atom/browser/browser_mac.mm | 5 +++++ docs/api/app.md | 6 ++++++ 5 files changed, 23 insertions(+), 1 deletion(-) diff --git a/atom/browser/api/atom_api_app.cc b/atom/browser/api/atom_api_app.cc index b0c87064ea68..394014e8b27e 100644 --- a/atom/browser/api/atom_api_app.cc +++ b/atom/browser/api/atom_api_app.cc @@ -18,6 +18,7 @@ #include "atom/common/native_mate_converters/net_converter.h" #include "atom/common/native_mate_converters/file_path_converter.h" #include "atom/common/native_mate_converters/gurl_converter.h" +#include "atom/common/native_mate_converters/image_converter.h" #include "atom/common/node_includes.h" #include "atom/common/options_switches.h" #include "base/command_line.h" @@ -34,6 +35,7 @@ #include "native_mate/object_template_builder.h" #include "net/ssl/ssl_cert_request_info.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/gfx/image/image.h" #if defined(OS_WIN) #include "base/strings/utf_string_conversions.h" @@ -448,6 +450,7 @@ void Initialize(v8::Local exports, v8::Local unused, dict.SetMethod("dockHide", base::Bind(&Browser::DockHide, browser)); dict.SetMethod("dockShow", base::Bind(&Browser::DockShow, browser)); dict.SetMethod("dockSetMenu", &DockSetMenu); + dict.SetMethod("dockSetIcon", base::Bind(&Browser::DockSetIcon, browser)); #endif } diff --git a/atom/browser/api/lib/app.js b/atom/browser/api/lib/app.js index b99c069b5582..f7c9cd975837 100644 --- a/atom/browser/api/lib/app.js +++ b/atom/browser/api/lib/app.js @@ -37,7 +37,8 @@ if (process.platform === 'darwin') { getBadge: bindings.dockGetBadgeText, hide: bindings.dockHide, show: bindings.dockShow, - setMenu: bindings.dockSetMenu + setMenu: bindings.dockSetMenu, + setIcon: bindings.dockSetIcon }; } diff --git a/atom/browser/browser.h b/atom/browser/browser.h index e46624b158df..0b55fb600cff 100644 --- a/atom/browser/browser.h +++ b/atom/browser/browser.h @@ -27,6 +27,10 @@ namespace ui { class MenuModel; } +namespace gfx { +class Image; +} + namespace atom { class LoginHandler; @@ -91,6 +95,9 @@ class Browser : public WindowListObserver { // Set docks' menu. void DockSetMenu(ui::MenuModel* model); + + // Set docks' icon. + void DockSetIcon(const gfx::Image& image); #endif // defined(OS_MACOSX) #if defined(OS_WIN) diff --git a/atom/browser/browser_mac.mm b/atom/browser/browser_mac.mm index 8b1dd31f3553..e3c4eaf705e8 100644 --- a/atom/browser/browser_mac.mm +++ b/atom/browser/browser_mac.mm @@ -102,4 +102,9 @@ void Browser::DockSetMenu(ui::MenuModel* model) { [delegate setApplicationDockMenu:model]; } +void Browser::DockSetIcon(const gfx::Image& image) { + [[NSApplication sharedApplication] + setApplicationIconImage:image.AsNSImage()]; +} + } // namespace atom diff --git a/docs/api/app.md b/docs/api/app.md index 13cb66e5f5ac..a26defb447a6 100644 --- a/docs/api/app.md +++ b/docs/api/app.md @@ -512,6 +512,12 @@ Shows the dock icon. Sets the application's [dock menu][dock-menu]. +### `app.dock.setIcon(image)` _OS X_ + +* `image` [NativeImage](native-image.md) + +Sets the `image` associated with this dock icon. + [dock-menu]:https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/customizing_docktile/concepts/dockconcepts.html#//apple_ref/doc/uid/TP30000986-CH2-TPXREF103 [tasks]:http://msdn.microsoft.com/en-us/library/windows/desktop/dd378460(v=vs.85).aspx#tasks [app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx