Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / ui / views / controls / scrollbar / base_scroll_bar_button.cc
blob0a765c429629857e5affbea00d26a874d1cb4070
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.
5 #include "ui/views/controls/scrollbar/base_scroll_bar_button.h"
7 #include "base/bind.h"
8 #include "base/bind_helpers.h"
9 #include "ui/gfx/screen.h"
11 namespace views {
13 BaseScrollBarButton::BaseScrollBarButton(ButtonListener* listener)
14 : CustomButton(listener),
15 repeater_(base::Bind(&BaseScrollBarButton::RepeaterNotifyClick,
16 base::Unretained(this))) {
19 BaseScrollBarButton::~BaseScrollBarButton() {
22 bool BaseScrollBarButton::OnMousePressed(const ui::MouseEvent& event) {
23 Button::NotifyClick(event);
24 repeater_.Start();
25 return true;
28 void BaseScrollBarButton::OnMouseReleased(const ui::MouseEvent& event) {
29 OnMouseCaptureLost();
32 void BaseScrollBarButton::OnMouseCaptureLost() {
33 repeater_.Stop();
36 void BaseScrollBarButton::RepeaterNotifyClick() {
37 // TODO(sky): See if we can convert to using |Screen| everywhere.
38 // TODO(scottmg): Native is wrong: http://crbug.com/133312
39 gfx::Point cursor_point =
40 gfx::Screen::GetNativeScreen()->GetCursorScreenPoint();
41 ui::MouseEvent event(ui::ET_MOUSE_RELEASED,
42 cursor_point, cursor_point,
43 ui::EF_LEFT_MOUSE_BUTTON,
44 ui::EF_LEFT_MOUSE_BUTTON);
45 Button::NotifyClick(event);
48 } // namespace views