[go: nahoru, domu]

blob: c3ed74554aec0c1cee0cd4d1b0700c8a4e203c3b [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ASH_APP_LIST_MODEL_SEARCH_SEARCH_BOX_MODEL_H_
#define ASH_APP_LIST_MODEL_SEARCH_SEARCH_BOX_MODEL_H_
#include <memory>
#include <string>
#include "ash/app_list/model/app_list_model_export.h"
#include "base/macros.h"
#include "base/observer_list.h"
#include "base/strings/string16.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/gfx/selection_model.h"
namespace ash {
class SearchBoxModelObserver;
// SearchBoxModel provides the user entered text, and the system state that
// influences the search box behavior.
class APP_LIST_MODEL_EXPORT SearchBoxModel {
public:
SearchBoxModel();
~SearchBoxModel();
void SetTabletMode(bool is_tablet_mode);
bool is_tablet_mode() const { return is_tablet_mode_; }
void SetShowAssistantButton(bool show);
bool show_assistant_button() const { return show_assistant_button_; }
void SetSearchEngineIsGoogle(bool is_google);
bool search_engine_is_google() const { return search_engine_is_google_; }
// Sets/gets the text for the search box's Textfield and the voice search
// flag.
void Update(const std::u16string& text, bool initiated_by_user);
const std::u16string& text() const { return text_; }
void AddObserver(SearchBoxModelObserver* observer);
void RemoveObserver(SearchBoxModelObserver* observer);
private:
std::u16string text_;
bool search_engine_is_google_ = false;
bool is_tablet_mode_ = false;
bool show_assistant_button_ = false;
base::ObserverList<SearchBoxModelObserver> observers_;
DISALLOW_COPY_AND_ASSIGN(SearchBoxModel);
};
} // namespace ash
#endif // ASH_APP_LIST_MODEL_SEARCH_SEARCH_BOX_MODEL_H_