location_bar_decoration_view.cc revision d0247b1b59f9c528cb6df88b4f2b9afaf80d181e
17dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// found in the LICENSE file. 47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 57dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/ui/views/location_bar/location_bar_decoration_view.h" 67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 7ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include "chrome/browser/ui/views/location_bar/location_bar_view.h" 8d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/events/event.h" 97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 107dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochLocationBarDecorationView::LocationBarDecorationView() 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch : could_handle_click_(true) { 127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch set_accessibility_focusable(true); 13ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch LocationBarView::InitTouchableLocationBarChildView(this); 147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 167dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochLocationBarDecorationView::~LocationBarDecorationView() {} 177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochbool LocationBarDecorationView::OnMousePressed(const ui::MouseEvent& event) { 197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (event.IsOnlyLeftMouseButton() && HitTestPoint(event.location())) { 207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // Do nothing until mouse is released. 217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch could_handle_click_ = CanHandleClick(); 227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return true; 237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return false; 267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid LocationBarDecorationView::OnMouseReleased(const ui::MouseEvent& event) { 297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (event.IsOnlyLeftMouseButton() && HitTestPoint(event.location()) && 307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch could_handle_click_ && CanHandleClick()) { 317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch OnClick(); 327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochbool LocationBarDecorationView::OnKeyPressed(const ui::KeyEvent& event) { 367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (event.key_code() == ui::VKEY_SPACE || 377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch event.key_code() == ui::VKEY_RETURN) { 387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch OnClick(); 397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return true; 407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return false; 437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid LocationBarDecorationView::OnGestureEvent(ui::GestureEvent* event) { 467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (event->type() == ui::ET_GESTURE_TAP) { 477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch OnClick(); 487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch event->SetHandled(); 497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochbool LocationBarDecorationView::CanHandleClick() const { 537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return true; 547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 55