Index: ppapi/cpp/mouse_lock.h |
=================================================================== |
--- ppapi/cpp/mouse_lock.h (revision 115345) |
+++ ppapi/cpp/mouse_lock.h (working copy) |
@@ -7,44 +7,86 @@ |
#include "ppapi/c/pp_stdint.h" |
+/// @file |
+/// This file defines the API for locking the target of mouse events to a |
+/// specific module instance. |
+ |
namespace pp { |
class CompletionCallback; |
class Instance; |
-// This class allows you to associate the PPP_MouseLock and PPB_MouseLock |
-// C-based interfaces with an object. It associates itself with the given |
-// instance, and registers as the global handler for handling the PPP_MouseLock |
-// interface that the browser calls. |
-// |
-// You would typically use this either via inheritance on your instance: |
-// class MyInstance : public pp::Instance, public pp::MouseLock { |
-// class MyInstance() : pp::MouseLock(this) { |
-// } |
-// ... |
-// }; |
-// |
-// or by composition: |
-// class MyMouseLock : public pp::MouseLock { |
-// ... |
-// }; |
-// |
-// class MyInstance : public pp::Instance { |
-// MyInstance() : mouse_lock_(this) { |
-// } |
-// |
-// MyMouseLock mouse_lock_; |
-// }; |
+/// This class allows you to associate the <codee>PPP_MouseLock</code> and |
+/// <code>PPB_MouseLock</code> C-based interfaces with an object. It associates |
+/// itself with the given instance, and registers as the global handler for |
+/// handling the <code>PPP_MouseLock</code> interface that the browser calls. |
+/// |
+/// You would typically implement this class using inheritance on your instance |
yzshen1
2011/12/21 23:04:14
nit: I think we usually use 'implement interface'
jond
2012/01/03 17:48:28
Done.
|
+/// or by composition. |
+/// |
+/// <strong>Example (inheritance):</strong> |
+/// <code> |
+/// class MyInstance : public pp::Instance, public pp::MouseLock { |
+/// class MyInstance() : pp::MouseLock(this) { |
+/// } |
+/// ... |
+/// }; |
+/// </code> |
+/// |
+/// <strong>Example (composition):</strong> |
+/// <code> |
+/// class MyMouseLock : public pp::MouseLock { |
+/// ... |
+/// }; |
+/// |
+/// class MyInstance : public pp::Instance { |
+/// MyInstance() : mouse_lock_(this) { |
+/// } |
+/// |
+/// MyMouseLock mouse_lock_; |
+/// }; |
+/// </code> |
class MouseLock { |
public: |
+ /// A constructor for creating a <code>MouseLock</code>. |
+ /// |
+ /// @param[in] instance The instance that will own the new |
+ /// <code>MouseLock</code>. |
explicit MouseLock(Instance* instance); |
+ |
+ /// Destructor. |
yzshen1
2011/12/21 23:04:14
Comment like this (as well as the one for construc
jond
2012/01/03 17:48:28
Done.
|
virtual ~MouseLock(); |
- // PPP_MouseLock functions exposed as virtual functions for you to override. |
+ /// PPP_MouseLock functions exposed as virtual functions for you to override. |
virtual void MouseLockLost() = 0; |
- // PPB_MouseLock functions for you to call. |
+ /// LockMouse() requests the mouse to be locked. The browser will permit |
+ /// mouse lock only while the tab is in fullscreen mode. |
+ /// |
+ /// While the mouse is locked, the cursor is implicitly hidden from the user. |
+ /// Any movement of the mouse will generate a |
+ /// <code>PP_INPUTEVENT_TYPE_MOUSEMOVE</code> event. The |
+ /// <code>GetPosition()</code> function in <code>InputEvent()</code> |
+ /// reports the last known mouse position just as mouse lock was |
+ /// entered. The <code>GetMovement()</code> function provides relative |
+ /// movement information indicating what the change in position of the mouse |
+ /// would be had it not been locked. |
+ /// |
+ /// The browser may revoke the mouse lock for reasons including (but not |
+ /// limited to) the user pressing the ESC key, the user activating another |
+ /// program using a reserved keystroke (e.g. ALT+TAB), or some other system |
+ /// event. |
+ /// |
+ /// @param[in] callback A <code>PP_CompletionCallback</code> to be called upon |
+ /// completion. |
+ /// |
+ /// @return An int32_t containing an error code from <code>pp_errors.h</code>. |
int32_t LockMouse(const CompletionCallback& cc); |
+ |
+ /// UnlockMouse causes the mouse to be unlocked, allowing it to track user |
+ /// movement again. This is an asynchronous operation. The module instance |
+ /// will be notified using the <code>PPP_MouseLock</code> interface when it |
+ /// has lost the mouse lock. |
void UnlockMouse(); |
private: |