Home | History | Annotate | Download | only in location_bar
      1 // Copyright 2013 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 #include "chrome/browser/ui/views/location_bar/location_bar_decoration_view.h"
      6 
      7 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
      8 #include "ui/base/events/event.h"
      9 
     10 LocationBarDecorationView::LocationBarDecorationView()
     11     : could_handle_click_(true) {
     12   set_accessibility_focusable(true);
     13   LocationBarView::InitTouchableLocationBarChildView(this);
     14 }
     15 
     16 LocationBarDecorationView::~LocationBarDecorationView() {}
     17 
     18 bool LocationBarDecorationView::OnMousePressed(const ui::MouseEvent& event) {
     19   if (event.IsOnlyLeftMouseButton() && HitTestPoint(event.location())) {
     20     // Do nothing until mouse is released.
     21     could_handle_click_ = CanHandleClick();
     22     return true;
     23   }
     24 
     25   return false;
     26 }
     27 
     28 void LocationBarDecorationView::OnMouseReleased(const ui::MouseEvent& event) {
     29   if (event.IsOnlyLeftMouseButton() && HitTestPoint(event.location()) &&
     30       could_handle_click_ && CanHandleClick()) {
     31     OnClick();
     32   }
     33 }
     34 
     35 bool LocationBarDecorationView::OnKeyPressed(const ui::KeyEvent& event) {
     36   if (event.key_code() == ui::VKEY_SPACE ||
     37       event.key_code() == ui::VKEY_RETURN) {
     38     OnClick();
     39     return true;
     40   }
     41 
     42   return false;
     43 }
     44 
     45 void LocationBarDecorationView::OnGestureEvent(ui::GestureEvent* event) {
     46   if (event->type() == ui::ET_GESTURE_TAP) {
     47     OnClick();
     48     event->SetHandled();
     49   }
     50 }
     51 
     52 bool LocationBarDecorationView::CanHandleClick() const {
     53   return true;
     54 }
     55