selected_keyword_view.h revision 4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7
1// Copyright (c) 2010 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_SELECTED_KEYWORD_VIEW_H_ 6#define CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_SELECTED_KEYWORD_VIEW_H_ 7#pragma once 8 9#include <string> 10 11#include "chrome/browser/views/location_bar/icon_label_bubble_view.h" 12#include "views/controls/label.h" 13 14class Profile; 15namespace gfx { 16class Font; 17class Size; 18} 19 20// SelectedKeywordView displays the tab-to-search UI in the location bar view. 21class SelectedKeywordView : public IconLabelBubbleView { 22 public: 23 SelectedKeywordView(const int background_images[], 24 int contained_image, 25 const SkColor& color, 26 Profile* profile); 27 virtual ~SelectedKeywordView(); 28 29 void SetFont(const gfx::Font& font); 30 31 virtual gfx::Size GetPreferredSize(); 32 virtual gfx::Size GetMinimumSize(); 33 virtual void Layout(); 34 35 // The current keyword, or an empty string if no keyword is displayed. 36 void SetKeyword(const std::wstring& keyword); 37 std::wstring keyword() const { return keyword_; } 38 39 void set_profile(Profile* profile) { profile_ = profile; } 40 41 private: 42 // The keyword we're showing. If empty, no keyword is selected. 43 // NOTE: we don't cache the TemplateURL as it is possible for it to get 44 // deleted out from under us. 45 std::wstring keyword_; 46 47 // These labels are never visible. They are used to size the view. One 48 // label contains the complete description of the keyword, the second 49 // contains a truncated version of the description, for if there is not 50 // enough room to display the complete description. 51 views::Label full_label_; 52 views::Label partial_label_; 53 54 Profile* profile_; 55 56 DISALLOW_IMPLICIT_CONSTRUCTORS(SelectedKeywordView); 57}; 58 59#endif // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_SELECTED_KEYWORD_VIEW_H_ 60