Pepper_42_C++_interfaces
Public Member Functions | List of all members
pp::MouseLock Class Referenceabstract

#include <mouse_lock.h>

Collaboration diagram for pp::MouseLock:
Collaboration graph

Public Member Functions

 MouseLock (Instance *instance)
 
virtual ~MouseLock ()
 Destructor. More...
 
virtual void MouseLockLost ()=0
 PPP_MouseLock functions exposed as virtual functions for you to override. More...
 
int32_t LockMouse (const CompletionCallback &cc)
 
void UnlockMouse ()
 

Detailed Description

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 class by inheritance on your instance or by composition.

Example (inheritance):

class MyInstance : public pp::Instance, public pp::MouseLock {
class MyInstance() : pp::MouseLock(this) {
}
...
};

Example (composition):

class MyMouseLock : public pp::MouseLock {
...
};
class MyInstance : public pp::Instance {
MyInstance() : mouse_lock_(this) {
}
MyMouseLock mouse_lock_;
};

Definition at line 50 of file mouse_lock.h.

Constructor & Destructor Documentation

pp::MouseLock::MouseLock ( Instance instance)
explicit

A constructor for creating a MouseLock.

Parameters
[in]instanceThe instance with which this resource will be associated.
virtual pp::MouseLock::~MouseLock ( )
virtual

Destructor.

Member Function Documentation

int32_t pp::MouseLock::LockMouse ( const CompletionCallback cc)

LockMouse() requests the mouse to be locked.

While the mouse is locked, the cursor is implicitly hidden from the user. Any movement of the mouse will generate a PP_INPUTEVENT_TYPE_MOUSEMOVE event. The GetPosition() function in InputEvent() reports the last known mouse position just as mouse lock was entered. The GetMovement() 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.

Parameters
[in]ccA CompletionCallback to be called upon completion.
Returns
An int32_t containing an error code from pp_errors.h.
virtual void pp::MouseLock::MouseLockLost ( )
pure virtual

PPP_MouseLock functions exposed as virtual functions for you to override.

void pp::MouseLock::UnlockMouse ( )

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 PPP_MouseLock interface when it has lost the mouse lock.


The documentation for this class was generated from the following file: