| // 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 CHROME_COMMON_SEARCH_TYPES_H_ |
| #define CHROME_COMMON_SEARCH_TYPES_H_ |
| |
| // The Mode structure encodes the visual states encountered when interacting |
| // with the NTP and the Omnibox. |
| struct SearchMode { |
| // The visual state that applies to the current interaction. |
| enum Type { |
| // The default state means anything but the following states. |
| MODE_DEFAULT, |
| |
| // On the NTP page and the NTP is ready to be displayed. |
| MODE_NTP, |
| |
| // The Omnibox is modified in some way, either on the NTP or not. |
| MODE_SEARCH_SUGGESTIONS, |
| |
| // On a search results page. |
| MODE_SEARCH_RESULTS, |
| }; |
| |
| // The kind of page from which the user initiated the current search. |
| enum Origin { |
| // The user is searching from some random page. |
| ORIGIN_DEFAULT = 0, |
| |
| // The user is searching from the NTP. |
| ORIGIN_NTP, |
| |
| // The user is searching from a search results page. |
| ORIGIN_SEARCH, |
| }; |
| |
| SearchMode() : mode(MODE_DEFAULT), origin(ORIGIN_DEFAULT) { |
| } |
| |
| SearchMode(Type in_mode, Origin in_origin) |
| : mode(in_mode), |
| origin(in_origin) { |
| } |
| |
| bool operator==(const SearchMode& rhs) const { |
| return mode == rhs.mode && origin == rhs.origin; |
| } |
| |
| bool operator!=(const SearchMode& rhs) const { |
| return !(*this == rhs); |
| } |
| |
| bool is_default() const { |
| return mode == MODE_DEFAULT; |
| } |
| |
| bool is_ntp() const { |
| return mode == MODE_NTP; |
| } |
| |
| bool is_search() const { |
| return mode == MODE_SEARCH_SUGGESTIONS || mode == MODE_SEARCH_RESULTS; |
| } |
| |
| bool is_search_results() const { |
| return mode == MODE_SEARCH_RESULTS; |
| } |
| |
| bool is_search_suggestions() const { |
| return mode == MODE_SEARCH_SUGGESTIONS; |
| } |
| |
| bool is_origin_default() const { |
| return origin == ORIGIN_DEFAULT; |
| } |
| |
| bool is_origin_search() const { |
| return origin == ORIGIN_SEARCH; |
| } |
| |
| bool is_origin_ntp() const { |
| return origin == ORIGIN_NTP; |
| } |
| |
| Type mode; |
| Origin origin; |
| }; |
| |
| #endif // CHROME_COMMON_SEARCH_TYPES_H_ |