Index: views/window/window.cc |
=================================================================== |
--- views/window/window.cc (revision 88218) |
+++ views/window/window.cc (working copy) |
@@ -5,7 +5,6 @@ |
#include "views/window/window.h" |
#include "base/string_util.h" |
-#include "base/utf_string_conversions.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
#include "ui/base/l10n/l10n_font_util.h" |
#include "ui/base/resource/resource_bundle.h" |
@@ -32,9 +31,7 @@ |
Window::Window() |
: native_window_(NULL), |
saved_maximized_state_(false), |
- minimum_size_(100, 100), |
- disable_inactive_rendering_(false), |
- window_closed_(false) { |
+ minimum_size_(100, 100) { |
} |
Window::~Window() { |
@@ -88,96 +85,30 @@ |
OnNativeWindowCreated(modified_params.widget_init_params.bounds); |
} |
-gfx::Rect Window::GetBounds() const { |
- return GetWindowScreenBounds(); |
-} |
- |
-gfx::Rect Window::GetNormalBounds() const { |
- return native_window_->GetRestoredBounds(); |
-} |
- |
-void Window::ShowInactive() { |
- native_window_->ShowNativeWindow(NativeWindow::SHOW_INACTIVE); |
-} |
- |
-void Window::DisableInactiveRendering() { |
- disable_inactive_rendering_ = true; |
- non_client_view()->DisableInactiveRendering(disable_inactive_rendering_); |
-} |
- |
-void Window::EnableClose(bool enable) { |
- non_client_view()->EnableClose(enable); |
- native_window_->EnableClose(enable); |
-} |
- |
-void Window::UpdateWindowTitle() { |
- // If the non-client view is rendering its own title, it'll need to relayout |
- // now. |
- non_client_view()->Layout(); |
- |
- // Update the native frame's text. We do this regardless of whether or not |
- // the native frame is being used, since this also updates the taskbar, etc. |
- string16 window_title; |
- if (native_window_->AsNativeWidget()->IsScreenReaderActive()) { |
- window_title = WideToUTF16(widget_delegate()->GetAccessibleWindowTitle()); |
- } else { |
- window_title = WideToUTF16(widget_delegate()->GetWindowTitle()); |
- } |
- base::i18n::AdjustStringForLocaleDirection(&window_title); |
- native_window_->AsNativeWidget()->SetWindowTitle(UTF16ToWide(window_title)); |
-} |
- |
-void Window::UpdateWindowIcon() { |
- non_client_view()->UpdateWindowIcon(); |
- native_window_->AsNativeWidget()->SetWindowIcons( |
- widget_delegate()->GetWindowIcon(), |
- widget_delegate()->GetWindowAppIcon()); |
-} |
- |
//////////////////////////////////////////////////////////////////////////////// |
// Window, Widget overrides: |
void Window::Show() { |
- native_window_->ShowNativeWindow( |
- saved_maximized_state_ ? NativeWindow::SHOW_MAXIMIZED |
- : NativeWindow::SHOW_RESTORED); |
+ native_window_->AsNativeWidget()->ShowNativeWidget( |
+ saved_maximized_state_ ? NativeWidget::SHOW_MAXIMIZED |
+ : NativeWidget::SHOW_RESTORED); |
// |saved_maximized_state_| only applies the first time the window is shown. |
// If we don't reset the value the window will be shown maximized every time |
// it is subsequently shown after being hidden. |
saved_maximized_state_ = false; |
} |
-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 |
- // invoking Close again. |
- return; |
- } |
+Window* Window::AsWindow() { |
+ return this; |
+} |
- if (non_client_view()->CanClose()) { |
- SaveWindowPosition(); |
- Widget::Close(); |
- window_closed_ = true; |
- } |
+const Window* Window::AsWindow() const { |
+ return this; |
} |
//////////////////////////////////////////////////////////////////////////////// |
// Window, internal::NativeWindowDelegate implementation: |
-bool Window::CanActivate() const { |
- return widget_delegate()->CanActivate(); |
-} |
- |
-bool Window::IsInactiveRenderingDisabled() const { |
- return disable_inactive_rendering_; |
-} |
- |
-void Window::EnableInactiveRendering() { |
- disable_inactive_rendering_ = false; |
- non_client_view()->DisableInactiveRendering(false); |
-} |
- |
bool Window::IsModal() const { |
return widget_delegate()->IsModal(); |
} |
@@ -186,64 +117,14 @@ |
return !!widget_delegate()->AsDialogDelegate(); |
} |
-gfx::Size Window::GetMinimumSize() { |
- return non_client_view()->GetMinimumSize(); |
-} |
- |
-int Window::GetNonClientComponent(const gfx::Point& point) { |
- return non_client_view()->NonClientHitTest(point); |
-} |
- |
-bool Window::ExecuteCommand(int command_id) { |
- return widget_delegate()->ExecuteWindowsCommand(command_id); |
-} |
- |
void Window::OnNativeWindowCreated(const gfx::Rect& bounds) { |
if (widget_delegate()->IsModal()) |
native_window_->BecomeModal(); |
- // Create the ClientView, add it to the NonClientView and add the |
- // NonClientView to the RootView. This will cause everything to be parented. |
- non_client_view()->set_client_view( |
- widget_delegate()->CreateClientView(this)); |
- SetContentsView(non_client_view()); |
- |
UpdateWindowTitle(); |
- native_window_->AsNativeWidget()->SetAccessibleRole( |
- widget_delegate()->GetAccessibleWindowRole()); |
- native_window_->AsNativeWidget()->SetAccessibleState( |
- widget_delegate()->GetAccessibleWindowState()); |
- |
SetInitialBounds(bounds); |
} |
-void Window::OnNativeWindowActivationChanged(bool active) { |
- if (!active) |
- SaveWindowPosition(); |
- widget_delegate()->OnWindowActivationChanged(active); |
-} |
- |
-void Window::OnNativeWindowBeginUserBoundsChange() { |
- widget_delegate()->OnWindowBeginUserBoundsChange(); |
-} |
- |
-void Window::OnNativeWindowEndUserBoundsChange() { |
- widget_delegate()->OnWindowEndUserBoundsChange(); |
-} |
- |
-void Window::OnNativeWindowDestroying() { |
- non_client_view()->WindowClosing(); |
- widget_delegate()->WindowClosing(); |
-} |
- |
-void Window::OnNativeWindowBoundsChanged() { |
- SaveWindowPosition(); |
-} |
- |
-Window* Window::AsWindow() { |
- return this; |
-} |
- |
internal::NativeWidgetDelegate* Window::AsNativeWidgetDelegate() { |
return this; |
} |
@@ -299,20 +180,4 @@ |
} |
} |
-void Window::SaveWindowPosition() { |
- // The window delegate does the actual saving for us. It seems like (judging |
- // by go/crash) that in some circumstances we can end up here after |
- // WM_DESTROY, at which point the window delegate is likely gone. So just |
- // bail. |
- if (!widget_delegate()) |
- return; |
- |
- bool maximized; |
- gfx::Rect bounds; |
- native_window_->AsNativeWidget()->GetWindowBoundsAndMaximizedState( |
- &bounds, |
- &maximized); |
- widget_delegate()->SaveWindowPlacement(bounds, maximized); |
-} |
- |
} // namespace views |