window_->SetAspectRatio(aspect_ratio, extra_size);
}
-void Window::SetParentWindow(NativeWindow* parent) {
- window_->SetParentWindow(parent);
+void Window::SetParentWindow(mate::Arguments* args) {
+ v8::Local<v8::Value> value;
+ NativeWindow* parent;
+ if (args->GetNext(&value) &&
+ mate::ConvertFromV8(isolate(), value, &parent)) {
+ parent_window_.Reset(isolate(), value);
+ window_->SetParentWindow(parent);
+ } else {
+ args->ThrowError("Must pass BrowserWindow instance or null");
+ }
+}
+
+v8::Local<v8::Value> Window::GetParentWindow() {
+ if (parent_window_.IsEmpty())
+ return v8::Null(isolate());
+ else
+ return v8::Local<v8::Value>::New(isolate(), parent_window_);
}
v8::Local<v8::Value> Window::GetNativeWindowHandle() {
.SetMethod("isFullScreen", &Window::IsFullscreen)
.SetMethod("setAspectRatio", &Window::SetAspectRatio)
.SetMethod("setParentWindow", &Window::SetParentWindow)
+ .SetMethod("getParentWindow", &Window::GetParentWindow)
.SetMethod("getNativeWindowHandle", &Window::GetNativeWindowHandle)
.SetMethod("getBounds", &Window::GetBounds)
.SetMethod("setBounds", &Window::SetBounds)
void SetMenuBarVisibility(bool visible);
bool IsMenuBarVisible();
void SetAspectRatio(double aspect_ratio, mate::Arguments* args);
- void SetParentWindow(NativeWindow* parent);
+ void SetParentWindow(mate::Arguments* args);
+ v8::Local<v8::Value> GetParentWindow();
v8::Local<v8::Value> GetNativeWindowHandle();
#if defined(OS_WIN)
v8::Global<v8::Value> web_contents_;
v8::Global<v8::Value> menu_;
+ v8::Global<v8::Value> parent_window_;
api::WebContents* api_web_contents_;