Chromium Code Reviews| Index: views/touchui/touch_factory.h |
| diff --git a/views/touchui/touch_factory.h b/views/touchui/touch_factory.h |
| index 04114be97d1491fd7d4bb1ead2ba4023412448ff..c5eb5a8a7abd62e34bf9754739dd6f746b4e76f8 100644 |
| --- a/views/touchui/touch_factory.h |
| +++ b/views/touchui/touch_factory.h |
| @@ -10,7 +10,9 @@ |
| #include <vector> |
| #include "base/singleton.h" |
| +#include "base/timer.h" |
| +typedef unsigned long Cursor; |
| typedef unsigned long Window; |
| typedef struct _XDisplay Display; |
| @@ -38,12 +40,40 @@ class TouchFactory { |
| // devices. |
| bool UngrabTouchDevices(Display* display); |
| + // Update the root window to show (or hide) the cursor. Also indicate whether |
| + // the timer should be started to automatically hide the cursor after a |
| + // certain duration of inactivity (i.e. it is ignored if |show| is false). |
| + void SetCursorVisible(bool show, bool start_timer); |
| + |
| + // Whether the cursor is currently visible or not. |
| + bool IsCursorVisible() { |
|
sky
2011/01/26 21:08:19
Name this is_cursor_visible() . Style guide says a
|
| + return is_cursor_visible_; |
| + } |
| + |
| private: |
| TouchFactory(); |
| + ~TouchFactory(); |
| + |
| + void HideCursorForInactivity() { |
| + SetCursorVisible(false, false); |
| + } |
| + |
| // Requirement for Signleton |
| friend struct DefaultSingletonTraits<TouchFactory>; |
| + // The default cursor is hidden after startup, and when the mouse pointer is |
| + // idle for a while. Once there is some event from a mouse device, the cursor |
| + // is immediately displayed. |
| + bool is_cursor_visible_; |
| + |
| + // The cursor is hidden if it is idle for a certain amount time. This timer |
| + // is used to keep track of the idleness. |
| + base::OneShotTimer<TouchFactory> cursor_timer_; |
| + |
| + // The invisible cursor. |
| + Cursor invisible_cursor_; |
| + |
| // NOTE: To keep track of touch devices, we currently maintain a lookup table |
| // to quickly decide if a device is a touch device or not. We also maintain a |
| // list of the touch devices. Ideally, there will be only one touch device, |