ev_bubble_view.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
1// Copyright (c) 2012 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_EV_BUBBLE_VIEW_H_
6#define CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_EV_BUBBLE_VIEW_H_
7
8#include "chrome/browser/ui/views/location_bar/icon_label_bubble_view.h"
9#include "chrome/browser/ui/views/location_bar/page_info_helper.h"
10
11class LocationBarView;
12
13// EVBubbleView displays the EV Bubble in the LocationBarView.
14class EVBubbleView : public IconLabelBubbleView {
15 public:
16  EVBubbleView(const gfx::FontList& font_list,
17               SkColor text_color,
18               SkColor parent_background_color,
19               LocationBarView* parent);
20  virtual ~EVBubbleView();
21
22  // IconLabelBubbleView:
23  virtual gfx::Size GetMinimumSize() const OVERRIDE;
24  virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE;
25  virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE;
26  virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE;
27
28  // Returns what the minimum size would be if the label text were |text|.
29  gfx::Size GetMinimumSizeForLabelText(const base::string16& text) const;
30
31 private:
32  // Returns what the minimum size would be if the preferred size were |size|.
33  gfx::Size GetMinimumSizeForPreferredSize(gfx::Size size) const;
34
35  PageInfoHelper page_info_helper_;
36
37  DISALLOW_COPY_AND_ASSIGN(EVBubbleView);
38};
39
40#endif  // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_EV_BUBBLE_VIEW_H_
41