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