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 UI_VIEWS_TEST_CAPTURE_TRACKING_VIEW_
6#define UI_VIEWS_TEST_CAPTURE_TRACKING_VIEW_
7
8#include "base/compiler_specific.h"
9#include "ui/views/view.h"
10
11namespace views {
12namespace test {
13
14// Used to track OnMousePressed() and OnMouseCaptureLost().
15class CaptureTrackingView : public views::View {
16 public:
17  CaptureTrackingView();
18  virtual ~CaptureTrackingView();
19
20  // Returns true if OnMousePressed() has been invoked.
21  bool got_press() const { return got_press_; }
22
23  // Returns true if OnMouseCaptureLost() has been invoked.
24  bool got_capture_lost() const { return got_capture_lost_; }
25
26  void reset() { got_press_ = got_capture_lost_ = false; }
27
28  // Overridden from views::View
29  virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE;
30  virtual void OnMouseCaptureLost() OVERRIDE;
31
32 private:
33  // See description above getters.
34  bool got_press_;
35  bool got_capture_lost_;
36
37  DISALLOW_COPY_AND_ASSIGN(CaptureTrackingView);
38};
39
40}  // namespace test
41}  // namespace views
42
43#endif  // UI_VIEWS_TEST_CAPTURE_TRACKING_VIEW_
44