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 #import "browser_actions_controller.h" | 5 #import "browser_actions_controller.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/sys_string_conversions.h" | 10 #include "base/sys_string_conversions.h" |
11 #include "chrome/browser/extensions/extension_action.h" | 11 #include "chrome/browser/extensions/extension_action.h" |
12 #include "chrome/browser/extensions/extension_action_manager.h" | 12 #include "chrome/browser/extensions/extension_action_manager.h" |
13 #include "chrome/browser/extensions/extension_service.h" | 13 #include "chrome/browser/extensions/extension_service.h" |
14 #include "chrome/browser/extensions/extension_system.h" | 14 #include "chrome/browser/extensions/extension_system.h" |
15 #include "chrome/browser/extensions/extension_toolbar_model.h" | 15 #include "chrome/browser/extensions/extension_toolbar_model.h" |
16 #include "chrome/browser/prefs/pref_registry_syncable.h" | |
16 #include "chrome/browser/prefs/pref_service.h" | 17 #include "chrome/browser/prefs/pref_service.h" |
17 #include "chrome/browser/profiles/profile.h" | 18 #include "chrome/browser/profiles/profile.h" |
18 #include "chrome/browser/sessions/session_tab_helper.h" | 19 #include "chrome/browser/sessions/session_tab_helper.h" |
19 #include "chrome/browser/ui/browser.h" | 20 #include "chrome/browser/ui/browser.h" |
20 #include "chrome/browser/ui/browser_window.h" | 21 #include "chrome/browser/ui/browser_window.h" |
21 #import "chrome/browser/ui/cocoa/extensions/browser_action_button.h" | 22 #import "chrome/browser/ui/cocoa/extensions/browser_action_button.h" |
22 #import "chrome/browser/ui/cocoa/extensions/browser_actions_container_view.h" | 23 #import "chrome/browser/ui/cocoa/extensions/browser_actions_container_view.h" |
23 #import "chrome/browser/ui/cocoa/extensions/extension_popup_controller.h" | 24 #import "chrome/browser/ui/cocoa/extensions/extension_popup_controller.h" |
24 #import "chrome/browser/ui/cocoa/image_button_cell.h" | 25 #import "chrome/browser/ui/cocoa/image_button_cell.h" |
25 #import "chrome/browser/ui/cocoa/menu_button.h" | 26 #import "chrome/browser/ui/cocoa/menu_button.h" |
26 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 27 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
27 #include "chrome/common/chrome_notification_types.h" | 28 #include "chrome/common/chrome_notification_types.h" |
28 #include "chrome/common/extensions/api/extension_action/action_info.h" | 29 #include "chrome/common/extensions/api/extension_action/action_info.h" |
29 #include "chrome/common/pref_names.h" | 30 #include "chrome/common/pref_names.h" |
31 #include "content/public/browser/notification_details.h" | |
30 #include "content/public/browser/notification_observer.h" | 32 #include "content/public/browser/notification_observer.h" |
31 #include "content/public/browser/notification_registrar.h" | 33 #include "content/public/browser/notification_registrar.h" |
32 #include "content/public/browser/notification_details.h" | |
33 #include "content/public/browser/notification_source.h" | 34 #include "content/public/browser/notification_source.h" |
34 #include "grit/theme_resources.h" | 35 #include "grit/theme_resources.h" |
35 #import "third_party/GTM/AppKit/GTMNSAnimation+Duration.h" | 36 #import "third_party/GTM/AppKit/GTMNSAnimation+Duration.h" |
36 | 37 |
37 using extensions::Extension; | 38 using extensions::Extension; |
38 using extensions::ExtensionList; | 39 using extensions::ExtensionList; |
39 | 40 |
40 NSString* const kBrowserActionVisibilityChangedNotification = | 41 NSString* const kBrowserActionVisibilityChangedNotification = |
41 @"BrowserActionVisibilityChangedNotification"; | 42 @"BrowserActionVisibilityChangedNotification"; |
42 | 43 |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
257 | 258 |
258 - (id)initWithBrowser:(Browser*)browser | 259 - (id)initWithBrowser:(Browser*)browser |
259 containerView:(BrowserActionsContainerView*)container { | 260 containerView:(BrowserActionsContainerView*)container { |
260 DCHECK(browser && container); | 261 DCHECK(browser && container); |
261 | 262 |
262 if ((self = [super init])) { | 263 if ((self = [super init])) { |
263 browser_ = browser; | 264 browser_ = browser; |
264 profile_ = browser->profile(); | 265 profile_ = browser->profile(); |
265 | 266 |
266 if (!profile_->GetPrefs()->FindPreference( | 267 if (!profile_->GetPrefs()->FindPreference( |
267 prefs::kBrowserActionContainerWidth)) | 268 prefs::kBrowserActionContainerWidth)) |
Mattias Nissler (ping if slow)
2013/02/06 17:53:33
TODO: registrations up front.
Jói
2013/02/07 14:52:32
Done.
| |
268 [BrowserActionsController registerUserPrefs:profile_->GetPrefs()]; | 269 [BrowserActionsController registerUserPrefs:( |
270 (PrefRegistrySyncable*) | |
271 profile_->GetPrefs()->DeprecatedGetPrefRegistry())]; | |
269 | 272 |
270 observer_.reset(new ExtensionServiceObserverBridge(self, browser_)); | 273 observer_.reset(new ExtensionServiceObserverBridge(self, browser_)); |
271 ExtensionService* extensionService = | 274 ExtensionService* extensionService = |
272 extensions::ExtensionSystem::Get(profile_)->extension_service(); | 275 extensions::ExtensionSystem::Get(profile_)->extension_service(); |
273 // |extensionService| can be NULL in Incognito. | 276 // |extensionService| can be NULL in Incognito. |
274 if (extensionService) { | 277 if (extensionService) { |
275 toolbarModel_ = extensionService->toolbar_model(); | 278 toolbarModel_ = extensionService->toolbar_model(); |
276 toolbarModel_->AddObserver(observer_.get()); | 279 toolbarModel_->AddObserver(observer_.get()); |
277 } | 280 } |
278 | 281 |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
433 if (effect == NSViewAnimationFadeInEffect) { | 436 if (effect == NSViewAnimationFadeInEffect) { |
434 return NO; | 437 return NO; |
435 } else if (effect == NSViewAnimationFadeOutEffect) { | 438 } else if (effect == NSViewAnimationFadeOutEffect) { |
436 return YES; | 439 return YES; |
437 } | 440 } |
438 | 441 |
439 NOTREACHED(); | 442 NOTREACHED(); |
440 return YES; | 443 return YES; |
441 } | 444 } |
442 | 445 |
443 + (void)registerUserPrefs:(PrefServiceSyncable*)prefs { | 446 + (void)registerUserPrefs:(PrefRegistrySyncable*)registry { |
444 prefs->RegisterDoublePref(prefs::kBrowserActionContainerWidth, | 447 registry->RegisterDoublePref(prefs::kBrowserActionContainerWidth, |
445 0, | 448 0, |
446 PrefServiceSyncable::UNSYNCABLE_PREF); | 449 PrefRegistrySyncable::UNSYNCABLE_PREF); |
447 } | 450 } |
448 | 451 |
449 #pragma mark - | 452 #pragma mark - |
450 #pragma mark NSMenuDelegate | 453 #pragma mark NSMenuDelegate |
451 | 454 |
452 - (void)menuNeedsUpdate:(NSMenu*)menu { | 455 - (void)menuNeedsUpdate:(NSMenu*)menu { |
453 [menu removeAllItems]; | 456 [menu removeAllItems]; |
454 | 457 |
455 // See menu_button.h for documentation on why this is needed. | 458 // See menu_button.h for documentation on why this is needed. |
456 [menu addItemWithTitle:@"" action:nil keyEquivalent:@""]; | 459 [menu addItemWithTitle:@"" action:nil keyEquivalent:@""]; |
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
870 const extensions::ExtensionList& toolbar_items = | 873 const extensions::ExtensionList& toolbar_items = |
871 toolbarModel_->toolbar_items(); | 874 toolbarModel_->toolbar_items(); |
872 if (index < toolbar_items.size()) { | 875 if (index < toolbar_items.size()) { |
873 const Extension* extension = toolbar_items[index]; | 876 const Extension* extension = toolbar_items[index]; |
874 return [buttons_ objectForKey:base::SysUTF8ToNSString(extension->id())]; | 877 return [buttons_ objectForKey:base::SysUTF8ToNSString(extension->id())]; |
875 } | 878 } |
876 return nil; | 879 return nil; |
877 } | 880 } |
878 | 881 |
879 @end | 882 @end |
OLD | NEW |