Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(94)

Unified Diff: ppapi/cpp/mouse_lock.h

Issue 9018032: New CPP docs for mouse lock and fullscreen. The docs are identical to those found in the C IDL wi... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« ppapi/cpp/fullscreen.h ('K') | « ppapi/cpp/fullscreen.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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:
« ppapi/cpp/fullscreen.h ('K') | « ppapi/cpp/fullscreen.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698