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/location_bar/location_bar_view_mac.h" | 5 #import "chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 field_(field), | 92 field_(field), |
93 disposition_(CURRENT_TAB), | 93 disposition_(CURRENT_TAB), |
94 location_icon_decoration_(new LocationIconDecoration(this)), | 94 location_icon_decoration_(new LocationIconDecoration(this)), |
95 selected_keyword_decoration_( | 95 selected_keyword_decoration_( |
96 new SelectedKeywordDecoration(OmniboxViewMac::GetFieldFont())), | 96 new SelectedKeywordDecoration(OmniboxViewMac::GetFieldFont())), |
97 ev_bubble_decoration_( | 97 ev_bubble_decoration_( |
98 new EVBubbleDecoration(location_icon_decoration_.get(), | 98 new EVBubbleDecoration(location_icon_decoration_.get(), |
99 OmniboxViewMac::GetFieldFont())), | 99 OmniboxViewMac::GetFieldFont())), |
100 plus_decoration_(NULL), | 100 plus_decoration_(NULL), |
101 star_decoration_(new StarDecoration(command_updater)), | 101 star_decoration_(new StarDecoration(command_updater)), |
102 chrome_to_mobile_decoration_(nil), | 102 chrome_to_mobile_decoration_(NULL), |
103 keyword_hint_decoration_( | 103 keyword_hint_decoration_( |
104 new KeywordHintDecoration(OmniboxViewMac::GetFieldFont())), | 104 new KeywordHintDecoration(OmniboxViewMac::GetFieldFont())), |
105 profile_(profile), | 105 profile_(profile), |
106 browser_(browser), | 106 browser_(browser), |
107 toolbar_model_(toolbar_model), | 107 toolbar_model_(toolbar_model), |
108 transition_(content::PageTransitionFromInt( | 108 transition_(content::PageTransitionFromInt( |
109 content::PAGE_TRANSITION_TYPED | | 109 content::PAGE_TRANSITION_TYPED | |
110 content::PAGE_TRANSITION_FROM_ADDRESS_BAR)), | 110 content::PAGE_TRANSITION_FROM_ADDRESS_BAR)), |
111 weak_ptr_factory_(this) { | 111 weak_ptr_factory_(this) { |
112 // Disable Chrome To Mobile for off-the-record and non-synced profiles, | 112 // Disable Chrome To Mobile for off-the-record and non-synced profiles, |
113 // or if the feature is disabled by a command line flag or chrome://flags. | 113 // or if the feature is disabled by a command line flag or chrome://flags. |
114 if (!profile_->IsOffTheRecord() && profile_->IsSyncAccessible() && | 114 if (!profile_->IsOffTheRecord() && profile_->IsSyncAccessible() && |
115 ChromeToMobileService::IsChromeToMobileEnabled()) { | 115 ChromeToMobileService::IsChromeToMobileEnabled()) { |
116 command_updater_->AddCommandObserver(IDC_CHROME_TO_MOBILE_PAGE, this); | 116 command_updater_->AddCommandObserver(IDC_CHROME_TO_MOBILE_PAGE, this); |
117 chrome_to_mobile_decoration_.reset( | 117 chrome_to_mobile_decoration_.reset( |
118 new ChromeToMobileDecoration(profile, command_updater)); | 118 new ChromeToMobileDecoration(profile, command_updater)); |
119 ChromeToMobileServiceFactory::GetForProfile(profile)-> | 119 ChromeToMobileServiceFactory::GetForProfile(profile)-> |
120 RequestMobileListUpdate(); | 120 RequestMobileListUpdate(); |
121 } | 121 } |
122 | 122 |
123 if (extensions::switch_utils::IsActionBoxEnabled()) { | 123 if (extensions::switch_utils::IsActionBoxEnabled()) { |
124 plus_decoration_.reset(new PlusDecoration(command_updater)); | 124 plus_decoration_.reset(new PlusDecoration(this, command_updater, browser_)); |
125 } | 125 } |
126 | 126 |
127 for (size_t i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i) { | 127 for (size_t i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i) { |
128 DCHECK_EQ(i, content_setting_decorations_.size()); | 128 DCHECK_EQ(i, content_setting_decorations_.size()); |
129 ContentSettingsType type = static_cast<ContentSettingsType>(i); | 129 ContentSettingsType type = static_cast<ContentSettingsType>(i); |
130 content_setting_decorations_.push_back( | 130 content_setting_decorations_.push_back( |
131 new ContentSettingDecoration(type, this, profile_)); | 131 new ContentSettingDecoration(type, this, profile_)); |
132 } | 132 } |
133 | 133 |
134 registrar_.Add(this, | 134 registrar_.Add(this, |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
494 const NSPoint point = star_decoration_->GetBubblePointInFrame(frame); | 494 const NSPoint point = star_decoration_->GetBubblePointInFrame(frame); |
495 return [field_ convertPoint:point toView:nil]; | 495 return [field_ convertPoint:point toView:nil]; |
496 } | 496 } |
497 | 497 |
498 NSPoint LocationBarViewMac::GetChromeToMobileBubblePoint() const { | 498 NSPoint LocationBarViewMac::GetChromeToMobileBubblePoint() const { |
499 AutocompleteTextFieldCell* cell = [field_ cell]; | 499 AutocompleteTextFieldCell* cell = [field_ cell]; |
500 const NSRect frame = | 500 const NSRect frame = |
501 [cell frameForDecoration:chrome_to_mobile_decoration_.get() | 501 [cell frameForDecoration:chrome_to_mobile_decoration_.get() |
502 inFrame:[field_ bounds]]; | 502 inFrame:[field_ bounds]]; |
503 const NSPoint point = | 503 const NSPoint point = |
504 chrome_to_mobile_decoration_->GetBubblePointInFrame(frame); | 504 chrome_to_mobile_decoration_->GetBubblePointInFrame(frame); |
505 return [field_ convertPoint:point toView:nil]; | 505 return [field_ convertPoint:point toView:nil]; |
506 } | 506 } |
507 | 507 |
508 NSPoint LocationBarViewMac::GetPageInfoBubblePoint() const { | 508 NSPoint LocationBarViewMac::GetPageInfoBubblePoint() const { |
509 AutocompleteTextFieldCell* cell = [field_ cell]; | 509 AutocompleteTextFieldCell* cell = [field_ cell]; |
510 if (ev_bubble_decoration_->IsVisible()) { | 510 if (ev_bubble_decoration_->IsVisible()) { |
511 const NSRect frame = [cell frameForDecoration:ev_bubble_decoration_.get() | 511 const NSRect frame = [cell frameForDecoration:ev_bubble_decoration_.get() |
512 inFrame:[field_ bounds]]; | 512 inFrame:[field_ bounds]]; |
513 const NSPoint point = ev_bubble_decoration_->GetBubblePointInFrame(frame); | 513 const NSPoint point = ev_bubble_decoration_->GetBubblePointInFrame(frame); |
514 return [field_ convertPoint:point toView:nil]; | 514 return [field_ convertPoint:point toView:nil]; |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
727 void LocationBarViewMac::UpdateChromeToMobileEnabled() { | 727 void LocationBarViewMac::UpdateChromeToMobileEnabled() { |
728 if (!chrome_to_mobile_decoration_.get()) | 728 if (!chrome_to_mobile_decoration_.get()) |
729 return; | 729 return; |
730 | 730 |
731 DCHECK(ChromeToMobileService::IsChromeToMobileEnabled()); | 731 DCHECK(ChromeToMobileService::IsChromeToMobileEnabled()); |
732 bool enabled = [field_ isEditable] && !toolbar_model_->input_in_progress() && | 732 bool enabled = [field_ isEditable] && !toolbar_model_->input_in_progress() && |
733 ChromeToMobileServiceFactory::GetForProfile(profile_)->HasMobiles(); | 733 ChromeToMobileServiceFactory::GetForProfile(profile_)->HasMobiles(); |
734 chrome_to_mobile_decoration_->SetVisible(enabled); | 734 chrome_to_mobile_decoration_->SetVisible(enabled); |
735 command_updater_->UpdateCommandEnabled(IDC_CHROME_TO_MOBILE_PAGE, enabled); | 735 command_updater_->UpdateCommandEnabled(IDC_CHROME_TO_MOBILE_PAGE, enabled); |
736 } | 736 } |
OLD | NEW |