|
||
class RDirectScreenAccess : public MWsClientClass;
The interface between an application that directly accesses the screen and the window server.
Note that most applications that need to access the screen directly should use CDirectScreenAccess
instead. RDirectScreenAccess only needs to be used directly by applications without access to an active scheduler.
MWsClientClass
- Base class for all classes whose objects are clients of the window server.
RDirectScreenAccess
- The interface between an application that directly accesses the screen and the w...
Defined in RDirectScreenAccess
:
Cancel()
Indicates to the window server that you have finished performing direct screen a...Close()
Calls RDirectScreenAccess::Completed() then deletes the server side resource and...Completed()
Indicates to the window server that you have responded to the completion of the ...Construct()
Second phase constructor.EPriorityVeryHigh
A suggested value for the priority of the active object that responds to notific...ETerminateCancel
The application has finished direct screen access. ETerminateRegion
A window is about to come in front of a part of the area that is being used for ...ETerminateRotation
The current screen mode (the combination of screen rotation and screen size) is ...ETerminateScreenMode
The screen's color depth (as enumerated by TDisplayMode) is about to change. RDirectScreenAccess()
Default constructor.RDirectScreenAccess(RWsSession &)
C++ constructor with a connected window server session.Request(RRegion *&,TRequestStatus &,const RWindowBase &)
Issues a request to the window server for permission to perform direct screen ac...TPriority
The priority of the active object that responds to notification that direct scre...TTerminationReasons
Provides the reason why direct screen access must terminate. This enum is used i...Inherited from MWsClientClass
:
WsHandle()const
Gets the server side handle for the object.IMPORT_C RDirectScreenAccess();
Default constructor.
Developers should use the other constructor overload instead.
IMPORT_C RDirectScreenAccess(RWsSession &aWs);
C++ constructor with a connected window server session.
RDirectScreenAccess::Construct()
must be called to complete construction.
|
IMPORT_C TInt Construct();
Second phase constructor.
Creates the server side resource and initialises the client's handle to it.
This function always causes a flush of the window server buffer.
|
IMPORT_C TInt Request(RRegion *&aRegion, TRequestStatus &aStatus, const RWindowBase &aWindow);
Issues a request to the window server for permission to perform direct screen access on a window.
Direct access to the screen may be refused due to lack of memory or if the target window is completely obscured.
If direct access is allowed, the function passes back a clipping region which is the part of the screen the caller can draw to.
When direct screen access must stop, for instance because a dialog is to be displayed in front of the region where direct
screen access is taking place, the window server completes the request. The recommended way to check for this is for aStatus
to be the request status of an active object that will be run when the request completes, i.e. if RDirectScreenAccess::Request(RRegion *&,TRequestStatus &,const RWindowBase &)
returns KErrNone, call SetActive(), and in the object's RunL(), you should immediately abort direct screen access.
While the DSA is in operation, it is strongly advised that the client should not make any call to WSERV that will affect the visible area of the window in which the DSA is taking place.
When WSERV tells the client that it needs to abort its DSA, it waits to receive the acknowledgment from the client that it has done so. However, it doesn't wait for ever, since the client may have entered some long running calculation or even an infinite loop. So WSERV also waits on a timer: if the timer expires before the client acknowledges, then WSERV continues; if, later on, WSERV gets notification from the client that it has aborted the DSA, then WSERV will invalidate the region in which the DSA was taking place, just in case there had been a conflict between the DSA and another client.
This function always causes a flush of the window server buffer.
|
|
IMPORT_C void Completed();
Indicates to the window server that you have responded to the completion of the request status passed to RDirectScreenAccess::Request(RRegion *&,TRequestStatus &,const RWindowBase &)
, by stopping direct screen access.
IMPORT_C void Cancel();
Indicates to the window server that you have finished performing direct screen access.
IMPORT_C void Close();
Calls RDirectScreenAccess::Completed()
then deletes the server side resource and sets the client's handle to it to NULL.
TTerminationReasons
Provides the reason why direct screen access must terminate. This enum is used in the MAbortDirectScreenAccess::AbortNow(RDirectScreenAccess::TTerminationReasons)
and MDirectScreenAccess::Restart(RDirectScreenAccess::TTerminationReasons)
functions.
The first value (ETerminateCancel) indicates that direct screen access is being terminated by the application. The final three
values indicate that direct screen access is being terminated by the window server. Note that for users of CDirectScreenAccess
, the termination code is not important because these issues are dealt with by CDirectScreenAccess::StartL()
.
|
TPriority
The priority of the active object that responds to notification that direct screen access must stop.
|