RDrawableWindow Class Reference

class RDrawableWindow : public RWindowBase

Handle to a drawable window.

This class cannot be constructed directly. The two concrete derived classes, RWindow and RBackedUpWindow, allow drawing but use different protocols because RWindow relies on the client to redraw invalid areas.

Inherits from

Public Member Functions
IMPORT_C TRectGetDrawRect()
IMPORT_C voidScroll(const TPoint &)
IMPORT_C voidScroll(const TRect &, const TPoint &)
IMPORT_C voidScroll(const TPoint &, const TRect &)
IMPORT_C voidScroll(const TRect &, const TPoint &, const TRect &)
Protected Member Functions
RDrawableWindow()
RDrawableWindow(RWsSession &)
voidSetDrawRect(const TRect &)
Private Member Functions
voiddoScroll(const TRect &, const TPoint &, const TRect &, TInt)
Inherited Functions
MWsClientClass::AddToBitmapArray(const TInt)const
MWsClientClass::AsyncRequest(TRequestStatus &,TUint)const
MWsClientClass::CachedWindowSize(TSize &)const
MWsClientClass::DestroyWindowNativeSizeCacheEntry()
MWsClientClass::DestroyWindowSizeCacheEntry()
MWsClientClass::EnableWindowNativeSizeCacheL()
MWsClientClass::MWsClientClass()
MWsClientClass::MWsClientClass(RWsBuffer *)
MWsClientClass::MarkWindowSizeCacheDirty()
MWsClientClass::RefreshWindowSizeCache(const TSize &)const
MWsClientClass::SetWindowNativeSize(const TSize &)const
MWsClientClass::WindowNativeSize(TSize &)const
MWsClientClass::WindowNativeSizeCacheEnabled()const
MWsClientClass::WindowSizeCacheEnabled()const
MWsClientClass::Write(TUint)const
MWsClientClass::Write(const TAny *,TInt,TUint)const
MWsClientClass::Write(const TAny *,TInt,const TAny *,TInt,TUint)const
MWsClientClass::WriteInt(TInt,TUint)const
MWsClientClass::WritePoint(const TPoint &,TUint)const
MWsClientClass::WriteRect(const TRect &,TUint)const
MWsClientClass::WriteReply(TUint,const TIpcArgs *)const
MWsClientClass::WriteReply(const TAny *,TInt,TUint,const TIpcArgs *)const
MWsClientClass::WriteReply(const TAny *,TInt,const TAny *,TInt,TUint,const TIpcArgs *)const
MWsClientClass::WriteReplyByProvidingRemoteReadAccess(const TAny *,TInt,const TReadDescriptorType &,TUint)const
MWsClientClass::WriteReplyInt(TInt,TUint,const TIpcArgs *)const
MWsClientClass::WriteReplyIntP(TInt,const TWriteDescriptorType &,TUint)const
MWsClientClass::WriteReplyP(const TAny *,TInt,const TAny *,TInt,const TWriteDescriptorType &,TUint)const
MWsClientClass::WriteReplyP(const TAny *,TInt,const TWriteDescriptorType &,TUint)const
MWsClientClass::WriteReplyP(const TWriteDescriptorType &,TUint)const
MWsClientClass::WriteSize(const TSize &,TUint)const
MWsClientClass::WsHandle()const
RWindowBase::AbsPosition()const
RWindowBase::Activate()
RWindowBase::AddKeyRect(const TRect &,TInt,TBool)
RWindowBase::AllocPointerMoveBuffer(TInt,TUint)
RWindowBase::CancelPointerRepeatEventRequest()
RWindowBase::CancelPointerRepeatEventRequest(const TUint8)
RWindowBase::ClaimPointerGrab(TBool)
RWindowBase::ClaimPointerGrab(const TUint8,const TBool)
RWindowBase::DisablePointerMoveBuffer()
RWindowBase::DiscardPointerMoveBuffer()
RWindowBase::DisplayMode()const
RWindowBase::EnableAdvancedPointers()
RWindowBase::EnableBackup(TUint)
RWindowBase::EnablePointerMoveBuffer()
RWindowBase::FadeBehind(TBool)
RWindowBase::FixNativeOrientation()
RWindowBase::FreePointerMoveBuffer()
RWindowBase::GetBackgroundSurface(TSurfaceConfiguration &)const
RWindowBase::GetPointerCapturePriority()const
RWindowBase::InquireOffset(const RWindowTreeNode &)const
RWindowBase::IsFaded()const
RWindowBase::IsNonFading()const
RWindowBase::KeyColor()const
RWindowBase::MoveToGroup(TInt)
RWindowBase::PasswordWindow(TPasswordMode)
RWindowBase::PointerFilter(TUint32,TUint32)
RWindowBase::Position()const
RWindowBase::RWindowBase()
RWindowBase::RWindowBase(RWsSession &)
RWindowBase::RemoveAllKeyRects()
RWindowBase::RemoveBackgroundSurface(TBool)
RWindowBase::RequestPointerRepeatEvent(TTimeIntervalMicroSeconds32,const TRect &)
RWindowBase::RequestPointerRepeatEvent(TTimeIntervalMicroSeconds32,const TRect &,const TUint8)
RWindowBase::RetrievePointerMoveBuffer(TDes8 &)const
RWindowBase::SetBackgroundSurface(const TSurfaceConfiguration &,TBool)
RWindowBase::SetBackgroundSurface(const TSurfaceId &)
RWindowBase::SetCornerType(TCornerType,TInt)
RWindowBase::SetExtentErr(const TPoint &,const TSize &)
RWindowBase::SetPointerCapture(TInt)
RWindowBase::SetPointerCapturePriority(TInt)
RWindowBase::SetPointerGrab(TBool)
RWindowBase::SetPosition(const TPoint &)
RWindowBase::SetRequiredDisplayMode(TDisplayMode)
RWindowBase::SetShadowDisabled(TBool)
RWindowBase::SetShadowHeight(TInt)
RWindowBase::SetShape(const TRegion &)
RWindowBase::SetSizeErr(const TSize &)
RWindowBase::SetSurfaceTransparency(TBool)
RWindowBase::SetVisible(TBool)
RWindowBase::Size()const
RWindowBase::SizeForEgl()const
RWindowBase::construct(const RWindowTreeNode &,TUint32,TInt,TDisplayMode)
RWindowTreeNode::Child()const
RWindowTreeNode::ClearPointerCursor()
RWindowTreeNode::ClientHandle()const
RWindowTreeNode::Close()
RWindowTreeNode::Destroy()
RWindowTreeNode::DisableErrorMessages()
RWindowTreeNode::DisableFocusChangeEvents()
RWindowTreeNode::DisableGroupChangeEvents()
RWindowTreeNode::DisableGroupListChangeEvents()
RWindowTreeNode::DisableModifierChangedEvents()
RWindowTreeNode::DisableOnEvents()
RWindowTreeNode::DisableVisibilityChangeEvents()
RWindowTreeNode::EnableErrorMessages(TEventControl)
RWindowTreeNode::EnableFocusChangeEvents()
RWindowTreeNode::EnableGroupChangeEvents()
RWindowTreeNode::EnableGroupListChangeEvents()
RWindowTreeNode::EnableModifierChangedEvents(TUint,TEventControl)
RWindowTreeNode::EnableOnEvents(TEventControl)
RWindowTreeNode::EnableVisibilityChangeEvents()
RWindowTreeNode::FullOrdinalPosition()const
RWindowTreeNode::NextSibling()const
RWindowTreeNode::OrdinalPosition()const
RWindowTreeNode::OrdinalPriority()const
RWindowTreeNode::Parent()const
RWindowTreeNode::PrevSibling()const
RWindowTreeNode::RWindowTreeNode()
RWindowTreeNode::RWindowTreeNode(RWsSession &)
RWindowTreeNode::ScreenNumber()const
RWindowTreeNode::Session()const
RWindowTreeNode::SetCustomPointerCursor(const RWsPointerCursor &)
RWindowTreeNode::SetFaded(TBool,TFadeControl)
RWindowTreeNode::SetFaded(TBool,TFadeControl,TUint8,TUint8)
RWindowTreeNode::SetNonFading(TBool)
RWindowTreeNode::SetOrdinalPosition(TInt)
RWindowTreeNode::SetOrdinalPosition(TInt,TInt)
RWindowTreeNode::SetPointerCursor(TInt)
RWindowTreeNode::WindowGroupId()const
Inherited Enumerations
RWindowBase:TCaptureFlags
RWindowTreeNode:TFadeControl
Private Attributes
TRect iDrawRect
Inherited Attributes
MWsClientClass::iBuffer
MWsClientClass::iWsHandle
RWindowTreeNode::__DECLARE_TEST

