ev_bubble_view.cc revision a36e5920737c6adbddd3e43b760e5de8431db6e0
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// Copyright (c) 2012 The Chromium Authors. All rights reserved.
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// Use of this source code is governed by a BSD-style license that can be
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// found in the LICENSE file.
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "chrome/browser/ui/views/location_bar/ev_bubble_view.h"
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "grit/theme_resources.h"
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "ui/views/painter.h"
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectnamespace {
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectconst int kBackgroundImages[] = IMAGE_GRID(IDR_OMNIBOX_EV_BUBBLE);
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectEVBubbleView::EVBubbleView(const gfx::Font& font,
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                           int font_y_offset,
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                           SkColor text_color,
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                           SkColor parent_background_color,
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                           LocationBarView* location_bar)
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    : IconLabelBubbleView(kBackgroundImages, NULL, IDR_OMNIBOX_HTTPS_VALID,
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                          font, font_y_offset, text_color,
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                          parent_background_color, true),
238a78fd4d9572dff95432fcc4ba0e87563415b728Svetoslav Ganov      page_info_helper_(this, location_bar) {
248a78fd4d9572dff95432fcc4ba0e87563415b728Svetoslav Ganov}
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectEVBubbleView::~EVBubbleView() {
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectgfx::Size EVBubbleView::GetMinimumSize() {
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  // Height will be ignored by the LocationBarView.
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  gfx::Size minimum(GetPreferredSize());
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  static const int kMinBubbleWidth = 150;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  minimum.SetToMax(gfx::Size(kMinBubbleWidth, 0));
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  return minimum;
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectbool EVBubbleView::OnMousePressed(const ui::MouseEvent& event) {
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  // We want to show the dialog on mouse release; that is the standard behavior
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  // for buttons.
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  return true;
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectvoid EVBubbleView::OnMouseReleased(const ui::MouseEvent& event) {
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  page_info_helper_.ProcessEvent(event);
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectvoid EVBubbleView::OnGestureEvent(ui::GestureEvent* event) {
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  if (event->type() == ui::ET_GESTURE_TAP) {
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    page_info_helper_.ProcessEvent(*event);
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    event->SetHandled();
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  }
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project