Home | History | Annotate | Download | only in common
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_COMMON_INSTANT_TYPES_H_
      6 #define CHROME_COMMON_INSTANT_TYPES_H_
      7 
      8 #include <string>
      9 #include <utility>
     10 
     11 #include "base/basictypes.h"
     12 #include "base/strings/string16.h"
     13 #include "url/gurl.h"
     14 
     15 // ID used by Instant code to refer to objects (e.g. Autocomplete results, Most
     16 // Visited items) that the Instant page needs access to.
     17 typedef int InstantRestrictedID;
     18 
     19 // A wrapper to hold Instant suggested text and its metadata. Used to tell the
     20 // server what suggestion to prefetch.
     21 struct InstantSuggestion {
     22   InstantSuggestion();
     23   InstantSuggestion(const base::string16& in_text,
     24                     const std::string& in_metadata);
     25   ~InstantSuggestion();
     26 
     27   // Full suggested text.
     28   base::string16 text;
     29 
     30   // JSON metadata from the server response which produced this suggestion.
     31   std::string metadata;
     32 };
     33 
     34 // The alignment of the theme background image.
     35 enum ThemeBackgroundImageAlignment {
     36   THEME_BKGRND_IMAGE_ALIGN_CENTER,
     37   THEME_BKGRND_IMAGE_ALIGN_LEFT,
     38   THEME_BKGRND_IMAGE_ALIGN_TOP,
     39   THEME_BKGRND_IMAGE_ALIGN_RIGHT,
     40   THEME_BKGRND_IMAGE_ALIGN_BOTTOM,
     41 };
     42 
     43 // The tiling of the theme background image.
     44 enum ThemeBackgroundImageTiling {
     45   THEME_BKGRND_IMAGE_NO_REPEAT,
     46   THEME_BKGRND_IMAGE_REPEAT_X,
     47   THEME_BKGRND_IMAGE_REPEAT_Y,
     48   THEME_BKGRND_IMAGE_REPEAT,
     49 };
     50 
     51 // The RGBA color components for the text and links of the theme.
     52 struct RGBAColor {
     53   RGBAColor();
     54   ~RGBAColor();
     55 
     56   bool operator==(const RGBAColor& rhs) const;
     57 
     58   // The color in RGBA format where the R, G, B and A values
     59   // are between 0 and 255 inclusive and always valid.
     60   uint8 r;
     61   uint8 g;
     62   uint8 b;
     63   uint8 a;
     64 };
     65 
     66 // Theme background settings for the NTP.
     67 struct ThemeBackgroundInfo {
     68   ThemeBackgroundInfo();
     69   ~ThemeBackgroundInfo();
     70 
     71   bool operator==(const ThemeBackgroundInfo& rhs) const;
     72 
     73   // True if the default theme is selected.
     74   bool using_default_theme;
     75 
     76   // The theme background color in RGBA format always valid.
     77   RGBAColor background_color;
     78 
     79   // The theme text color in RGBA format.
     80   RGBAColor text_color;
     81 
     82   // The theme link color in RGBA format.
     83   RGBAColor link_color;
     84 
     85   // The theme text color light in RGBA format.
     86   RGBAColor text_color_light;
     87 
     88   // The theme color for the header in RGBA format.
     89   RGBAColor header_color;
     90 
     91   // The theme color for the section border in RGBA format.
     92   RGBAColor section_border_color;
     93 
     94   // The theme id for the theme background image.
     95   // Value is only valid if there's a custom theme background image.
     96   std::string theme_id;
     97 
     98   // The theme background image horizontal alignment is only valid if |theme_id|
     99   // is valid.
    100   ThemeBackgroundImageAlignment image_horizontal_alignment;
    101 
    102   // The theme background image vertical alignment is only valid if |theme_id|
    103   // is valid.
    104   ThemeBackgroundImageAlignment image_vertical_alignment;
    105 
    106   // The theme background image tiling is only valid if |theme_id| is valid.
    107   ThemeBackgroundImageTiling image_tiling;
    108 
    109   // The theme background image height.
    110   // Value is only valid if |theme_id| is valid.
    111   uint16 image_height;
    112 
    113   // True if theme has attribution logo.
    114   // Value is only valid if |theme_id| is valid.
    115   bool has_attribution;
    116 
    117   // True if theme has an alternate logo.
    118   bool logo_alternate;
    119 };
    120 
    121 struct InstantMostVisitedItem {
    122   // The URL of the Most Visited item.
    123   GURL url;
    124 
    125   // The title of the Most Visited page.  May be empty, in which case the |url|
    126   // is used as the title.
    127   base::string16 title;
    128 };
    129 
    130 // An InstantMostVisitedItem along with its assigned restricted ID.
    131 typedef std::pair<InstantRestrictedID, InstantMostVisitedItem>
    132     InstantMostVisitedItemIDPair;
    133 
    134 #endif  // CHROME_COMMON_INSTANT_TYPES_H_
    135