Constructor & Destructor Documentation

RDrawableWindow()

RDrawableWindow()[protected]

Protected default constructor which creates a sessionless, uninitialised drawable-window handle.

Handles to server-side objects must be created in a session in order to be operational; this constructor is merely a convenience to allow the handle to be stored as a data member. See RWindowTreeNode::RWindowTreeNode() for details of how the complete setup of a handle field may be deferred until the window server session is known

RDrawableWindow(RWsSession &)

RDrawableWindow(RWsSession &aWs)[protected]

Protected default constructor which creates an initialised drawable-window handle within a server session.

Parameters

RWsSession & aWsWindow server session.

Member Functions Documentation

GetDrawRect()

IMPORT_C TRectGetDrawRect()const

Obtains the current rectangle being drawn to this window, during a window redraw cycle.

This function can be called between a BeginRedraw() / EndRedraw() pair to obtain the current window redraw reference rectangle.

Scroll(const TPoint &)

IMPORT_C voidScroll(const TPoint &aOffset)

Scrolls the window contents by an offset.

All parts of an RWindow are either drawn with content copied from another part of the window or are invalidated. Areas are invalidated when the source content of the scroll would be outside the window or obscured behind another window. The areas that are invalidated are not blanked off.

For example, if the window is scrolled towards the right, then there is no content (from outside the window) to move into area on the left hand side. This area is invalidated. Similarly, no content can be scrolled out from under an obscuring window, so the area from beneath the obscuring window is also invalidated.

