| 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: |
| 45 (id<CommandDispatcherDelegate, UserInterfaceItemCommandHandler>)delegate { |
| 44 [commandDispatcher_ setDelegate:delegate]; | 46 [commandDispatcher_ setDelegate:delegate]; |
| 47 commandHandler_ = delegate; |
| 45 } | 48 } |
| 46 | 49 |
| 47 // Private methods. | 50 // Private methods. |
| 48 | 51 |
| 49 - (ViewsNSWindowDelegate*)viewsNSWindowDelegate { | 52 - (ViewsNSWindowDelegate*)viewsNSWindowDelegate { |
| 50 return base::mac::ObjCCastStrict<ViewsNSWindowDelegate>([self delegate]); | 53 return base::mac::ObjCCastStrict<ViewsNSWindowDelegate>([self delegate]); |
| 51 } | 54 } |
| 52 | 55 |
| 53 - (views::Widget*)viewsWidget { | 56 - (views::Widget*)viewsWidget { |
| 54 return [[self viewsNSWindowDelegate] nativeWidgetMac]->GetWidget(); | 57 return [[self viewsNSWindowDelegate] nativeWidgetMac]->GetWidget(); |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 161 // CommandDispatchingWindow implementation. | 164 // CommandDispatchingWindow implementation. |
| 162 | 165 |
| 163 - (BOOL)redispatchKeyEvent:(NSEvent*)event { | 166 - (BOOL)redispatchKeyEvent:(NSEvent*)event { |
| 164 return [commandDispatcher_ redispatchKeyEvent:event]; | 167 return [commandDispatcher_ redispatchKeyEvent:event]; |
| 165 } | 168 } |
| 166 | 169 |
| 167 - (BOOL)defaultPerformKeyEquivalent:(NSEvent*)event { | 170 - (BOOL)defaultPerformKeyEquivalent:(NSEvent*)event { |
| 168 return [super performKeyEquivalent:event]; | 171 return [super performKeyEquivalent:event]; |
| 169 } | 172 } |
| 170 | 173 |
| 174 - (void)commandDispatch:(id)sender { |
| 175 [commandHandler_ commandDispatch:sender window:self]; |
| 176 } |
| 177 |
| 178 - (void)commandDispatchUsingKeyModifiers:(id)sender { |
| 179 [commandHandler_ commandDispatchUsingKeyModifiers:sender window:self]; |
| 180 } |
| 181 |
| 182 // NSWindow overrides (NSUserInterfaceItemValidations implementation) |
| 183 |
| 184 - (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item { |
| 185 return [commandHandler_ validateUserInterfaceItem:item window:self] && |
| 186 [super validateUserInterfaceItem:item]; |
| 187 } |
| 188 |
| 171 @end | 189 @end |
| OLD | NEW |