Index: views/window/window.cc |
=================================================================== |
--- views/window/window.cc (revision 85284) |
+++ views/window/window.cc (working copy) |
@@ -47,7 +47,7 @@ |
Window* Window::CreateChromeWindow(gfx::NativeWindow parent, |
const gfx::Rect& bounds, |
WindowDelegate* window_delegate) { |
- Window* window = NativeWindow::CreateNativeWindow(); |
+ Window* window = new Window; |
Window::InitParams params(window_delegate); |
params.parent_window = parent; |
params.widget_init_params.bounds = bounds; |
@@ -74,34 +74,24 @@ |
GetLocalizedContentsHeight(row_resource_id)); |
} |
-// static |
-void Window::CloseSecondaryWidget(Widget* widget) { |
- if (!widget) |
- return; |
- |
- // Close widget if it's identified as a secondary window. |
- Window* window = widget->GetWindow(); |
- if (window) { |
- if (!window->IsAppWindow()) |
- window->CloseWindow(); |
- } else { |
- // If it's not a Window, then close it anyway since it probably is |
- // secondary. |
- widget->Close(); |
- } |
-} |
- |
void Window::InitWindow(const InitParams& params) { |
window_delegate_ = params.window_delegate; |
AsWidget()->set_widget_delegate(window_delegate_); |
DCHECK(window_delegate_); |
DCHECK(!window_delegate_->window_); |
window_delegate_->window_ = this; |
+ set_widget_delegate(window_delegate_); |
+ native_window_ = |
+ params.native_window ? params.native_window |
+ : NativeWindow::CreateNativeWindow(this); |
// If frame_view was set already, don't replace it with default one. |
if (!non_client_view()->frame_view()) |
non_client_view()->SetFrameView(CreateFrameViewForWindow()); |
- AsWidget()->Init(params.widget_init_params); |
- OnNativeWindowCreated(params.widget_init_params.bounds); |
+ InitParams modified_params = params; |
+ modified_params.widget_init_params.native_widget = |
+ native_window_->AsNativeWidget(); |
+ Init(modified_params.widget_init_params); |
+ OnNativeWindowCreated(modified_params.widget_init_params.bounds); |
} |
gfx::Rect Window::GetBounds() const { |
@@ -149,7 +139,7 @@ |
native_window_->Deactivate(); |
} |
-void Window::CloseWindow() { |
+void Window::Close() { |
if (window_closed_) { |
// It appears we can hit this code path if you close a modal dialog then |
// close the last browser before the destructor is hit, which triggers |
@@ -159,9 +149,7 @@ |
if (non_client_view_->CanClose()) { |
SaveWindowPosition(); |
- // TODO(beng): This can be simplified to Widget::Close() once Window |
- // subclasses Widget. |
- native_window_->AsNativeWidget()->GetWidget()->Close(); |
+ Widget::Close(); |
window_closed_ = true; |
} |
} |
@@ -206,10 +194,6 @@ |
native_window_->SetUseDragFrame(use_drag_frame); |
} |
-bool Window::IsAppWindow() const { |
- return native_window_->IsAppWindow(); |
-} |
- |
void Window::EnableClose(bool enable) { |
non_client_view_->EnableClose(enable); |
native_window_->EnableClose(enable); |
@@ -261,22 +245,7 @@ |
native_window_->FrameTypeChanged(); |
} |
-Widget* Window::AsWidget() { |
- return const_cast<Widget*>(const_cast<const Window*>(this)->AsWidget()); |
-} |
- |
-const Widget* Window::AsWidget() const { |
- return native_window_->AsNativeWidget()->GetWidget(); |
-} |
- |
//////////////////////////////////////////////////////////////////////////////// |
-// Window, protected: |
- |
-void Window::SetNativeWindow(NativeWindow* native_window) { |
- native_window_ = native_window; |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
// Window, internal::NativeWindowDelegate implementation: |
bool Window::CanActivate() const { |
@@ -364,6 +333,14 @@ |
SaveWindowPosition(); |
} |
+Window* Window::AsWindow() { |
+ return this; |
+} |
+ |
+internal::NativeWidgetDelegate* Window::AsNativeWidgetDelegate() { |
+ return this; |
+} |
+ |
//////////////////////////////////////////////////////////////////////////////// |
// Window, private: |