| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef VIEWS_MOUSE_WATCHER_H_ | 5 #ifndef VIEWS_MOUSE_WATCHER_H_ |
| 6 #define VIEWS_MOUSE_WATCHER_H_ | 6 #define VIEWS_MOUSE_WATCHER_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/scoped_ptr.h" | 10 #include "base/scoped_ptr.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 // Creates a new MouseWatcher. |hot_zone_insets| is added to the bounds of | 30 // Creates a new MouseWatcher. |hot_zone_insets| is added to the bounds of |
| 31 // the view to determine the active zone. For example, if | 31 // the view to determine the active zone. For example, if |
| 32 // |hot_zone_insets.bottom()| is 10, then the listener is not notified if | 32 // |hot_zone_insets.bottom()| is 10, then the listener is not notified if |
| 33 // the y coordinate is between the origin of the view and height of the view | 33 // the y coordinate is between the origin of the view and height of the view |
| 34 // plus 10. | 34 // plus 10. |
| 35 MouseWatcher(views::View* host, | 35 MouseWatcher(views::View* host, |
| 36 MouseWatcherListener* listener, | 36 MouseWatcherListener* listener, |
| 37 const gfx::Insets& hot_zone_insets); | 37 const gfx::Insets& hot_zone_insets); |
| 38 ~MouseWatcher(); | 38 ~MouseWatcher(); |
| 39 | 39 |
| 40 // Sets the amount to delay before notifying the listener when the mouse exits |
| 41 // the view by way of going to another window. |
| 42 void set_notify_on_exit_time_ms(int time) { notify_on_exit_time_ms_ = time; } |
| 43 |
| 40 // Starts watching mouse movements. When the mouse moves outside the bounds of | 44 // Starts watching mouse movements. When the mouse moves outside the bounds of |
| 41 // the view the listener is notified. |Start| may be invoked any number of | 45 // the view the listener is notified. |Start| may be invoked any number of |
| 42 // times. If the mouse moves outside the bounds of the view the listener is | 46 // times. If the mouse moves outside the bounds of the view the listener is |
| 43 // notified and watcher stops watching events. | 47 // notified and watcher stops watching events. |
| 44 void Start(); | 48 void Start(); |
| 45 | 49 |
| 46 // Stops watching mouse events. | 50 // Stops watching mouse events. |
| 47 void Stop(); | 51 void Stop(); |
| 48 | 52 |
| 49 private: | 53 private: |
| 50 class Observer; | 54 class Observer; |
| 51 | 55 |
| 52 // Are we currently observing events? | 56 // Are we currently observing events? |
| 53 bool is_observing() const { return observer_.get() != NULL; } | 57 bool is_observing() const { return observer_.get() != NULL; } |
| 54 | 58 |
| 55 // Notifies the listener and stops watching events. | 59 // Notifies the listener and stops watching events. |
| 56 void NotifyListener(); | 60 void NotifyListener(); |
| 57 | 61 |
| 58 // View we're listening for events over. | 62 // View we're listening for events over. |
| 59 views::View* host_; | 63 View* host_; |
| 60 | 64 |
| 61 // Our listener. | 65 // Our listener. |
| 62 MouseWatcherListener* listener_; | 66 MouseWatcherListener* listener_; |
| 63 | 67 |
| 64 // Insets added to the bounds of the view. | 68 // Insets added to the bounds of the view. |
| 65 const gfx::Insets hot_zone_insets_; | 69 const gfx::Insets hot_zone_insets_; |
| 66 | 70 |
| 67 // Does the actual work of listening for mouse events. | 71 // Does the actual work of listening for mouse events. |
| 68 scoped_ptr<Observer> observer_; | 72 scoped_ptr<Observer> observer_; |
| 69 | 73 |
| 74 // See description above setter. |
| 75 int notify_on_exit_time_ms_; |
| 76 |
| 70 DISALLOW_COPY_AND_ASSIGN(MouseWatcher); | 77 DISALLOW_COPY_AND_ASSIGN(MouseWatcher); |
| 71 }; | 78 }; |
| 72 | 79 |
| 73 } // namespace views | 80 } // namespace views |
| 74 | 81 |
| 75 #endif // VIEWS_MOUSE_WATCHER_H_ | 82 #endif // VIEWS_MOUSE_WATCHER_H_ |
| OLD | NEW |