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 "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h" | 5 #import "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/mac/bundle_locations.h" | 9 #include "base/mac/bundle_locations.h" |
10 #include "base/mac/foundation_util.h" | 10 #include "base/mac/foundation_util.h" |
11 #include "base/mac/mac_util.h" | 11 #include "base/mac/mac_util.h" |
12 #include "base/mac/sdk_forward_declarations.h" | 12 #include "base/mac/sdk_forward_declarations.h" |
13 #include "base/memory/singleton.h" | 13 #include "base/memory/singleton.h" |
14 #include "base/prefs/pref_service.h" | 14 #include "base/prefs/pref_service.h" |
15 #include "base/strings/string_util.h" | 15 #include "base/strings/string_util.h" |
16 #include "base/strings/sys_string_conversions.h" | 16 #include "base/strings/sys_string_conversions.h" |
17 #include "base/strings/utf_string_conversions.h" | 17 #include "base/strings/utf_string_conversions.h" |
18 #include "chrome/app/chrome_command_ids.h" | 18 #include "chrome/app/chrome_command_ids.h" |
19 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" | 19 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" |
20 #include "chrome/browser/chrome_notification_types.h" | 20 #include "chrome/browser/chrome_notification_types.h" |
21 #include "chrome/browser/command_observer.h" | 21 #include "chrome/browser/command_observer.h" |
22 #include "chrome/browser/command_updater.h" | 22 #include "chrome/browser/command_updater.h" |
23 #include "chrome/browser/profiles/profile.h" | 23 #include "chrome/browser/profiles/profile.h" |
24 #include "chrome/browser/search/search.h" | 24 #include "chrome/browser/search/search.h" |
25 #include "chrome/browser/sync/sync_global_error_factory.h" | 25 #include "chrome/browser/sync/sync_global_error_factory.h" |
26 #include "chrome/browser/themes/theme_service.h" | 26 #include "chrome/browser/themes/theme_service.h" |
27 #include "chrome/browser/ui/browser.h" | 27 #include "chrome/browser/ui/browser.h" |
28 #include "chrome/browser/ui/browser_commands.h" | 28 #include "chrome/browser/ui/browser_commands.h" |
29 #include "chrome/browser/ui/browser_window.h" | 29 #include "chrome/browser/ui/browser_window.h" |
| 30 #import "chrome/browser/ui/cocoa/app_menu/app_menu_controller.h" |
30 #import "chrome/browser/ui/cocoa/background_gradient_view.h" | 31 #import "chrome/browser/ui/cocoa/background_gradient_view.h" |
31 #include "chrome/browser/ui/cocoa/drag_util.h" | 32 #include "chrome/browser/ui/cocoa/drag_util.h" |
32 #import "chrome/browser/ui/cocoa/extensions/browser_action_button.h" | 33 #import "chrome/browser/ui/cocoa/extensions/browser_action_button.h" |
33 #import "chrome/browser/ui/cocoa/extensions/browser_actions_container_view.h" | 34 #import "chrome/browser/ui/cocoa/extensions/browser_actions_container_view.h" |
34 #import "chrome/browser/ui/cocoa/extensions/browser_actions_controller.h" | 35 #import "chrome/browser/ui/cocoa/extensions/browser_actions_controller.h" |
35 #import "chrome/browser/ui/cocoa/gradient_button_cell.h" | 36 #import "chrome/browser/ui/cocoa/gradient_button_cell.h" |
36 #import "chrome/browser/ui/cocoa/image_button_cell.h" | 37 #import "chrome/browser/ui/cocoa/image_button_cell.h" |
37 #import "chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_editor.h" | 38 #import "chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_editor.h" |
38 #import "chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h" | 39 #import "chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h" |
39 #import "chrome/browser/ui/cocoa/menu_button.h" | 40 #import "chrome/browser/ui/cocoa/menu_button.h" |
40 #import "chrome/browser/ui/cocoa/toolbar/back_forward_menu_controller.h" | 41 #import "chrome/browser/ui/cocoa/toolbar/back_forward_menu_controller.h" |
41 #import "chrome/browser/ui/cocoa/toolbar/reload_button_cocoa.h" | 42 #import "chrome/browser/ui/cocoa/toolbar/reload_button_cocoa.h" |
42 #import "chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.h" | 43 #import "chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.h" |
43 #import "chrome/browser/ui/cocoa/toolbar/toolbar_view_cocoa.h" | 44 #import "chrome/browser/ui/cocoa/toolbar/toolbar_view_cocoa.h" |
44 #import "chrome/browser/ui/cocoa/toolbar/wrench_toolbar_button_cell.h" | 45 #import "chrome/browser/ui/cocoa/toolbar/wrench_toolbar_button_cell.h" |
45 #import "chrome/browser/ui/cocoa/view_id_util.h" | 46 #import "chrome/browser/ui/cocoa/view_id_util.h" |
46 #import "chrome/browser/ui/cocoa/wrench_menu/wrench_menu_controller.h" | |
47 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 47 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
48 #include "chrome/browser/ui/toolbar/app_menu_badge_controller.h" | 48 #include "chrome/browser/ui/toolbar/app_menu_badge_controller.h" |
49 #include "chrome/browser/ui/toolbar/app_menu_model.h" | 49 #include "chrome/browser/ui/toolbar/app_menu_model.h" |
50 #include "chrome/common/pref_names.h" | 50 #include "chrome/common/pref_names.h" |
51 #include "chrome/grit/chromium_strings.h" | 51 #include "chrome/grit/chromium_strings.h" |
52 #include "chrome/grit/generated_resources.h" | 52 #include "chrome/grit/generated_resources.h" |
53 #include "components/metrics/proto/omnibox_event.pb.h" | 53 #include "components/metrics/proto/omnibox_event.pb.h" |
54 #include "components/omnibox/browser/autocomplete_classifier.h" | 54 #include "components/omnibox/browser/autocomplete_classifier.h" |
55 #include "components/omnibox/browser/autocomplete_match.h" | 55 #include "components/omnibox/browser/autocomplete_match.h" |
56 #include "components/omnibox/browser/omnibox_view.h" | 56 #include "components/omnibox/browser/omnibox_view.h" |
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 - (void)browserWillBeDestroyed { | 388 - (void)browserWillBeDestroyed { |
389 // Clear resize delegate so it doesn't get called during stopAnimation, and | 389 // Clear resize delegate so it doesn't get called during stopAnimation, and |
390 // stop any in-flight animation. | 390 // stop any in-flight animation. |
391 [[self toolbarView] setResizeDelegate:nil]; | 391 [[self toolbarView] setResizeDelegate:nil]; |
392 [[self toolbarView] stopAnimation]; | 392 [[self toolbarView] stopAnimation]; |
393 | 393 |
394 // Pass this call onto other reference counted objects. | 394 // Pass this call onto other reference counted objects. |
395 [backMenuController_ browserWillBeDestroyed]; | 395 [backMenuController_ browserWillBeDestroyed]; |
396 [forwardMenuController_ browserWillBeDestroyed]; | 396 [forwardMenuController_ browserWillBeDestroyed]; |
397 [browserActionsController_ browserWillBeDestroyed]; | 397 [browserActionsController_ browserWillBeDestroyed]; |
398 [wrenchMenuController_ browserWillBeDestroyed]; | 398 [appMenuController_ browserWillBeDestroyed]; |
399 | 399 |
400 [self cleanUp]; | 400 [self cleanUp]; |
401 } | 401 } |
402 | 402 |
403 - (void)cleanUp { | 403 - (void)cleanUp { |
404 // Unset ViewIDs of toolbar elements. | 404 // Unset ViewIDs of toolbar elements. |
405 // ViewIDs of |toolbarView|, |reloadButton_|, |locationBar_| and | 405 // ViewIDs of |toolbarView|, |reloadButton_|, |locationBar_| and |
406 // |browserActionsContainerView_| are handled by themselves. | 406 // |browserActionsContainerView_| are handled by themselves. |
407 view_id_util::UnsetID(backButton_); | 407 view_id_util::UnsetID(backButton_); |
408 view_id_util::UnsetID(forwardButton_); | 408 view_id_util::UnsetID(forwardButton_); |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 - (void)setStarredState:(BOOL)isStarred { | 557 - (void)setStarredState:(BOOL)isStarred { |
558 locationBarView_->SetStarred(isStarred); | 558 locationBarView_->SetStarred(isStarred); |
559 } | 559 } |
560 | 560 |
561 - (void)setTranslateIconLit:(BOOL)on { | 561 - (void)setTranslateIconLit:(BOOL)on { |
562 locationBarView_->SetTranslateIconLit(on); | 562 locationBarView_->SetTranslateIconLit(on); |
563 } | 563 } |
564 | 564 |
565 - (void)zoomChangedForActiveTab:(BOOL)canShowBubble { | 565 - (void)zoomChangedForActiveTab:(BOOL)canShowBubble { |
566 locationBarView_->ZoomChangedForActiveTab( | 566 locationBarView_->ZoomChangedForActiveTab( |
567 canShowBubble && ![wrenchMenuController_ isMenuOpen]); | 567 canShowBubble && ![appMenuController_ isMenuOpen]); |
568 } | 568 } |
569 | 569 |
570 - (void)setIsLoading:(BOOL)isLoading force:(BOOL)force { | 570 - (void)setIsLoading:(BOOL)isLoading force:(BOOL)force { |
571 [reloadButton_ setIsLoading:isLoading force:force]; | 571 [reloadButton_ setIsLoading:isLoading force:force]; |
572 } | 572 } |
573 | 573 |
574 - (void)setHasToolbar:(BOOL)toolbar hasLocationBar:(BOOL)locBar { | 574 - (void)setHasToolbar:(BOOL)toolbar hasLocationBar:(BOOL)locBar { |
575 [self view]; // Force nib loading. | 575 [self view]; // Force nib loading. |
576 | 576 |
577 hasToolbar_ = toolbar; | 577 hasToolbar_ = toolbar; |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
656 moveX *= -1; // Reverse the direction of the move. | 656 moveX *= -1; // Reverse the direction of the move. |
657 | 657 |
658 [locationBar_ setFrame:[self adjustRect:[locationBar_ frame] | 658 [locationBar_ setFrame:[self adjustRect:[locationBar_ frame] |
659 byAmount:moveX]]; | 659 byAmount:moveX]]; |
660 [homeButton_ setHidden:hide]; | 660 [homeButton_ setHidden:hide]; |
661 } | 661 } |
662 | 662 |
663 // Install the menu wrench buttons. Calling this repeatedly is inexpensive so it | 663 // Install the menu wrench buttons. Calling this repeatedly is inexpensive so it |
664 // can be done every time the buttons are shown. | 664 // can be done every time the buttons are shown. |
665 - (void)installWrenchMenu { | 665 - (void)installWrenchMenu { |
666 if (wrenchMenuController_.get()) | 666 if (appMenuController_.get()) |
667 return; | 667 return; |
668 | 668 |
669 wrenchMenuController_.reset( | 669 appMenuController_.reset( |
670 [[WrenchMenuController alloc] initWithBrowser:browser_]); | 670 [[AppMenuController alloc] initWithBrowser:browser_]); |
671 [wrenchMenuController_ setUseWithPopUpButtonCell:YES]; | 671 [appMenuController_ setUseWithPopUpButtonCell:YES]; |
672 [wrenchButton_ setAttachedMenu:[wrenchMenuController_ menu]]; | 672 [wrenchButton_ setAttachedMenu:[appMenuController_ menu]]; |
673 } | 673 } |
674 | 674 |
675 - (void)updateWrenchButtonSeverity:(AppMenuIconPainter::Severity)severity | 675 - (void)updateWrenchButtonSeverity:(AppMenuIconPainter::Severity)severity |
676 animate:(BOOL)animate { | 676 animate:(BOOL)animate { |
677 WrenchToolbarButtonCell* cell = | 677 WrenchToolbarButtonCell* cell = |
678 base::mac::ObjCCastStrict<WrenchToolbarButtonCell>([wrenchButton_ cell]); | 678 base::mac::ObjCCastStrict<WrenchToolbarButtonCell>([wrenchButton_ cell]); |
679 [cell setSeverity:severity shouldAnimate:animate]; | 679 [cell setSeverity:severity shouldAnimate:animate]; |
680 } | 680 } |
681 | 681 |
682 - (void)prefChanged:(const std::string&)prefName { | 682 - (void)prefChanged:(const std::string&)prefName { |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
875 } | 875 } |
876 | 876 |
877 - (NSPoint)bookmarkBubblePoint { | 877 - (NSPoint)bookmarkBubblePoint { |
878 if (locationBarView_->IsStarEnabled()) | 878 if (locationBarView_->IsStarEnabled()) |
879 return locationBarView_->GetBookmarkBubblePoint(); | 879 return locationBarView_->GetBookmarkBubblePoint(); |
880 | 880 |
881 // Grab bottom middle of hotdogs. | 881 // Grab bottom middle of hotdogs. |
882 NSRect frame = wrenchButton_.frame; | 882 NSRect frame = wrenchButton_.frame; |
883 NSPoint point = NSMakePoint(NSMidX(frame), NSMinY(frame)); | 883 NSPoint point = NSMakePoint(NSMidX(frame), NSMinY(frame)); |
884 // Inset to account for the whitespace around the hotdogs. | 884 // Inset to account for the whitespace around the hotdogs. |
885 point.y += wrench_menu_controller::kWrenchBubblePointOffsetY; | 885 point.y += app_menu_controller::kAppMenuBubblePointOffsetY; |
886 return [self.view convertPoint:point toView:nil]; | 886 return [self.view convertPoint:point toView:nil]; |
887 } | 887 } |
888 | 888 |
889 - (NSPoint)managePasswordsBubblePoint { | 889 - (NSPoint)managePasswordsBubblePoint { |
890 return locationBarView_->GetManagePasswordsBubblePoint(); | 890 return locationBarView_->GetManagePasswordsBubblePoint(); |
891 } | 891 } |
892 | 892 |
893 - (NSPoint)translateBubblePoint { | 893 - (NSPoint)translateBubblePoint { |
894 return locationBarView_->GetTranslateBubblePoint(); | 894 return locationBarView_->GetTranslateBubblePoint(); |
895 } | 895 } |
(...skipping 14 matching lines...) Expand all Loading... |
910 } | 910 } |
911 | 911 |
912 - (BrowserActionsController*)browserActionsController { | 912 - (BrowserActionsController*)browserActionsController { |
913 return browserActionsController_.get(); | 913 return browserActionsController_.get(); |
914 } | 914 } |
915 | 915 |
916 - (NSView*)wrenchButton { | 916 - (NSView*)wrenchButton { |
917 return wrenchButton_; | 917 return wrenchButton_; |
918 } | 918 } |
919 | 919 |
920 - (WrenchMenuController*)wrenchMenuController { | 920 - (AppMenuController*)appMenuController { |
921 return wrenchMenuController_.get(); | 921 return appMenuController_.get(); |
922 } | 922 } |
923 | 923 |
924 // (URLDropTargetController protocol) | 924 // (URLDropTargetController protocol) |
925 - (void)dropURLs:(NSArray*)urls inView:(NSView*)view at:(NSPoint)point { | 925 - (void)dropURLs:(NSArray*)urls inView:(NSView*)view at:(NSPoint)point { |
926 // TODO(viettrungluu): This code is more or less copied from the code in | 926 // TODO(viettrungluu): This code is more or less copied from the code in |
927 // |TabStripController|. I'll refactor this soon to make it common and expand | 927 // |TabStripController|. I'll refactor this soon to make it common and expand |
928 // its capabilities (e.g., allow text DnD). | 928 // its capabilities (e.g., allow text DnD). |
929 if ([urls count] < 1) { | 929 if ([urls count] < 1) { |
930 NOTREACHED(); | 930 NOTREACHED(); |
931 return; | 931 return; |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
975 - (void)hideDropURLsIndicatorInView:(NSView*)view { | 975 - (void)hideDropURLsIndicatorInView:(NSView*)view { |
976 // Do nothing. | 976 // Do nothing. |
977 } | 977 } |
978 | 978 |
979 // (URLDropTargetController protocol) | 979 // (URLDropTargetController protocol) |
980 - (BOOL)isUnsupportedDropData:(id<NSDraggingInfo>)info { | 980 - (BOOL)isUnsupportedDropData:(id<NSDraggingInfo>)info { |
981 return drag_util::IsUnsupportedDropData(profile_, info); | 981 return drag_util::IsUnsupportedDropData(profile_, info); |
982 } | 982 } |
983 | 983 |
984 @end | 984 @end |
OLD | NEW |