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 #include "ui/views/widget/native_widget_mac.h" | 5 #include "ui/views/widget/native_widget_mac.h" |
6 | 6 |
7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
8 | 8 |
9 #include "base/mac/foundation_util.h" | 9 #include "base/mac/foundation_util.h" |
10 #include "base/mac/scoped_nsobject.h" | 10 #include "base/mac/scoped_nsobject.h" |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 // is still a valid pointer, then reset it. | 98 // is still a valid pointer, then reset it. |
99 if (bridge_) { | 99 if (bridge_) { |
100 delegate_->OnNativeWidgetDestroying(); | 100 delegate_->OnNativeWidgetDestroying(); |
101 bridge_.reset(); | 101 bridge_.reset(); |
102 } | 102 } |
103 delegate_->OnNativeWidgetDestroyed(); | 103 delegate_->OnNativeWidgetDestroyed(); |
104 if (ownership_ == Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET) | 104 if (ownership_ == Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET) |
105 delete this; | 105 delete this; |
106 } | 106 } |
107 | 107 |
| 108 int NativeWidgetMac::SheetPositionY() { |
| 109 NSView* view = GetNativeView(); |
| 110 return |
| 111 [view convertPoint:NSMakePoint(0, NSHeight([view frame])) toView:nil].y; |
| 112 } |
| 113 |
108 //////////////////////////////////////////////////////////////////////////////// | 114 //////////////////////////////////////////////////////////////////////////////// |
109 // NativeWidgetMac, internal::NativeWidgetPrivate implementation: | 115 // NativeWidgetMac, internal::NativeWidgetPrivate implementation: |
110 | 116 |
111 void NativeWidgetMac::InitNativeWidget(const Widget::InitParams& params) { | 117 void NativeWidgetMac::InitNativeWidget(const Widget::InitParams& params) { |
112 ownership_ = params.ownership; | 118 ownership_ = params.ownership; |
113 base::scoped_nsobject<NSWindow> window([CreateNSWindow(params) retain]); | 119 base::scoped_nsobject<NSWindow> window([CreateNSWindow(params) retain]); |
114 [window setReleasedWhenClosed:NO]; // Owned by scoped_nsobject. | 120 [window setReleasedWhenClosed:NO]; // Owned by scoped_nsobject. |
115 bridge_->Init(window, params); | 121 bridge_->Init(window, params); |
116 | 122 |
117 // Only set always-on-top here if it is true since setting it may affect how | 123 // Only set always-on-top here if it is true since setting it may affect how |
(...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
706 [[ViewsNSWindowCloseAnimator alloc] initWithWindow:window]; | 712 [[ViewsNSWindowCloseAnimator alloc] initWithWindow:window]; |
707 } | 713 } |
708 | 714 |
709 - (void)animationDidEnd:(NSAnimation*)animation { | 715 - (void)animationDidEnd:(NSAnimation*)animation { |
710 [window_ close]; | 716 [window_ close]; |
711 [animation_ setDelegate:nil]; | 717 [animation_ setDelegate:nil]; |
712 [self release]; | 718 [self release]; |
713 } | 719 } |
714 | 720 |
715 @end | 721 @end |
OLD | NEW |