diff --git a/atom/browser/api/atom_api_screen.cc b/atom/browser/api/atom_api_screen.cc index c45e20da4c2c..699bf1136105 100644 --- a/atom/browser/api/atom_api_screen.cc +++ b/atom/browser/api/atom_api_screen.cc @@ -120,6 +120,9 @@ void Screen::BuildPrototype( .SetMethod("getPrimaryDisplay", &Screen::GetPrimaryDisplay) .SetMethod("getAllDisplays", &Screen::GetAllDisplays) .SetMethod("getDisplayNearestPoint", &Screen::GetDisplayNearestPoint) + #if defined(OS_MACOSX) + .SetMethod("getMenuBarHeight", &Screen::getMenuBarHeight) + #endif .SetMethod("getDisplayMatching", &Screen::GetDisplayMatching); } diff --git a/atom/browser/api/atom_api_screen.h b/atom/browser/api/atom_api_screen.h index 2bbaa13f6df5..6e2af6d6fcb8 100644 --- a/atom/browser/api/atom_api_screen.h +++ b/atom/browser/api/atom_api_screen.h @@ -39,7 +39,9 @@ class Screen : public mate::EventEmitter, std::vector GetAllDisplays(); display::Display GetDisplayNearestPoint(const gfx::Point& point); display::Display GetDisplayMatching(const gfx::Rect& match_rect); - +#if defined(OS_MACOSX) + int getMenuBarHeight(); +#endif // display::DisplayObserver: void OnDisplayAdded(const display::Display& new_display) override; void OnDisplayRemoved(const display::Display& old_display) override; diff --git a/atom/browser/api/atom_api_screen_mac.mm b/atom/browser/api/atom_api_screen_mac.mm new file mode 100644 index 000000000000..85537f082041 --- /dev/null +++ b/atom/browser/api/atom_api_screen_mac.mm @@ -0,0 +1,15 @@ +#import "atom/browser/api/atom_api_screen.h" + +#import + +namespace atom { + +namespace api { +#if defined(OS_MACOSX) +int Screen::getMenuBarHeight(){ + return [[NSApp mainMenu] menuBarHeight]; +} +#endif +}// namespace api + +}// namespace atom diff --git a/docs/api/screen.md b/docs/api/screen.md index 49f0d9f55c9c..9c0af48fd767 100644 --- a/docs/api/screen.md +++ b/docs/api/screen.md @@ -95,6 +95,12 @@ Returns [`Point`](structures/point.md) The current absolute position of the mouse pointer. +### `screen.getMenuBarHeight()` + +Returns [`Integer`] - Height + +The height of toolbar in pixels. + ### `screen.getPrimaryDisplay()` Returns [`Display`](structures/display.md) - The primary display. diff --git a/filenames.gypi b/filenames.gypi index 54ddf4dde195..a55c083ffc45 100644 --- a/filenames.gypi +++ b/filenames.gypi @@ -135,6 +135,7 @@ 'atom/browser/api/atom_api_protocol.h', 'atom/browser/api/atom_api_render_process_preferences.cc', 'atom/browser/api/atom_api_render_process_preferences.h', + 'atom/browser/api/atom_api_screen_mac.mm', 'atom/browser/api/atom_api_screen.cc', 'atom/browser/api/atom_api_screen.h', 'atom/browser/api/atom_api_session.cc',