Add BrowserWindow.getClientBounds API
This commit is contained in:
parent
cdfbeb1a0a
commit
48cc13d009
7 changed files with 21 additions and 0 deletions
|
@ -366,6 +366,10 @@ gfx::Rect Window::GetBounds() {
|
||||||
return window_->GetBounds();
|
return window_->GetBounds();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gfx::Rect Window::GetContentBounds() {
|
||||||
|
return window_->GetContentBounds();
|
||||||
|
}
|
||||||
|
|
||||||
void Window::SetSize(int width, int height, mate::Arguments* args) {
|
void Window::SetSize(int width, int height, mate::Arguments* args) {
|
||||||
bool animate = false;
|
bool animate = false;
|
||||||
args->GetNext(&animate);
|
args->GetNext(&animate);
|
||||||
|
@ -785,6 +789,7 @@ void Window::BuildPrototype(v8::Isolate* isolate,
|
||||||
.SetMethod("setBounds", &Window::SetBounds)
|
.SetMethod("setBounds", &Window::SetBounds)
|
||||||
.SetMethod("getSize", &Window::GetSize)
|
.SetMethod("getSize", &Window::GetSize)
|
||||||
.SetMethod("setSize", &Window::SetSize)
|
.SetMethod("setSize", &Window::SetSize)
|
||||||
|
.SetMethod("getContentBounds", &Window::GetContentBounds)
|
||||||
.SetMethod("getContentSize", &Window::GetContentSize)
|
.SetMethod("getContentSize", &Window::GetContentSize)
|
||||||
.SetMethod("setContentSize", &Window::SetContentSize)
|
.SetMethod("setContentSize", &Window::SetContentSize)
|
||||||
.SetMethod("setMinimumSize", &Window::SetMinimumSize)
|
.SetMethod("setMinimumSize", &Window::SetMinimumSize)
|
||||||
|
|
|
@ -112,6 +112,7 @@ class Window : public mate::TrackableObject<Window>,
|
||||||
std::vector<int> GetSize();
|
std::vector<int> GetSize();
|
||||||
void SetContentSize(int width, int height, mate::Arguments* args);
|
void SetContentSize(int width, int height, mate::Arguments* args);
|
||||||
std::vector<int> GetContentSize();
|
std::vector<int> GetContentSize();
|
||||||
|
gfx::Rect GetContentBounds();
|
||||||
void SetMinimumSize(int width, int height);
|
void SetMinimumSize(int width, int height);
|
||||||
std::vector<int> GetMinimumSize();
|
std::vector<int> GetMinimumSize();
|
||||||
void SetMaximumSize(int width, int height);
|
void SetMaximumSize(int width, int height);
|
||||||
|
|
|
@ -91,6 +91,7 @@ class NativeWindow : public base::SupportsUserData,
|
||||||
virtual gfx::Point GetPosition();
|
virtual gfx::Point GetPosition();
|
||||||
virtual void SetContentSize(const gfx::Size& size, bool animate = false);
|
virtual void SetContentSize(const gfx::Size& size, bool animate = false);
|
||||||
virtual gfx::Size GetContentSize();
|
virtual gfx::Size GetContentSize();
|
||||||
|
virtual gfx::Rect GetContentBounds() = 0;
|
||||||
virtual void SetSizeConstraints(
|
virtual void SetSizeConstraints(
|
||||||
const extensions::SizeConstraints& size_constraints);
|
const extensions::SizeConstraints& size_constraints);
|
||||||
virtual extensions::SizeConstraints GetSizeConstraints();
|
virtual extensions::SizeConstraints GetSizeConstraints();
|
||||||
|
|
|
@ -46,6 +46,7 @@ class NativeWindowMac : public NativeWindow {
|
||||||
bool IsFullscreen() const override;
|
bool IsFullscreen() const override;
|
||||||
void SetBounds(const gfx::Rect& bounds, bool animate = false) override;
|
void SetBounds(const gfx::Rect& bounds, bool animate = false) override;
|
||||||
gfx::Rect GetBounds() override;
|
gfx::Rect GetBounds() override;
|
||||||
|
gfx::Rect GetContentBounds() override;
|
||||||
void SetContentSizeConstraints(
|
void SetContentSizeConstraints(
|
||||||
const extensions::SizeConstraints& size_constraints) override;
|
const extensions::SizeConstraints& size_constraints) override;
|
||||||
void SetResizable(bool resizable) override;
|
void SetResizable(bool resizable) override;
|
||||||
|
|
|
@ -753,6 +753,14 @@ gfx::Rect NativeWindowMac::GetBounds() {
|
||||||
return bounds;
|
return bounds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gfx::Rect NativeWindowMac::GetContentBounds() {
|
||||||
|
NSRect frame = [window_ convertRectToScreen:[[window_ contentView] frame]];
|
||||||
|
gfx::Rect bounds(frame.origin.x, 0, NSWidth(frame), NSHeight(frame));
|
||||||
|
NSScreen* screen = [[NSScreen screens] objectAtIndex:0];
|
||||||
|
bounds.set_y(NSHeight([screen frame]) - NSMaxY(frame));
|
||||||
|
return bounds;
|
||||||
|
}
|
||||||
|
|
||||||
void NativeWindowMac::SetContentSizeConstraints(
|
void NativeWindowMac::SetContentSizeConstraints(
|
||||||
const extensions::SizeConstraints& size_constraints) {
|
const extensions::SizeConstraints& size_constraints) {
|
||||||
auto convertSize = [this](const gfx::Size& size) {
|
auto convertSize = [this](const gfx::Size& size) {
|
||||||
|
|
|
@ -544,6 +544,10 @@ gfx::Rect NativeWindowViews::GetBounds() {
|
||||||
return window_->GetWindowBoundsInScreen();
|
return window_->GetWindowBoundsInScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gfx::Rect NativeWindowViews::GetContentBounds() {
|
||||||
|
return window_->GetClientAreaBoundsInScreen();
|
||||||
|
}
|
||||||
|
|
||||||
gfx::Size NativeWindowViews::GetContentSize() {
|
gfx::Size NativeWindowViews::GetContentSize() {
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
if (IsMinimized())
|
if (IsMinimized())
|
||||||
|
|
|
@ -68,6 +68,7 @@ class NativeWindowViews : public NativeWindow,
|
||||||
bool IsFullscreen() const override;
|
bool IsFullscreen() const override;
|
||||||
void SetBounds(const gfx::Rect& bounds, bool animate) override;
|
void SetBounds(const gfx::Rect& bounds, bool animate) override;
|
||||||
gfx::Rect GetBounds() override;
|
gfx::Rect GetBounds() override;
|
||||||
|
gfx::Rect GetContentBounds() override;
|
||||||
gfx::Size GetContentSize() override;
|
gfx::Size GetContentSize() override;
|
||||||
void SetContentSizeConstraints(
|
void SetContentSizeConstraints(
|
||||||
const extensions::SizeConstraints& size_constraints) override;
|
const extensions::SizeConstraints& size_constraints) override;
|
||||||
|
|
Loading…
Reference in a new issue