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/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 #import "chrome/browser/ui/cocoa/content_settings/content_setting_bubble_cocoa.h
" | 33 #import "chrome/browser/ui/cocoa/content_settings/content_setting_bubble_cocoa.h
" |
34 #import "chrome/browser/ui/cocoa/extensions/extension_popup_controller.h" | 34 #import "chrome/browser/ui/cocoa/extensions/extension_popup_controller.h" |
35 #import "chrome/browser/ui/cocoa/first_run_bubble_controller.h" | 35 #import "chrome/browser/ui/cocoa/first_run_bubble_controller.h" |
36 #import "chrome/browser/ui/cocoa/location_bar/autocomplete_text_field.h" | 36 #import "chrome/browser/ui/cocoa/location_bar/autocomplete_text_field.h" |
37 #import "chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_cell.h" | 37 #import "chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_cell.h" |
38 #import "chrome/browser/ui/cocoa/location_bar/content_setting_decoration.h" | 38 #import "chrome/browser/ui/cocoa/location_bar/content_setting_decoration.h" |
39 #import "chrome/browser/ui/cocoa/location_bar/ev_bubble_decoration.h" | 39 #import "chrome/browser/ui/cocoa/location_bar/ev_bubble_decoration.h" |
40 #import "chrome/browser/ui/cocoa/location_bar/keyword_hint_decoration.h" | 40 #import "chrome/browser/ui/cocoa/location_bar/keyword_hint_decoration.h" |
41 #import "chrome/browser/ui/cocoa/location_bar/location_icon_decoration.h" | 41 #import "chrome/browser/ui/cocoa/location_bar/location_icon_decoration.h" |
42 #import "chrome/browser/ui/cocoa/location_bar/manage_passwords_decoration.h" | 42 #import "chrome/browser/ui/cocoa/location_bar/manage_passwords_decoration.h" |
43 #import "chrome/browser/ui/cocoa/location_bar/mic_search_decoration.h" | |
44 #import "chrome/browser/ui/cocoa/location_bar/page_action_decoration.h" | 43 #import "chrome/browser/ui/cocoa/location_bar/page_action_decoration.h" |
45 #import "chrome/browser/ui/cocoa/location_bar/selected_keyword_decoration.h" | 44 #import "chrome/browser/ui/cocoa/location_bar/selected_keyword_decoration.h" |
46 #import "chrome/browser/ui/cocoa/location_bar/star_decoration.h" | 45 #import "chrome/browser/ui/cocoa/location_bar/star_decoration.h" |
47 #import "chrome/browser/ui/cocoa/location_bar/translate_decoration.h" | 46 #import "chrome/browser/ui/cocoa/location_bar/translate_decoration.h" |
48 #import "chrome/browser/ui/cocoa/location_bar/zoom_decoration.h" | 47 #import "chrome/browser/ui/cocoa/location_bar/zoom_decoration.h" |
49 #import "chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h" | 48 #import "chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h" |
50 #import "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h" | 49 #import "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h" |
51 #include "chrome/browser/ui/content_settings/content_setting_bubble_model.h" | 50 #include "chrome/browser/ui/content_settings/content_setting_bubble_model.h" |
52 #include "chrome/browser/ui/content_settings/content_setting_image_model.h" | 51 #include "chrome/browser/ui/content_settings/content_setting_image_model.h" |
53 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h" | 52 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h" |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 omnibox_view_(new OmniboxViewMac(this, profile, command_updater, field)), | 94 omnibox_view_(new OmniboxViewMac(this, profile, command_updater, field)), |
96 field_(field), | 95 field_(field), |
97 location_icon_decoration_(new LocationIconDecoration(this)), | 96 location_icon_decoration_(new LocationIconDecoration(this)), |
98 selected_keyword_decoration_(new SelectedKeywordDecoration()), | 97 selected_keyword_decoration_(new SelectedKeywordDecoration()), |
99 ev_bubble_decoration_( | 98 ev_bubble_decoration_( |
100 new EVBubbleDecoration(location_icon_decoration_.get())), | 99 new EVBubbleDecoration(location_icon_decoration_.get())), |
101 star_decoration_(new StarDecoration(command_updater)), | 100 star_decoration_(new StarDecoration(command_updater)), |
102 translate_decoration_(new TranslateDecoration(command_updater)), | 101 translate_decoration_(new TranslateDecoration(command_updater)), |
103 zoom_decoration_(new ZoomDecoration(this)), | 102 zoom_decoration_(new ZoomDecoration(this)), |
104 keyword_hint_decoration_(new KeywordHintDecoration()), | 103 keyword_hint_decoration_(new KeywordHintDecoration()), |
105 mic_search_decoration_(new MicSearchDecoration(command_updater)), | |
106 manage_passwords_decoration_( | 104 manage_passwords_decoration_( |
107 new ManagePasswordsDecoration(command_updater, this)), | 105 new ManagePasswordsDecoration(command_updater, this)), |
108 browser_(browser), | 106 browser_(browser), |
109 location_bar_visible_(true), | 107 location_bar_visible_(true), |
110 weak_ptr_factory_(this) { | 108 weak_ptr_factory_(this) { |
111 for (ContentSettingsType type : | 109 for (ContentSettingsType type : |
112 ContentSettingBubbleModel::GetSupportedBubbleTypes()) { | 110 ContentSettingBubbleModel::GetSupportedBubbleTypes()) { |
113 content_setting_decorations_.push_back( | 111 content_setting_decorations_.push_back( |
114 new ContentSettingDecoration(type, this, profile)); | 112 new ContentSettingDecoration(type, this, profile)); |
115 } | 113 } |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 [cell addRightDecoration:page_action_decorations_[i]]; | 401 [cell addRightDecoration:page_action_decorations_[i]]; |
404 } | 402 } |
405 | 403 |
406 for (ScopedVector<ContentSettingDecoration>::iterator i = | 404 for (ScopedVector<ContentSettingDecoration>::iterator i = |
407 content_setting_decorations_.begin(); | 405 content_setting_decorations_.begin(); |
408 i != content_setting_decorations_.end(); ++i) { | 406 i != content_setting_decorations_.end(); ++i) { |
409 [cell addRightDecoration:*i]; | 407 [cell addRightDecoration:*i]; |
410 } | 408 } |
411 | 409 |
412 [cell addRightDecoration:keyword_hint_decoration_.get()]; | 410 [cell addRightDecoration:keyword_hint_decoration_.get()]; |
413 [cell addRightDecoration:mic_search_decoration_.get()]; | |
414 | 411 |
415 // By default only the location icon is visible. | 412 // By default only the location icon is visible. |
416 location_icon_decoration_->SetVisible(true); | 413 location_icon_decoration_->SetVisible(true); |
417 selected_keyword_decoration_->SetVisible(false); | 414 selected_keyword_decoration_->SetVisible(false); |
418 ev_bubble_decoration_->SetVisible(false); | 415 ev_bubble_decoration_->SetVisible(false); |
419 keyword_hint_decoration_->SetVisible(false); | 416 keyword_hint_decoration_->SetVisible(false); |
420 | 417 |
421 // Get the keyword to use for keyword-search and hinting. | 418 // Get the keyword to use for keyword-search and hinting. |
422 const base::string16 keyword = omnibox_view_->model()->keyword(); | 419 const base::string16 keyword = omnibox_view_->model()->keyword(); |
423 base::string16 short_name; | 420 base::string16 short_name; |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
516 omnibox_view_->ResetTabState(contents); | 513 omnibox_view_->ResetTabState(contents); |
517 } | 514 } |
518 | 515 |
519 void LocationBarViewMac::Update(const WebContents* contents) { | 516 void LocationBarViewMac::Update(const WebContents* contents) { |
520 UpdateManagePasswordsIconAndBubble(); | 517 UpdateManagePasswordsIconAndBubble(); |
521 UpdateBookmarkStarVisibility(); | 518 UpdateBookmarkStarVisibility(); |
522 UpdateTranslateDecoration(); | 519 UpdateTranslateDecoration(); |
523 UpdateZoomDecoration(/*default_zoom_changed=*/false); | 520 UpdateZoomDecoration(/*default_zoom_changed=*/false); |
524 RefreshPageActionDecorations(); | 521 RefreshPageActionDecorations(); |
525 RefreshContentSettingsDecorations(); | 522 RefreshContentSettingsDecorations(); |
526 UpdateMicSearchDecorationVisibility(); | |
527 if (contents) | 523 if (contents) |
528 omnibox_view_->OnTabChanged(contents); | 524 omnibox_view_->OnTabChanged(contents); |
529 else | 525 else |
530 omnibox_view_->Update(); | 526 omnibox_view_->Update(); |
531 OnChanged(); | 527 OnChanged(); |
532 } | 528 } |
533 | 529 |
534 void LocationBarViewMac::UpdateWithoutTabRestore() { | 530 void LocationBarViewMac::UpdateWithoutTabRestore() { |
535 Update(nullptr); | 531 Update(nullptr); |
536 } | 532 } |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
577 profile())->GetTemplateURLForKeyword(keyword); | 573 profile())->GetTemplateURLForKeyword(keyword); |
578 if (template_url && | 574 if (template_url && |
579 (template_url->GetType() == TemplateURL::OMNIBOX_API_EXTENSION)) { | 575 (template_url->GetType() == TemplateURL::OMNIBOX_API_EXTENSION)) { |
580 return extensions::OmniboxAPI::Get(profile())-> | 576 return extensions::OmniboxAPI::Get(profile())-> |
581 GetOmniboxIcon(template_url->GetExtensionId()).AsNSImage(); | 577 GetOmniboxIcon(template_url->GetExtensionId()).AsNSImage(); |
582 } | 578 } |
583 | 579 |
584 return OmniboxViewMac::ImageForResource(IDR_OMNIBOX_SEARCH); | 580 return OmniboxViewMac::ImageForResource(IDR_OMNIBOX_SEARCH); |
585 } | 581 } |
586 | 582 |
587 void LocationBarViewMac::ModelChanged(const SearchModel::State& old_state, | |
588 const SearchModel::State& new_state) { | |
589 if (UpdateMicSearchDecorationVisibility()) | |
590 Layout(); | |
591 } | |
592 | |
593 void LocationBarViewMac::PostNotification(NSString* notification) { | 583 void LocationBarViewMac::PostNotification(NSString* notification) { |
594 [[NSNotificationCenter defaultCenter] postNotificationName:notification | 584 [[NSNotificationCenter defaultCenter] postNotificationName:notification |
595 object:[NSValue valueWithPointer:this]]; | 585 object:[NSValue valueWithPointer:this]]; |
596 } | 586 } |
597 | 587 |
598 PageActionDecoration* LocationBarViewMac::GetPageActionDecoration( | 588 PageActionDecoration* LocationBarViewMac::GetPageActionDecoration( |
599 ExtensionAction* page_action) { | 589 ExtensionAction* page_action) { |
600 DCHECK(page_action); | 590 DCHECK(page_action); |
601 for (size_t i = 0; i < page_action_decorations_.size(); ++i) { | 591 for (size_t i = 0; i < page_action_decorations_.size(); ++i) { |
602 if (page_action_decorations_[i]->GetPageAction() == page_action) | 592 if (page_action_decorations_[i]->GetPageAction() == page_action) |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
720 | 710 |
721 return zoom_decoration_->UpdateIfNecessary( | 711 return zoom_decoration_->UpdateIfNecessary( |
722 ui_zoom::ZoomController::FromWebContents(web_contents), | 712 ui_zoom::ZoomController::FromWebContents(web_contents), |
723 default_zoom_changed); | 713 default_zoom_changed); |
724 } | 714 } |
725 | 715 |
726 void LocationBarViewMac::OnDefaultZoomLevelChanged() { | 716 void LocationBarViewMac::OnDefaultZoomLevelChanged() { |
727 if (UpdateZoomDecoration(/*default_zoom_changed=*/true)) | 717 if (UpdateZoomDecoration(/*default_zoom_changed=*/true)) |
728 OnDecorationsChanged(); | 718 OnDecorationsChanged(); |
729 } | 719 } |
730 | |
731 bool LocationBarViewMac::UpdateMicSearchDecorationVisibility() { | |
732 bool is_visible = !GetToolbarModel()->input_in_progress() && | |
733 browser_->search_model()->voice_search_supported(); | |
734 if (mic_search_decoration_->IsVisible() == is_visible) | |
735 return false; | |
736 mic_search_decoration_->SetVisible(is_visible); | |
737 return true; | |
738 } | |
OLD | NEW |