OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 new SelectedKeywordDecoration(OmniboxViewMac::GetFieldFont())), | 101 new SelectedKeywordDecoration(OmniboxViewMac::GetFieldFont())), |
102 separator_decoration_(new SeparatorDecoration()), | 102 separator_decoration_(new SeparatorDecoration()), |
103 ev_bubble_decoration_( | 103 ev_bubble_decoration_( |
104 new EVBubbleDecoration(location_icon_decoration_.get(), | 104 new EVBubbleDecoration(location_icon_decoration_.get(), |
105 OmniboxViewMac::GetFieldFont())), | 105 OmniboxViewMac::GetFieldFont())), |
106 plus_decoration_(NULL), | 106 plus_decoration_(NULL), |
107 star_decoration_(new StarDecoration(command_updater)), | 107 star_decoration_(new StarDecoration(command_updater)), |
108 zoom_decoration_(new ZoomDecoration(toolbar_model)), | 108 zoom_decoration_(new ZoomDecoration(toolbar_model)), |
109 keyword_hint_decoration_( | 109 keyword_hint_decoration_( |
110 new KeywordHintDecoration(OmniboxViewMac::GetFieldFont())), | 110 new KeywordHintDecoration(OmniboxViewMac::GetFieldFont())), |
| 111 #if defined(ENABLE_WEB_INTENTS) |
111 web_intents_button_decoration_( | 112 web_intents_button_decoration_( |
112 new WebIntentsButtonDecoration(this, OmniboxViewMac::GetFieldFont())), | 113 new WebIntentsButtonDecoration(this, OmniboxViewMac::GetFieldFont())), |
| 114 #endif |
113 profile_(profile), | 115 profile_(profile), |
114 browser_(browser), | 116 browser_(browser), |
115 toolbar_model_(toolbar_model), | 117 toolbar_model_(toolbar_model), |
116 transition_(content::PageTransitionFromInt( | 118 transition_(content::PageTransitionFromInt( |
117 content::PAGE_TRANSITION_TYPED | | 119 content::PAGE_TRANSITION_TYPED | |
118 content::PAGE_TRANSITION_FROM_ADDRESS_BAR)), | 120 content::PAGE_TRANSITION_FROM_ADDRESS_BAR)), |
119 weak_ptr_factory_(this) { | 121 weak_ptr_factory_(this) { |
120 if (extensions::FeatureSwitch::action_box()->IsEnabled()) { | 122 if (extensions::FeatureSwitch::action_box()->IsEnabled()) { |
121 plus_decoration_.reset(new PlusDecoration(this, browser_)); | 123 plus_decoration_.reset(new PlusDecoration(this, browser_)); |
122 } | 124 } |
123 | 125 |
124 for (size_t i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i) { | 126 for (size_t i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i) { |
125 DCHECK_EQ(i, content_setting_decorations_.size()); | 127 DCHECK_EQ(i, content_setting_decorations_.size()); |
126 ContentSettingsType type = static_cast<ContentSettingsType>(i); | 128 ContentSettingsType type = static_cast<ContentSettingsType>(i); |
127 content_setting_decorations_.push_back( | 129 content_setting_decorations_.push_back( |
128 new ContentSettingDecoration(type, this, profile_)); | 130 new ContentSettingDecoration(type, this, profile_)); |
129 } | 131 } |
130 | 132 |
| 133 #if defined(ENABLE_WEB_INTENTS) |
131 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | 134 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
132 web_intents_button_decoration_->SetButtonImages( | 135 web_intents_button_decoration_->SetButtonImages( |
133 rb.GetNativeImageNamed(IDR_OMNIBOX_WI_BUBBLE_BACKGROUND_L).ToNSImage(), | 136 rb.GetNativeImageNamed(IDR_OMNIBOX_WI_BUBBLE_BACKGROUND_L).ToNSImage(), |
134 rb.GetNativeImageNamed(IDR_OMNIBOX_WI_BUBBLE_BACKGROUND_C).ToNSImage(), | 137 rb.GetNativeImageNamed(IDR_OMNIBOX_WI_BUBBLE_BACKGROUND_C).ToNSImage(), |
135 rb.GetNativeImageNamed(IDR_OMNIBOX_WI_BUBBLE_BACKGROUND_R).ToNSImage()); | 138 rb.GetNativeImageNamed(IDR_OMNIBOX_WI_BUBBLE_BACKGROUND_R).ToNSImage()); |
| 139 #endif |
136 | 140 |
137 registrar_.Add(this, | 141 registrar_.Add(this, |
138 chrome::NOTIFICATION_EXTENSION_PAGE_ACTION_VISIBILITY_CHANGED, | 142 chrome::NOTIFICATION_EXTENSION_PAGE_ACTION_VISIBILITY_CHANGED, |
139 content::NotificationService::AllSources()); | 143 content::NotificationService::AllSources()); |
140 registrar_.Add(this, | 144 registrar_.Add(this, |
141 chrome::NOTIFICATION_EXTENSION_LOCATION_BAR_UPDATED, | 145 chrome::NOTIFICATION_EXTENSION_LOCATION_BAR_UPDATED, |
142 content::Source<Profile>(browser_->profile())); | 146 content::Source<Profile>(browser_->profile())); |
143 | 147 |
144 edit_bookmarks_enabled_.Init( | 148 edit_bookmarks_enabled_.Init( |
145 prefs::kEditBookmarksEnabled, | 149 prefs::kEditBookmarksEnabled, |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 DeletePageActionDecorations(); | 239 DeletePageActionDecorations(); |
236 Layout(); | 240 Layout(); |
237 if (page_action_decorations_.size() != count_before) { | 241 if (page_action_decorations_.size() != count_before) { |
238 content::NotificationService::current()->Notify( | 242 content::NotificationService::current()->Notify( |
239 chrome::NOTIFICATION_EXTENSION_PAGE_ACTION_COUNT_CHANGED, | 243 chrome::NOTIFICATION_EXTENSION_PAGE_ACTION_COUNT_CHANGED, |
240 content::Source<LocationBar>(this), | 244 content::Source<LocationBar>(this), |
241 content::NotificationService::NoDetails()); | 245 content::NotificationService::NoDetails()); |
242 } | 246 } |
243 } | 247 } |
244 | 248 |
| 249 #if defined(ENABLE_WEB_INTENTS) |
245 void LocationBarViewMac::UpdateWebIntentsButton() { | 250 void LocationBarViewMac::UpdateWebIntentsButton() { |
246 RefreshWebIntentsButtonDecoration(); | 251 RefreshWebIntentsButtonDecoration(); |
247 } | 252 } |
| 253 #endif |
248 | 254 |
249 void LocationBarViewMac::UpdateOpenPDFInReaderPrompt() { | 255 void LocationBarViewMac::UpdateOpenPDFInReaderPrompt() { |
250 // Not implemented on Mac. | 256 // Not implemented on Mac. |
251 } | 257 } |
252 | 258 |
253 void LocationBarViewMac::SaveStateToContents(WebContents* contents) { | 259 void LocationBarViewMac::SaveStateToContents(WebContents* contents) { |
254 // TODO(shess): Why SaveStateToContents vs SaveStateToTab? | 260 // TODO(shess): Why SaveStateToContents vs SaveStateToTab? |
255 omnibox_view_->SaveStateToTab(contents); | 261 omnibox_view_->SaveStateToTab(contents); |
256 } | 262 } |
257 | 263 |
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
660 | 666 |
661 GURL url = toolbar_model_->GetURL(); | 667 GURL url = toolbar_model_->GetURL(); |
662 for (size_t i = 0; i < page_action_decorations_.size(); ++i) { | 668 for (size_t i = 0; i < page_action_decorations_.size(); ++i) { |
663 page_action_decorations_[i]->UpdateVisibility( | 669 page_action_decorations_[i]->UpdateVisibility( |
664 toolbar_model_->GetInputInProgress() ? NULL : web_contents, | 670 toolbar_model_->GetInputInProgress() ? NULL : web_contents, |
665 url); | 671 url); |
666 } | 672 } |
667 } | 673 } |
668 | 674 |
669 void LocationBarViewMac::RefreshWebIntentsButtonDecoration() { | 675 void LocationBarViewMac::RefreshWebIntentsButtonDecoration() { |
| 676 #if defined(ENABLE_WEB_INTENTS) |
670 WebContents* web_contents = GetWebContents(); | 677 WebContents* web_contents = GetWebContents(); |
671 if (!web_contents) { | 678 if (!web_contents) { |
672 web_intents_button_decoration_->SetVisible(false); | 679 web_intents_button_decoration_->SetVisible(false); |
673 return; | 680 return; |
674 } | 681 } |
675 | 682 |
676 web_intents_button_decoration_->Update(web_contents); | 683 web_intents_button_decoration_->Update(web_contents); |
| 684 #endif |
677 } | 685 } |
678 | 686 |
679 // TODO(shess): This function should over time grow to closely match | 687 // TODO(shess): This function should over time grow to closely match |
680 // the views Layout() function. | 688 // the views Layout() function. |
681 void LocationBarViewMac::Layout() { | 689 void LocationBarViewMac::Layout() { |
682 AutocompleteTextFieldCell* cell = [field_ cell]; | 690 AutocompleteTextFieldCell* cell = [field_ cell]; |
683 | 691 |
684 // Reset the left-hand decorations. | 692 // Reset the left-hand decorations. |
685 // TODO(shess): Shortly, this code will live somewhere else, like in | 693 // TODO(shess): Shortly, this code will live somewhere else, like in |
686 // the constructor. I am still wrestling with how best to deal with | 694 // the constructor. I am still wrestling with how best to deal with |
(...skipping 11 matching lines...) Expand all Loading... |
698 // Note that display order is right to left. | 706 // Note that display order is right to left. |
699 for (size_t i = 0; i < page_action_decorations_.size(); ++i) { | 707 for (size_t i = 0; i < page_action_decorations_.size(); ++i) { |
700 [cell addRightDecoration:page_action_decorations_[i]]; | 708 [cell addRightDecoration:page_action_decorations_[i]]; |
701 } | 709 } |
702 for (size_t i = 0; i < content_setting_decorations_.size(); ++i) { | 710 for (size_t i = 0; i < content_setting_decorations_.size(); ++i) { |
703 [cell addRightDecoration:content_setting_decorations_[i]]; | 711 [cell addRightDecoration:content_setting_decorations_[i]]; |
704 } | 712 } |
705 | 713 |
706 [cell addRightDecoration:keyword_hint_decoration_.get()]; | 714 [cell addRightDecoration:keyword_hint_decoration_.get()]; |
707 | 715 |
| 716 #if defined(ENABLE_WEB_INTENTS) |
708 [cell addRightDecoration:web_intents_button_decoration_.get()]; | 717 [cell addRightDecoration:web_intents_button_decoration_.get()]; |
| 718 #endif |
| 719 |
709 [cell addRightDecoration:separator_decoration_.get()]; | 720 [cell addRightDecoration:separator_decoration_.get()]; |
710 [cell addRightDecoration:search_token_decoration_.get()]; | 721 [cell addRightDecoration:search_token_decoration_.get()]; |
711 | 722 |
712 // By default only the location icon is visible. | 723 // By default only the location icon is visible. |
713 location_icon_decoration_->SetVisible(true); | 724 location_icon_decoration_->SetVisible(true); |
714 selected_keyword_decoration_->SetVisible(false); | 725 selected_keyword_decoration_->SetVisible(false); |
715 ev_bubble_decoration_->SetVisible(false); | 726 ev_bubble_decoration_->SetVisible(false); |
716 keyword_hint_decoration_->SetVisible(false); | 727 keyword_hint_decoration_->SetVisible(false); |
717 separator_decoration_->SetVisible(false); | 728 separator_decoration_->SetVisible(false); |
718 search_token_decoration_->SetVisible(false); | 729 search_token_decoration_->SetVisible(false); |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
809 if (!toolbar_model_->GetInputInProgress() && | 820 if (!toolbar_model_->GetInputInProgress() && |
810 toolbar_model_->WouldReplaceSearchURLWithSearchTerms()) { | 821 toolbar_model_->WouldReplaceSearchURLWithSearchTerms()) { |
811 const TemplateURL* template_url = | 822 const TemplateURL* template_url = |
812 TemplateURLServiceFactory::GetForProfile(profile_)-> | 823 TemplateURLServiceFactory::GetForProfile(profile_)-> |
813 GetDefaultSearchProvider(); | 824 GetDefaultSearchProvider(); |
814 if (template_url) | 825 if (template_url) |
815 return template_url->short_name(); | 826 return template_url->short_name(); |
816 } | 827 } |
817 return string16(); | 828 return string16(); |
818 } | 829 } |
OLD | NEW |