OLD | NEW |
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_COCOA_H_ | 5 #ifndef CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_COCOA_H_ |
6 #define CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_COCOA_H_ | 6 #define CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_COCOA_H_ |
7 | 7 |
8 #include "base/mac/scoped_nsobject.h" | 8 #include "base/mac/scoped_nsobject.h" |
9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
10 #include "chrome/browser/extensions/extension_keybinding_registry.h" | 10 #include "chrome/browser/extensions/extension_keybinding_registry.h" |
| 11 #include "chrome/browser/extensions/sidebar_manager_observer.h" |
11 #include "chrome/browser/signin/signin_header_helper.h" | 12 #include "chrome/browser/signin/signin_header_helper.h" |
12 #include "chrome/browser/ui/browser_window.h" | 13 #include "chrome/browser/ui/browser_window.h" |
13 #include "chrome/browser/ui/exclusive_access/exclusive_access_context.h" | 14 #include "chrome/browser/ui/exclusive_access/exclusive_access_context.h" |
14 #include "chrome/browser/ui/search/search_model_observer.h" | 15 #include "chrome/browser/ui/search/search_model_observer.h" |
15 #include "components/bookmarks/browser/bookmark_model.h" | 16 #include "components/bookmarks/browser/bookmark_model.h" |
16 #include "ui/base/ui_base_types.h" | 17 #include "ui/base/ui_base_types.h" |
17 | 18 |
18 class Browser; | 19 class Browser; |
19 @class BrowserWindowController; | 20 @class BrowserWindowController; |
20 @class FindBarCocoaController; | 21 @class FindBarCocoaController; |
21 @class NSEvent; | 22 @class NSEvent; |
22 @class NSMenu; | 23 @class NSMenu; |
23 @class NSWindow; | 24 @class NSWindow; |
24 | 25 |
25 namespace extensions { | 26 namespace extensions { |
26 class ActiveTabPermissionGranter; | 27 class ActiveTabPermissionGranter; |
27 class Command; | 28 class Command; |
28 class Extension; | 29 class Extension; |
29 } | 30 } |
30 | 31 |
31 // An implementation of BrowserWindow for Cocoa. Bridges between C++ and | 32 // An implementation of BrowserWindow for Cocoa. Bridges between C++ and |
32 // the Cocoa NSWindow. Cross-platform code will interact with this object when | 33 // the Cocoa NSWindow. Cross-platform code will interact with this object when |
33 // it needs to manipulate the window. | 34 // it needs to manipulate the window. |
34 | 35 |
35 class BrowserWindowCocoa | 36 class BrowserWindowCocoa |
36 : public BrowserWindow, | 37 : public BrowserWindow, |
37 public ExclusiveAccessContext, | 38 public ExclusiveAccessContext, |
38 public extensions::ExtensionKeybindingRegistry::Delegate, | 39 public extensions::ExtensionKeybindingRegistry::Delegate, |
| 40 public SidebarManagerObserver, |
39 public SearchModelObserver { | 41 public SearchModelObserver { |
40 public: | 42 public: |
41 BrowserWindowCocoa(Browser* browser, | 43 BrowserWindowCocoa(Browser* browser, |
42 BrowserWindowController* controller); | 44 BrowserWindowController* controller); |
43 ~BrowserWindowCocoa() override; | 45 ~BrowserWindowCocoa() override; |
44 | 46 |
45 // Overridden from BrowserWindow | 47 // Overridden from BrowserWindow |
46 void Show() override; | 48 void Show() override; |
47 void ShowInactive() override; | 49 void ShowInactive() override; |
48 void Hide() override; | 50 void Hide() override; |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 FindBar* CreateFindBar() override; | 152 FindBar* CreateFindBar() override; |
151 web_modal::WebContentsModalDialogHost* GetWebContentsModalDialogHost() | 153 web_modal::WebContentsModalDialogHost* GetWebContentsModalDialogHost() |
152 override; | 154 override; |
153 void ShowAvatarBubbleFromAvatarButton( | 155 void ShowAvatarBubbleFromAvatarButton( |
154 AvatarBubbleMode mode, | 156 AvatarBubbleMode mode, |
155 const signin::ManageAccountsParams& manage_accounts_params) override; | 157 const signin::ManageAccountsParams& manage_accounts_params) override; |
156 void CloseAvatarBubbleFromAvatarButton() override; | 158 void CloseAvatarBubbleFromAvatarButton() override; |
157 int GetRenderViewHeightInsetWithDetachedBookmarkBar() override; | 159 int GetRenderViewHeightInsetWithDetachedBookmarkBar() override; |
158 void ExecuteExtensionCommand(const extensions::Extension* extension, | 160 void ExecuteExtensionCommand(const extensions::Extension* extension, |
159 const extensions::Command& command) override; | 161 const extensions::Command& command) override; |
| 162 |
160 ExclusiveAccessContext* GetExclusiveAccessContext() override; | 163 ExclusiveAccessContext* GetExclusiveAccessContext() override; |
161 | 164 |
162 // ExclusiveAccessContext interface | 165 // ExclusiveAccessContext interface |
163 Profile* GetProfile() override; | 166 Profile* GetProfile() override; |
164 content::WebContents* GetActiveWebContents() override; | 167 content::WebContents* GetActiveWebContents() override; |
165 void UnhideDownloadShelf() override; | 168 void UnhideDownloadShelf() override; |
166 void HideDownloadShelf() override; | 169 void HideDownloadShelf() override; |
167 | 170 |
168 // Overridden from ExtensionKeybindingRegistry::Delegate: | 171 // Overridden from ExtensionKeybindingRegistry::Delegate: |
169 extensions::ActiveTabPermissionGranter* GetActiveTabPermissionGranter() | 172 extensions::ActiveTabPermissionGranter* GetActiveTabPermissionGranter() |
170 override; | 173 override; |
171 | 174 |
172 // Overridden from SearchModelObserver: | 175 // Overridden from SearchModelObserver: |
173 void ModelChanged(const SearchModel::State& old_state, | 176 void ModelChanged(const SearchModel::State& old_state, |
174 const SearchModel::State& new_state) override; | 177 const SearchModel::State& new_state) override; |
175 | 178 |
176 // Adds the given FindBar cocoa controller to this browser window. | 179 // Adds the given FindBar cocoa controller to this browser window. |
177 void AddFindBar(FindBarCocoaController* find_bar_cocoa_controller); | 180 void AddFindBar(FindBarCocoaController* find_bar_cocoa_controller); |
178 | 181 |
179 // Returns the cocoa-world BrowserWindowController | 182 // Returns the cocoa-world BrowserWindowController |
180 BrowserWindowController* cocoa_controller() { return controller_; } | 183 BrowserWindowController* cocoa_controller() { return controller_; } |
181 | 184 |
| 185 // Handle SidebarManager events |
| 186 void OnSidebarShown(content::WebContents* tab, |
| 187 const std::string& content_id) override; |
| 188 void OnSidebarHidden(content::WebContents* tab, |
| 189 const std::string& content_id) override; |
| 190 |
182 protected: | 191 protected: |
183 void DestroyBrowser() override; | 192 void DestroyBrowser() override; |
184 | 193 |
185 private: | 194 private: |
186 NSWindow* window() const; // Accessor for the (current) |NSWindow|. | 195 NSWindow* window() const; // Accessor for the (current) |NSWindow|. |
187 | 196 void UpdateSidebarForContents(content::WebContents* tab_contents); |
188 Browser* browser_; // weak, owned by controller | 197 Browser* browser_; // weak, owned by controller |
189 BrowserWindowController* controller_; // weak, owns us | 198 BrowserWindowController* controller_; // weak, owns us |
190 base::scoped_nsobject<NSString> pending_window_title_; | 199 base::scoped_nsobject<NSString> pending_window_title_; |
191 ui::WindowShowState initial_show_state_; | 200 ui::WindowShowState initial_show_state_; |
192 NSInteger attention_request_id_; // identifier from requestUserAttention | 201 NSInteger attention_request_id_; // identifier from requestUserAttention |
193 }; | 202 }; |
194 | 203 |
195 #endif // CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_COCOA_H_ | 204 #endif // CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_COCOA_H_ |
OLD | NEW |