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