Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / app_list / search / search_resource_manager.cc
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/app_list/search/search_resource_manager.h"
6
7 #include "chrome/browser/ui/app_list/start_page_service.h"
8 #include "grit/components_scaled_resources.h"
9 #include "grit/generated_resources.h"
10 #include "grit/theme_resources.h"
11 #include "ui/app_list/search_box_model.h"
12 #include "ui/app_list/speech_ui_model.h"
13 #include "ui/base/l10n/l10n_util.h"
14 #include "ui/base/resource/resource_bundle.h"
15
16 namespace app_list {
17
18 SearchResourceManager::SearchResourceManager(Profile* profile,
19                                              SearchBoxModel* search_box,
20                                              SpeechUIModel* speech_ui)
21     : search_box_(search_box),
22       speech_ui_(speech_ui) {
23   speech_ui_->AddObserver(this);
24
25   ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
26   search_box_->SetIcon(*bundle.GetImageSkiaNamed(IDR_OMNIBOX_SEARCH));
27   StartPageService* service = StartPageService::Get(profile);
28   if (service && service->GetSpeechRecognitionContents()) {
29     search_box_->SetSpeechRecognitionButton(
30         scoped_ptr<SearchBoxModel::SpeechButtonProperty>(
31             new SearchBoxModel::SpeechButtonProperty(
32                 *bundle.GetImageSkiaNamed(IDR_OMNIBOX_MIC_SEARCH),
33                 l10n_util::GetStringUTF16(
34                     IDS_APP_LIST_HOTWORD_LISTENING),
35                 *bundle.GetImageSkiaNamed(IDR_APP_LIST_MIC_HOTWORD_OFF),
36                 l10n_util::GetStringUTF16(
37                     IDS_APP_LIST_START_SPEECH_RECOGNITION))));
38   }
39   OnSpeechRecognitionStateChanged(speech_ui_->state());
40 }
41
42 SearchResourceManager::~SearchResourceManager() {
43   speech_ui_->RemoveObserver(this);
44 }
45
46 void SearchResourceManager::OnSpeechRecognitionStateChanged(
47     SpeechRecognitionState new_state) {
48   search_box_->SetHintText(l10n_util::GetStringUTF16(
49       (new_state == SPEECH_RECOGNITION_HOTWORD_LISTENING) ?
50       IDS_SEARCH_BOX_HOTWORD_HINT : IDS_SEARCH_BOX_HINT));
51 }
52
53 }  // namespace app_list