Merge pull request #4023 from omrilitov/master
Added getNativeWindowHandle method
This commit is contained in:
commit
54e1d7b3bf
7 changed files with 22 additions and 3 deletions
|
@ -107,7 +107,6 @@ void TranslateOldOptions(v8::Isolate* isolate, v8::Local<v8::Object> options) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(OS_WIN)
|
|
||||||
// Converts binary data to Buffer.
|
// Converts binary data to Buffer.
|
||||||
v8::Local<v8::Value> ToBuffer(v8::Isolate* isolate, void* val, int size) {
|
v8::Local<v8::Value> ToBuffer(v8::Isolate* isolate, void* val, int size) {
|
||||||
auto buffer = node::Buffer::New(isolate, static_cast<char*>(val), size);
|
auto buffer = node::Buffer::New(isolate, static_cast<char*>(val), size);
|
||||||
|
@ -116,7 +115,6 @@ v8::Local<v8::Value> ToBuffer(v8::Isolate* isolate, void* val, int size) {
|
||||||
else
|
else
|
||||||
return buffer.ToLocalChecked();
|
return buffer.ToLocalChecked();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
@ -594,6 +592,13 @@ void Window::SetAspectRatio(double aspect_ratio, mate::Arguments* args) {
|
||||||
window_->SetAspectRatio(aspect_ratio, extra_size);
|
window_->SetAspectRatio(aspect_ratio, extra_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
v8::Local<v8::Value> Window::GetNativeWindowHandle() {
|
||||||
|
gfx::AcceleratedWidget handle = window_->GetAcceleratedWidget();
|
||||||
|
return ToBuffer(isolate(),
|
||||||
|
static_cast<void*>(&handle),
|
||||||
|
sizeof(gfx::AcceleratedWidget));
|
||||||
|
}
|
||||||
|
|
||||||
void Window::SetVisibleOnAllWorkspaces(bool visible) {
|
void Window::SetVisibleOnAllWorkspaces(bool visible) {
|
||||||
return window_->SetVisibleOnAllWorkspaces(visible);
|
return window_->SetVisibleOnAllWorkspaces(visible);
|
||||||
}
|
}
|
||||||
|
@ -634,6 +639,7 @@ void Window::BuildPrototype(v8::Isolate* isolate,
|
||||||
.SetMethod("setFullScreen", &Window::SetFullScreen)
|
.SetMethod("setFullScreen", &Window::SetFullScreen)
|
||||||
.SetMethod("isFullScreen", &Window::IsFullscreen)
|
.SetMethod("isFullScreen", &Window::IsFullscreen)
|
||||||
.SetMethod("setAspectRatio", &Window::SetAspectRatio)
|
.SetMethod("setAspectRatio", &Window::SetAspectRatio)
|
||||||
|
.SetMethod("getNativeWindowHandle", &Window::GetNativeWindowHandle)
|
||||||
.SetMethod("getBounds", &Window::GetBounds)
|
.SetMethod("getBounds", &Window::GetBounds)
|
||||||
.SetMethod("setBounds", &Window::SetBounds)
|
.SetMethod("setBounds", &Window::SetBounds)
|
||||||
.SetMethod("getSize", &Window::GetSize)
|
.SetMethod("getSize", &Window::GetSize)
|
||||||
|
|
|
@ -137,6 +137,7 @@ class Window : public mate::TrackableObject<Window>,
|
||||||
void SetMenuBarVisibility(bool visible);
|
void SetMenuBarVisibility(bool visible);
|
||||||
bool IsMenuBarVisible();
|
bool IsMenuBarVisible();
|
||||||
void SetAspectRatio(double aspect_ratio, mate::Arguments* args);
|
void SetAspectRatio(double aspect_ratio, mate::Arguments* args);
|
||||||
|
v8::Local<v8::Value> GetNativeWindowHandle();
|
||||||
|
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
typedef base::Callback<void(v8::Local<v8::Value>,
|
typedef base::Callback<void(v8::Local<v8::Value>,
|
||||||
|
|
|
@ -143,6 +143,7 @@ class NativeWindow : public base::SupportsUserData,
|
||||||
virtual void SetMenu(ui::MenuModel* menu);
|
virtual void SetMenu(ui::MenuModel* menu);
|
||||||
virtual bool HasModalDialog();
|
virtual bool HasModalDialog();
|
||||||
virtual gfx::NativeWindow GetNativeWindow() = 0;
|
virtual gfx::NativeWindow GetNativeWindow() = 0;
|
||||||
|
virtual gfx::AcceleratedWidget GetAcceleratedWidget() = 0;
|
||||||
|
|
||||||
// Taskbar/Dock APIs.
|
// Taskbar/Dock APIs.
|
||||||
virtual void SetProgressBar(double progress) = 0;
|
virtual void SetProgressBar(double progress) = 0;
|
||||||
|
|
|
@ -65,6 +65,7 @@ class NativeWindowMac : public NativeWindow {
|
||||||
void SetIgnoreMouseEvents(bool ignore) override;
|
void SetIgnoreMouseEvents(bool ignore) override;
|
||||||
bool HasModalDialog() override;
|
bool HasModalDialog() override;
|
||||||
gfx::NativeWindow GetNativeWindow() override;
|
gfx::NativeWindow GetNativeWindow() override;
|
||||||
|
gfx::AcceleratedWidget GetAcceleratedWidget() override;
|
||||||
void SetProgressBar(double progress) override;
|
void SetProgressBar(double progress) override;
|
||||||
void SetOverlayIcon(const gfx::Image& overlay,
|
void SetOverlayIcon(const gfx::Image& overlay,
|
||||||
const std::string& description) override;
|
const std::string& description) override;
|
||||||
|
|
|
@ -731,6 +731,10 @@ gfx::NativeWindow NativeWindowMac::GetNativeWindow() {
|
||||||
return window_;
|
return window_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gfx::AcceleratedWidget NativeWindowMac::GetAcceleratedWidget() {
|
||||||
|
return inspectable_web_contents()->GetView()->GetNativeView();
|
||||||
|
}
|
||||||
|
|
||||||
void NativeWindowMac::SetProgressBar(double progress) {
|
void NativeWindowMac::SetProgressBar(double progress) {
|
||||||
NSDockTile* dock_tile = [NSApp dockTile];
|
NSDockTile* dock_tile = [NSApp dockTile];
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ class NativeWindowViews : public NativeWindow,
|
||||||
void SetVisibleOnAllWorkspaces(bool visible) override;
|
void SetVisibleOnAllWorkspaces(bool visible) override;
|
||||||
bool IsVisibleOnAllWorkspaces() override;
|
bool IsVisibleOnAllWorkspaces() override;
|
||||||
|
|
||||||
gfx::AcceleratedWidget GetAcceleratedWidget();
|
gfx::AcceleratedWidget GetAcceleratedWidget() override;
|
||||||
|
|
||||||
views::Widget* widget() const { return window_.get(); }
|
views::Widget* widget() const { return window_.get(); }
|
||||||
|
|
||||||
|
|
|
@ -571,6 +571,12 @@ Enters or leaves the kiosk mode.
|
||||||
|
|
||||||
Returns whether the window is in kiosk mode.
|
Returns whether the window is in kiosk mode.
|
||||||
|
|
||||||
|
### `win.getNativeWindowHandle()`
|
||||||
|
|
||||||
|
Returns the platform-specific handle of the window in a buffer.
|
||||||
|
Cast it to the appropriate type, such as HWND for Windows, NSView* for OS X or unsigned long for Linux.
|
||||||
|
Used for OS's Native API's for windows.
|
||||||
|
|
||||||
### `win.hookWindowMessage(message, callback)` _Windows_
|
### `win.hookWindowMessage(message, callback)` _Windows_
|
||||||
|
|
||||||
* `message` Integer
|
* `message` Integer
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue