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