Note that for an RBackedUpWindow, the contents of areas obscured by other windows are stored. In this case the window contents are scrolled out from "underneath" the obscuring window. In the example above the area on the left was invalidated but for this type of window the area simply contains its old pre-scroll contents.

Parameters

const TPoint & aOffsetScroll offset, in pixels. Positive values cause the window contents to move downwards/right. Negative values cause contents to move upwards/left.

Scroll(const TRect &, const TPoint &)

IMPORT_C voidScroll(const TRect &aClipRect,
const TPoint &aOffset
)

Scrolls the contents of a clip rectangle, independently of the other contents of the window.

This function behaves in exactly the same way as the single parameter overload, except that the scroll region is a clipping rectangle rather than the whole window. All parts of the clipping rectangle are either drawn with content copied from another part of the rectangle or are invalidated.

The RBackedUpWindow behaviour is also similar to the behaviour in the function above.

Parameters

const TRect & aClipRectRectangle to which scrolling is to be clipped
const TPoint & aOffsetScroll offset, in pixels. Positive values cause the window contents to move downwards and right. Negative values cause contents to move upwards and left.

Scroll(const TPoint &, const TRect &)

IMPORT_C voidScroll(const TPoint &aOffset,
const TRect &aRect
)

Scrolls a rectangle within a window.

This function effectively moves the specified rectangle by the given offset with respect to the window. The destination rectangle may overlap and cover the old rectangle.

Note that if the source of this rectangle is an invalid area, ie it is obscured or lies outside the window, then this area in the destination rectangle will be invalidated.

Parameters

const TPoint & aOffsetScroll offset, in pixels. Positive values cause the window contents to move downwards and right. Negative values cause contents to move upwards and left.
const TRect & aRectThe source rectangle for the scroll.

Scroll(const TRect &, const TPoint &, const TRect &)

IMPORT_C voidScroll(const TRect &aClipRect,
const TPoint &aOffset,
const TRect &aRect
)

Scrolls the contents of a source rectangle within a clipping rectangle.

The source rectangle is effectively copied from one position to another, with both the source and destination clipped to the clipping rectangle. Hence if the source and destination rectangles are inside the clipping region then this function behaves exactly like the Scroll(const TPoint &aOffset, const TRect &aRect) overload. However if the source or destination for the scrolled rectangle intersect the clipping rectangle then the function behaves similarly to the Scroll(const TRect &aClipRect,const TPoint &aOffset) overload, with regards to invalidated regions etc.

Parameters

const TRect & aClipRectRectangle to which scrolling is to be clipped.
const TPoint & aOffsetScroll offset, in pixels. Positive values cause the window contents to move downwards and right. Negative values cause contents to move upwards and left.
const TRect & aRectSource rectangle for the scroll.

SetDrawRect(const TRect &)

voidSetDrawRect(const TRect &aRect)[protected]

Protected system function.

Sets the current redraw reference rectangle that is being drawn. This is called between a BeingRedraw() / EndRedraw() pair by the system.

GetDrawRect()

Parameters

const TRect & aRectRectangle reference area that is currently being drawn.

doScroll(const TRect &, const TPoint &, const TRect &, TInt)

voiddoScroll(const TRect &aClipRect,
const TPoint &aOffset,
const TRect &aRect,
TIntaOpcode
)[private]

Parameters

const TRect & aClipRect
const TPoint & aOffset
const TRect & aRect
TInt aOpcode

Member Data Documentation

TRect iDrawRect

TRect iDrawRect[private]