Home | History | Annotate | Download | only in location_bar
      1 // Copyright (c) 2011 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_BROWSER_UI_VIEWS_LOCATION_BAR_KEYWORD_HINT_VIEW_H_
      6 #define CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_KEYWORD_HINT_VIEW_H_
      7 
      8 #include <string>
      9 
     10 #include "base/compiler_specific.h"
     11 #include "ui/gfx/size.h"
     12 #include "ui/views/view.h"
     13 
     14 class Profile;
     15 
     16 namespace gfx {
     17 class Font;
     18 }
     19 
     20 namespace views {
     21 class ImageView;
     22 class Label;
     23 }
     24 
     25 // KeywordHintView is used by the location bar view to display a hint to the
     26 // user when the selected url has a corresponding keyword.
     27 //
     28 // Internally KeywordHintView uses two labels to render the text, and draws
     29 // the tab image itself.
     30 //
     31 // NOTE: This should really be called LocationBarKeywordHintView, but I
     32 // couldn't bring myself to use such a long name.
     33 class KeywordHintView : public views::View {
     34  public:
     35   KeywordHintView(Profile* profile,
     36                   const gfx::Font& font,
     37                   int font_y_offset,
     38                   SkColor text_color,
     39                   SkColor background_color);
     40   virtual ~KeywordHintView();
     41 
     42   void SetKeyword(const string16& keyword);
     43   string16 keyword() const { return keyword_; }
     44 
     45   virtual gfx::Size GetPreferredSize() OVERRIDE;
     46   // The minimum size is just big enough to show the tab.
     47   virtual gfx::Size GetMinimumSize() OVERRIDE;
     48   virtual void Layout() OVERRIDE;
     49 
     50  private:
     51   views::Label* CreateLabel(const gfx::Font& font,
     52                             int font_y_offset,
     53                             SkColor text_color,
     54                             SkColor background_color);
     55 
     56   Profile* profile_;
     57   views::Label* leading_label_;
     58   views::ImageView* tab_image_;
     59   views::Label* trailing_label_;
     60   string16 keyword_;
     61 
     62   DISALLOW_COPY_AND_ASSIGN(KeywordHintView);
     63 };
     64 
     65 #endif  // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_KEYWORD_HINT_VIEW_H_
     66