keyword_hint_view.h revision d0247b1b59f9c528cb6df88b4f2b9afaf80d181e
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 14class Profile; 15 16namespace gfx { 17class FontList; 18} 19 20namespace views { 21class ImageView; 22class 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. 33class KeywordHintView : public views::View { 34 public: 35 KeywordHintView(Profile* profile, 36 const gfx::FontList& font_list, 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::FontList& font_list, 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