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 #import "ui/views/cocoa/native_widget_mac_nswindow.h" | 5 #import "ui/views/cocoa/native_widget_mac_nswindow.h" |
6 | 6 |
7 #include "base/mac/foundation_util.h" | 7 #include "base/mac/foundation_util.h" |
8 #import "ui/views/cocoa/views_nswindow_delegate.h" | 8 #import "ui/views/cocoa/views_nswindow_delegate.h" |
9 #include "ui/views/controls/menu/menu_controller.h" | 9 #include "ui/views/controls/menu/menu_controller.h" |
10 #include "ui/views/widget/native_widget_mac.h" | 10 #include "ui/views/widget/native_widget_mac.h" |
11 #include "ui/views/widget/widget_delegate.h" | 11 #include "ui/views/widget/widget_delegate.h" |
12 | 12 |
13 @interface NativeWidgetMacNSWindow () | 13 @interface NativeWidgetMacNSWindow () |
14 - (ViewsNSWindowDelegate*)viewsNSWindowDelegate; | 14 - (ViewsNSWindowDelegate*)viewsNSWindowDelegate; |
15 - (views::Widget*)viewsWidget; | 15 - (views::Widget*)viewsWidget; |
16 - (BOOL)hasViewsMenuActive; | 16 - (BOOL)hasViewsMenuActive; |
17 | 17 |
18 // Private API on NSWindow, determines whether the title is drawn on the title | 18 // Private API on NSWindow, determines whether the title is drawn on the title |
19 // bar. The title is still visible in menus, Expose, etc. | 19 // bar. The title is still visible in menus, Expose, etc. |
20 - (BOOL)_isTitleHidden; | 20 - (BOOL)_isTitleHidden; |
21 @end | 21 @end |
22 | 22 |
23 @implementation NativeWidgetMacNSWindow { | 23 @implementation NativeWidgetMacNSWindow { |
24 @private | 24 @private |
25 base::scoped_nsobject<CommandDispatcher> commandDispatcher_; | 25 base::scoped_nsobject<CommandDispatcher> commandDispatcher_; |
26 id<UserInterfaceItemCommandHandler> commandHandler_; | |
26 } | 27 } |
27 | 28 |
28 - (instancetype)initWithContentRect:(NSRect)contentRect | 29 - (instancetype)initWithContentRect:(NSRect)contentRect |
29 styleMask:(NSUInteger)windowStyle | 30 styleMask:(NSUInteger)windowStyle |
30 backing:(NSBackingStoreType)bufferingType | 31 backing:(NSBackingStoreType)bufferingType |
31 defer:(BOOL)deferCreation { | 32 defer:(BOOL)deferCreation { |
32 if ((self = [super initWithContentRect:contentRect | 33 if ((self = [super initWithContentRect:contentRect |
33 styleMask:windowStyle | 34 styleMask:windowStyle |
34 backing:bufferingType | 35 backing:bufferingType |
35 defer:deferCreation])) { | 36 defer:deferCreation])) { |
36 commandDispatcher_.reset([[CommandDispatcher alloc] initWithOwner:self]); | 37 commandDispatcher_.reset([[CommandDispatcher alloc] initWithOwner:self]); |
37 } | 38 } |
38 return self; | 39 return self; |
39 } | 40 } |
40 | 41 |
41 // Public methods. | 42 // Public methods. |
42 | 43 |
43 - (void)setCommandDispatcherDelegate:(id<CommandDispatcherDelegate>)delegate { | 44 - (void)setCommandDispatcherDelegate:(id<CommandDispatcherDelegate>)delegate { |
44 [commandDispatcher_ setDelegate:delegate]; | 45 [commandDispatcher_ setDelegate:delegate]; |
45 } | 46 } |
46 | 47 |
48 - (void)setUserInterfaceItemCommandHandler: | |
49 (id<UserInterfaceItemCommandHandler>)commandHandler { | |
50 commandHandler_ = commandHandler; | |
51 } | |
52 | |
47 // Private methods. | 53 // Private methods. |
48 | 54 |
49 - (ViewsNSWindowDelegate*)viewsNSWindowDelegate { | 55 - (ViewsNSWindowDelegate*)viewsNSWindowDelegate { |
50 return base::mac::ObjCCastStrict<ViewsNSWindowDelegate>([self delegate]); | 56 return base::mac::ObjCCastStrict<ViewsNSWindowDelegate>([self delegate]); |
51 } | 57 } |
52 | 58 |
53 - (views::Widget*)viewsWidget { | 59 - (views::Widget*)viewsWidget { |
54 return [[self viewsNSWindowDelegate] nativeWidgetMac]->GetWidget(); | 60 return [[self viewsNSWindowDelegate] nativeWidgetMac]->GetWidget(); |
55 } | 61 } |
56 | 62 |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
161 // CommandDispatchingWindow implementation. | 167 // CommandDispatchingWindow implementation. |
162 | 168 |
163 - (BOOL)redispatchKeyEvent:(NSEvent*)event { | 169 - (BOOL)redispatchKeyEvent:(NSEvent*)event { |
164 return [commandDispatcher_ redispatchKeyEvent:event]; | 170 return [commandDispatcher_ redispatchKeyEvent:event]; |
165 } | 171 } |
166 | 172 |
167 - (BOOL)defaultPerformKeyEquivalent:(NSEvent*)event { | 173 - (BOOL)defaultPerformKeyEquivalent:(NSEvent*)event { |
168 return [super performKeyEquivalent:event]; | 174 return [super performKeyEquivalent:event]; |
169 } | 175 } |
170 | 176 |
177 - (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item { | |
tapted
2015/09/03 04:15:38
same comments as on CEPW
jackhou1
2015/09/03 06:15:39
Done.
| |
178 return [commandHandler_ validateUserInterfaceItem:item window:self]; | |
179 } | |
180 | |
181 - (void)commandDispatch:(id)sender { | |
182 [commandHandler_ commandDispatch:sender window:self]; | |
183 } | |
184 | |
185 - (void)commandDispatchUsingKeyModifiers:(id)sender { | |
186 [commandHandler_ commandDispatchUsingKeyModifiers:sender window:self]; | |
187 } | |
188 | |
171 @end | 189 @end |
OLD | NEW |