12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CHROME_COMMON_SEARCH_TYPES_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CHROME_COMMON_SEARCH_TYPES_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// The Mode structure encodes the visual states encountered when interacting 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// with the NTP and the Omnibox. 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)struct SearchMode { 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The visual state that applies to the current interaction. 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) enum Type { 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The default state means anything but the following states. 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MODE_DEFAULT, 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // On the NTP page and the NTP is ready to be displayed. 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MODE_NTP, 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The Omnibox is modified in some way, either on the NTP or not. 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MODE_SEARCH_SUGGESTIONS, 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // On a search results page. 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MODE_SEARCH_RESULTS, 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) }; 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The kind of page from which the user initiated the current search. 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) enum Origin { 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The user is searching from some random page. 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ORIGIN_DEFAULT = 0, 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The user is searching from the NTP. 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ORIGIN_NTP, 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The user is searching from a search results page. 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ORIGIN_SEARCH, 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) }; 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SearchMode() : mode(MODE_DEFAULT), origin(ORIGIN_DEFAULT) { 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SearchMode(Type in_mode, Origin in_origin) 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) : mode(in_mode), 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) origin(in_origin) { 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool operator==(const SearchMode& rhs) const { 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mode == rhs.mode && origin == rhs.origin; 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool operator!=(const SearchMode& rhs) const { 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return !(*this == rhs); 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool is_default() const { 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mode == MODE_DEFAULT; 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool is_ntp() const { 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mode == MODE_NTP; 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool is_search() const { 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mode == MODE_SEARCH_SUGGESTIONS || mode == MODE_SEARCH_RESULTS; 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool is_search_results() const { 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mode == MODE_SEARCH_RESULTS; 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool is_search_suggestions() const { 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mode == MODE_SEARCH_SUGGESTIONS; 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool is_origin_default() const { 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return origin == ORIGIN_DEFAULT; 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool is_origin_search() const { 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return origin == ORIGIN_SEARCH; 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool is_origin_ntp() const { 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return origin == ORIGIN_NTP; 842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Type mode; 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Origin origin; 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // CHROME_COMMON_SEARCH_TYPES_H_ 91