| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef UI_VIEWS_COCOA_BRIDGED_NATIVE_WIDGET_H_ | 5 #ifndef UI_VIEWS_COCOA_BRIDGED_NATIVE_WIDGET_H_ |
| 6 #define UI_VIEWS_COCOA_BRIDGED_NATIVE_WIDGET_H_ | 6 #define UI_VIEWS_COCOA_BRIDGED_NATIVE_WIDGET_H_ |
| 7 | 7 |
| 8 #import <Cocoa/Cocoa.h> | 8 #import <Cocoa/Cocoa.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 void SetBounds(const gfx::Rect& new_bounds); | 88 void SetBounds(const gfx::Rect& new_bounds); |
| 89 | 89 |
| 90 // Set or clears the views::View bridged by the content view. This does NOT | 90 // Set or clears the views::View bridged by the content view. This does NOT |
| 91 // take ownership of |view|. | 91 // take ownership of |view|. |
| 92 void SetRootView(views::View* view); | 92 void SetRootView(views::View* view); |
| 93 | 93 |
| 94 // Sets the desired visibility of the window and updates the visibility of | 94 // Sets the desired visibility of the window and updates the visibility of |
| 95 // descendant windows where necessary. | 95 // descendant windows where necessary. |
| 96 void SetVisibilityState(WindowVisibilityState new_state); | 96 void SetVisibilityState(WindowVisibilityState new_state); |
| 97 | 97 |
| 98 void CloseAsynchronously(); |
| 99 |
| 98 // Acquiring mouse capture first steals capture from any existing | 100 // Acquiring mouse capture first steals capture from any existing |
| 99 // CocoaMouseCaptureDelegate, then captures all mouse events until released. | 101 // CocoaMouseCaptureDelegate, then captures all mouse events until released. |
| 100 void AcquireCapture(); | 102 void AcquireCapture(); |
| 101 void ReleaseCapture(); | 103 void ReleaseCapture(); |
| 102 bool HasCapture(); | 104 bool HasCapture(); |
| 103 | 105 |
| 104 // Start moving the window, pinned to the mouse cursor, and monitor events. | 106 // Start moving the window, pinned to the mouse cursor, and monitor events. |
| 105 // Return MOVE_LOOP_SUCCESSFUL on mouse up or MOVE_LOOP_CANCELED on premature | 107 // Return MOVE_LOOP_SUCCESSFUL on mouse up or MOVE_LOOP_CANCELED on premature |
| 106 // termination via EndMoveLoop() or when window is destroyed during the drag. | 108 // termination via EndMoveLoop() or when window is destroyed during the drag. |
| 107 Widget::MoveLoopResult RunMoveLoop(const gfx::Vector2d& drag_offset); | 109 Widget::MoveLoopResult RunMoveLoop(const gfx::Vector2d& drag_offset); |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 | 222 |
| 221 // Size the layer to match the client area bounds, taking into account display | 223 // Size the layer to match the client area bounds, taking into account display |
| 222 // scale factor. | 224 // scale factor. |
| 223 void UpdateLayerProperties(); | 225 void UpdateLayerProperties(); |
| 224 | 226 |
| 225 // Immediately return if there is a composited frame matching |size_in_dip|. | 227 // Immediately return if there is a composited frame matching |size_in_dip|. |
| 226 // Otherwise, asks ui::WindowResizeHelperMac to run tasks until a matching | 228 // Otherwise, asks ui::WindowResizeHelperMac to run tasks until a matching |
| 227 // frame is ready, or a timeout occurs. | 229 // frame is ready, or a timeout occurs. |
| 228 void MaybeWaitForFrame(const gfx::Size& size_in_dip); | 230 void MaybeWaitForFrame(const gfx::Size& size_in_dip); |
| 229 | 231 |
| 232 // Return true if the Widget delegate's modal type is window-modal. These |
| 233 // display as a native window "sheet", and have a different lifetime to |
| 234 // regular windows. |
| 235 bool IsWindowModalSheet() const; |
| 236 |
| 230 // Show the window using -[NSApp beginSheet:..], modal for the parent window. | 237 // Show the window using -[NSApp beginSheet:..], modal for the parent window. |
| 231 void ShowAsModalSheet(); | 238 void ShowAsModalSheet(); |
| 232 | 239 |
| 233 // Sets mouseDownCanMoveWindow on |bridged_view_| and triggers the NSWindow to | 240 // Sets mouseDownCanMoveWindow on |bridged_view_| and triggers the NSWindow to |
| 234 // update its draggable region. | 241 // update its draggable region. |
| 235 void SetDraggable(bool draggable); | 242 void SetDraggable(bool draggable); |
| 236 | 243 |
| 237 // Overridden from CocoaMouseCaptureDelegate: | 244 // Overridden from CocoaMouseCaptureDelegate: |
| 238 void PostCapturedEvent(NSEvent* event) override; | 245 void PostCapturedEvent(NSEvent* event) override; |
| 239 void OnMouseCaptureLost() override; | 246 void OnMouseCaptureLost() override; |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 bool window_visible_; | 311 bool window_visible_; |
| 305 | 312 |
| 306 // If true, the window is either visible, or wants to be visible but is | 313 // If true, the window is either visible, or wants to be visible but is |
| 307 // currently hidden due to having a hidden parent. | 314 // currently hidden due to having a hidden parent. |
| 308 bool wants_to_be_visible_; | 315 bool wants_to_be_visible_; |
| 309 | 316 |
| 310 // If true, the window has been made visible or changed shape and the window | 317 // If true, the window has been made visible or changed shape and the window |
| 311 // shadow needs to be invalidated when a frame is received for the new shape. | 318 // shadow needs to be invalidated when a frame is received for the new shape. |
| 312 bool invalidate_shadow_on_frame_swap_ = false; | 319 bool invalidate_shadow_on_frame_swap_ = false; |
| 313 | 320 |
| 321 // Set when an asynchronous close is pending. Visibility changes should be |
| 322 // suppressed in this case. For a synchronous close (e.g. via -[NSWindow |
| 323 // close]), the NSWindowDelegate is just set to nil. |
| 324 bool close_pending_ = false; |
| 325 |
| 314 AssociatedViews associated_views_; | 326 AssociatedViews associated_views_; |
| 315 | 327 |
| 316 DISALLOW_COPY_AND_ASSIGN(BridgedNativeWidget); | 328 DISALLOW_COPY_AND_ASSIGN(BridgedNativeWidget); |
| 317 }; | 329 }; |
| 318 | 330 |
| 319 } // namespace views | 331 } // namespace views |
| 320 | 332 |
| 321 #endif // UI_VIEWS_COCOA_BRIDGED_NATIVE_WIDGET_H_ | 333 #endif // UI_VIEWS_COCOA_BRIDGED_NATIVE_WIDGET_H_ |
| OLD | NEW |