Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: chrome/browser/ui/cocoa/browser_window_controller.h

Issue 1250403002: [Mac] Move UI item validation to UserInterfaceItemCommandHandler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@commandexecute
Patch Set: Split out BrowserWindowCommandHandler and only use it in browser windows. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_H_
6 #define CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_H_ 6 #define CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_H_
7 7
8 // A class acting as the Objective-C controller for the Browser 8 // A class acting as the Objective-C controller for the Browser
9 // object. Handles interactions between Cocoa and the cross-platform 9 // object. Handles interactions between Cocoa and the cross-platform
10 // code. Each window has a single toolbar and, by virtue of being a 10 // code. Each window has a single toolbar and, by virtue of being a
(...skipping 14 matching lines...) Expand all
25 #import "chrome/browser/ui/cocoa/view_resizer.h" 25 #import "chrome/browser/ui/cocoa/view_resizer.h"
26 #include "components/translate/core/common/translate_errors.h" 26 #include "components/translate/core/common/translate_errors.h"
27 #include "ui/base/accelerators/accelerator_manager.h" 27 #include "ui/base/accelerators/accelerator_manager.h"
28 #include "ui/gfx/geometry/rect.h" 28 #include "ui/gfx/geometry/rect.h"
29 29
30 @class AvatarBaseController; 30 @class AvatarBaseController;
31 class BookmarkBubbleObserverCocoa; 31 class BookmarkBubbleObserverCocoa;
32 class Browser; 32 class Browser;
33 class BrowserWindow; 33 class BrowserWindow;
34 class BrowserWindowCocoa; 34 class BrowserWindowCocoa;
35 @class BrowserWindowCommandHandler;
35 @class BrowserWindowFullscreenTransition; 36 @class BrowserWindowFullscreenTransition;
36 @class DevToolsController; 37 @class DevToolsController;
37 @class DownloadShelfController; 38 @class DownloadShelfController;
38 class ExtensionKeybindingRegistryCocoa; 39 class ExtensionKeybindingRegistryCocoa;
39 @class FindBarCocoaController; 40 @class FindBarCocoaController;
40 @class FullscreenModeController; 41 @class FullscreenModeController;
41 @class FullscreenWindow; 42 @class FullscreenWindow;
42 @class InfoBarContainerController; 43 @class InfoBarContainerController;
43 class LocationBarViewMac; 44 class LocationBarViewMac;
44 @class OverlayableContentsController; 45 @class OverlayableContentsController;
45 class PermissionBubbleCocoa; 46 class PermissionBubbleCocoa;
46 @class PresentationModeController; 47 @class PresentationModeController;
47 class StatusBubbleMac; 48 class StatusBubbleMac;
48 @class TabStripController; 49 @class TabStripController;
49 @class TabStripView; 50 @class TabStripView;
50 @class ToolbarController; 51 @class ToolbarController;
51 @class TranslateBubbleController; 52 @class TranslateBubbleController;
52 53
53 namespace content { 54 namespace content {
54 class WebContents; 55 class WebContents;
55 } 56 }
56 57
57 namespace extensions { 58 namespace extensions {
58 class Command; 59 class Command;
59 } 60 }
60 61
61 @interface BrowserWindowController : 62 @interface BrowserWindowController
62 TabWindowController<NSUserInterfaceValidations, 63 : TabWindowController<BookmarkBarControllerDelegate,
63 BookmarkBarControllerDelegate, 64 ViewResizer,
64 ViewResizer, 65 TabStripControllerDelegate> {
65 TabStripControllerDelegate> {
66 @private 66 @private
67 // The ordering of these members is important as it determines the order in 67 // The ordering of these members is important as it determines the order in
68 // which they are destroyed. |browser_| needs to be destroyed last as most of 68 // which they are destroyed. |browser_| needs to be destroyed last as most of
69 // the other objects hold weak references to it or things it owns 69 // the other objects hold weak references to it or things it owns
70 // (tab/toolbar/bookmark models, profiles, etc). 70 // (tab/toolbar/bookmark models, profiles, etc).
71 scoped_ptr<Browser> browser_; 71 scoped_ptr<Browser> browser_;
72 NSWindow* savedRegularWindow_; 72 NSWindow* savedRegularWindow_;
73 scoped_ptr<BrowserWindowCocoa> windowShim_; 73 scoped_ptr<BrowserWindowCocoa> windowShim_;
74 base::scoped_nsobject<ToolbarController> toolbarController_; 74 base::scoped_nsobject<ToolbarController> toolbarController_;
75 base::scoped_nsobject<TabStripController> tabStripController_; 75 base::scoped_nsobject<TabStripController> tabStripController_;
76 base::scoped_nsobject<FindBarCocoaController> findBarCocoaController_; 76 base::scoped_nsobject<FindBarCocoaController> findBarCocoaController_;
77 base::scoped_nsobject<InfoBarContainerController> infoBarContainerController_; 77 base::scoped_nsobject<InfoBarContainerController> infoBarContainerController_;
78 base::scoped_nsobject<DownloadShelfController> downloadShelfController_; 78 base::scoped_nsobject<DownloadShelfController> downloadShelfController_;
79 base::scoped_nsobject<BookmarkBarController> bookmarkBarController_; 79 base::scoped_nsobject<BookmarkBarController> bookmarkBarController_;
80 base::scoped_nsobject<DevToolsController> devToolsController_; 80 base::scoped_nsobject<DevToolsController> devToolsController_;
81 base::scoped_nsobject<OverlayableContentsController> 81 base::scoped_nsobject<OverlayableContentsController>
82 overlayableContentsController_; 82 overlayableContentsController_;
83 base::scoped_nsobject<PresentationModeController> presentationModeController_; 83 base::scoped_nsobject<PresentationModeController> presentationModeController_;
84 base::scoped_nsobject<ExclusiveAccessBubbleWindowController> 84 base::scoped_nsobject<ExclusiveAccessBubbleWindowController>
85 exclusiveAccessBubbleWindowController_; 85 exclusiveAccessBubbleWindowController_;
86 base::scoped_nsobject<BrowserWindowFullscreenTransition> 86 base::scoped_nsobject<BrowserWindowFullscreenTransition>
87 fullscreenTransition_; 87 fullscreenTransition_;
88 base::scoped_nsobject<BrowserWindowCommandHandler> commandHandler_;
88 89
89 // Strong. StatusBubble is a special case of a strong reference that 90 // Strong. StatusBubble is a special case of a strong reference that
90 // we don't wrap in a scoped_ptr because it is acting the same 91 // we don't wrap in a scoped_ptr because it is acting the same
91 // as an NSWindowController in that it wraps a window that must 92 // as an NSWindowController in that it wraps a window that must
92 // be shut down before our destructors are called. 93 // be shut down before our destructors are called.
93 StatusBubbleMac* statusBubble_; 94 StatusBubbleMac* statusBubble_;
94 95
95 scoped_ptr<BookmarkBubbleObserverCocoa> bookmarkBubbleObserver_; 96 scoped_ptr<BookmarkBubbleObserverCocoa> bookmarkBubbleObserver_;
96 BookmarkBubbleController* bookmarkBubbleController_; // Weak. 97 BookmarkBubbleController* bookmarkBubbleController_; // Weak.
97 BOOL initializing_; // YES while we are currently in initWithBrowser: 98 BOOL initializing_; // YES while we are currently in initWithBrowser:
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 // IsWindowFullscreenForTabOrPending() returns true. 493 // IsWindowFullscreenForTabOrPending() returns true.
493 // -- The corresponding URL will be the url of the web page. 494 // -- The corresponding URL will be the url of the web page.
494 495
495 // Methods having to do with fullscreen and presentation mode. 496 // Methods having to do with fullscreen and presentation mode.
496 @interface BrowserWindowController(Fullscreen) 497 @interface BrowserWindowController(Fullscreen)
497 498
498 // Toggles fullscreen mode. Meant to be called by Lion windows when they enter 499 // Toggles fullscreen mode. Meant to be called by Lion windows when they enter
499 // or exit Lion fullscreen mode. Must not be called on Snow Leopard or earlier. 500 // or exit Lion fullscreen mode. Must not be called on Snow Leopard or earlier.
500 - (void)handleLionToggleFullscreen; 501 - (void)handleLionToggleFullscreen;
501 502
502 // The title of the fullscreen menu item in the menu bar.
503 - (NSString*)titleForFullscreenMenuItem;
504
505 // Enters Browser/Appkit Fullscreen. 503 // Enters Browser/Appkit Fullscreen.
506 // If |withToolbar| is NO, the tab strip and toolbar are hidden 504 // If |withToolbar| is NO, the tab strip and toolbar are hidden
507 // (aka Presentation Mode). 505 // (aka Presentation Mode).
508 - (void)enterBrowserFullscreenWithToolbar:(BOOL)withToolbar; 506 - (void)enterBrowserFullscreenWithToolbar:(BOOL)withToolbar;
509 507
510 // Adds or removes the tab strip and toolbar from the current window. The 508 // Adds or removes the tab strip and toolbar from the current window. The
511 // window must be in immersive or AppKit Fullscreen. 509 // window must be in immersive or AppKit Fullscreen.
512 - (void)updateFullscreenWithToolbar:(BOOL)withToolbar; 510 - (void)updateFullscreenWithToolbar:(BOOL)withToolbar;
513 511
514 // Updates the contents of the fullscreen exit bubble with |url| and 512 // Updates the contents of the fullscreen exit bubble with |url| and
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 - (ExclusiveAccessBubbleWindowController*)exclusiveAccessBubbleWindowController; 606 - (ExclusiveAccessBubbleWindowController*)exclusiveAccessBubbleWindowController;
609 607
610 // Gets the rect, in window base coordinates, that the omnibox popup should be 608 // Gets the rect, in window base coordinates, that the omnibox popup should be
611 // positioned relative to. 609 // positioned relative to.
612 - (NSRect)omniboxPopupAnchorRect; 610 - (NSRect)omniboxPopupAnchorRect;
613 611
614 @end // @interface BrowserWindowController (TestingAPI) 612 @end // @interface BrowserWindowController (TestingAPI)
615 613
616 614
617 #endif // CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_H_ 615 #endif // CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698