RWindowGroup Class Reference

#include <w32std.h>

class RWindowGroup : public RWindowTreeNode, public RWindowTreeNode
Public Member Functions
RWindowGroup()
RWindowGroup(RWsSession &)
IMPORT_C TIntAddPriorityKey(TUint, TUint, TUint)
IMPORT_C voidAllowProcessToCreateChildWindowGroups(TUid)
IMPORT_C voidAutoForeground(TBool)
IMPORT_C voidCancelCaptureKey(TInt32)
IMPORT_C voidCancelCaptureKeyUpAndDowns(TInt32)
IMPORT_C voidCancelCaptureLongKey(TInt32)
IMPORT_C voidCancelTextCursor()
IMPORT_C TInt32CaptureKey(TUint, TUint, TUint)
IMPORT_C TInt32CaptureKey(TUint, TUint, TUint, TInt)
IMPORT_C TInt32CaptureKeyUpAndDowns(TUint, TUint, TUint)
IMPORT_C TInt32CaptureKeyUpAndDowns(TUint, TUint, TUint, TInt)
IMPORT_C TInt32CaptureLongKey(TUint, TUint, TUint, TUint, TInt, TUint)
IMPORT_C TInt32CaptureLongKey(TTimeIntervalMicroSeconds32, TUint, TUint, TUint, TUint, TInt, TUint)
IMPORT_C TIntClearChildGroup()
IMPORT_C TIntConstruct(TUint32)
IMPORT_C TIntConstruct(TUint32, CWsScreenDevice *)
IMPORT_C TIntConstruct(TUint32, TBool, CWsScreenDevice *)
IMPORT_C TIntConstruct(TUint32, TBool)
IMPORT_C TIntConstructChildApp(TInt, TUint32)
IMPORT_C TIntConstructChildApp(TInt, TUint32, TBool)
IMPORT_C voidDefaultOwningWindow()
IMPORT_C voidDisableKeyClick(TBool)
IMPORT_C voidDisableScreenChangeEvents()
IMPORT_C voidEnableReceiptOfFocus(TBool)
IMPORT_C TIntEnableScreenChangeEvents()
IMPORT_C TIntIdentifier()
IMPORT_C TIntName(TDes &)
IMPORT_C voidRemovePriorityKey(TUint, TUint, TUint)
IMPORT_C TIntSetChildGroup(TInt)
IMPORT_C TIntSetName(const TDesC &)
IMPORT_C TIntSetOrdinalPositionErr(TInt, TInt)
IMPORT_C voidSetOrdinalPriorityAdjust(TInt)
IMPORT_C voidSetOwningWindowGroup(TInt)
IMPORT_C voidSetTextCursor(RWindowBase &, const TPoint &, const TTextCursor &)
IMPORT_C voidSetTextCursor(RWindowBase &, const TPoint &, const TTextCursor &, const TRect &)
IMPORT_C voidSimulateAdvancedPointerEvent(TRawEvent)
IMPORT_C voidSimulatePointerEvent(TRawEvent)
Inherited Attributes
MWsClientClass::iBuffer
MWsClientClass::iWsHandle
Inherited Enumerations
RWindowTreeNode:TFadeControl
Inherited Functions
MWsClientClass::AddToBitmapArray(const TInt)const
MWsClientClass::AsyncRequest(TRequestStatus &,TUint)const
MWsClientClass::CachedWindowSize(TSize &)const
MWsClientClass::DestroyWindowSizeCacheEntry()
MWsClientClass::MWsClientClass()
MWsClientClass::MWsClientClass(RWsBuffer *)
MWsClientClass::MarkWindowSizeCacheDirty()
MWsClientClass::RefreshWindowSizeCache(const TSize &)const
MWsClientClass::WindowSizeCacheEnabled()const
MWsClientClass::Write(TUint)const
MWsClientClass::Write(const TAny *,TInt,TInt,TUint)const
MWsClientClass::Write(const TAny *,TInt,TUint,const TIpcArgs *)const
MWsClientClass::Write(const TAny *,TInt,const TAny *,TInt,TUint,const TIpcArgs *)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
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
RWindowTreeNode::__DbgTest(TAny *)const
RWindowTreeNode::__DbgTestInvariant()const

Detailed Description

Client-side handle to a server-side window group.

Constructor & Destructor Documentation

RWindowGroup ( )

IMPORT_CRWindowGroup()

Creates a sessionless, uninitialised window group 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.

RWindowGroup ( RWsSession & )

IMPORT_CRWindowGroup(RWsSession &aWs)

Creates an initialised window group handle within a server session.

Parameters
aWsThe window server session owning the window group.

Member Function Documentation

AddPriorityKey ( TUint, TUint, TUint )

IMPORT_C TIntAddPriorityKey(TUintaKeycode,
TUintaModifierMask,
TUintaModifier
)

Adds a priority key.

Priority key events are typically used for providing "Abort" or "Escape" keys for an application. For priority key events to occur they must first be configured using this function. Functions provided by RWsSession can then be used to get priority key events. Note that unlike other events, the Control Framework does not get priority key events for you.

Priority key events for the key given by aKeyCode are only delivered when the modifier keys specified by aModifierMask are in the states specified by aModifiers. See RWsSession::SetHotKey() for examples of how to use aModifierMask and aModifiers.

More than one priority key can be added for each keycode, each having a different set of modifier requirements.

Note: if you press a priority key while another is waiting to be sent to the client then the first key is lost.

This function always causes a flush of the window server buffer.

Parameters
aKeycodeThe priority key to be added.
aModifierMaskOnly the modifier keys in this mask are tested against the states specified in aModifiers.
aModifierKey is captured only when modifier keys specified in aModifierMask match these states, where 1 = modifier key on, and 0 = modifier key off. Modifier key states are defined in TEventModifier.
Return Value
KErrNone if successful, otherwise one of the system-wide error codes.

AllowProcessToCreateChildWindowGroups ( TUid )

IMPORT_C voidAllowProcessToCreateChildWindowGroups(TUidaProcessSID)

Allows a Window Group in the specified process to be be a child of this one

This function will need to be called to allow another window group to become a child window group of this one.

This function always causes a flush of the window server buffer.

Parameters
aProcessSIDThis is the process security Id of the process that will be allowed to make child window groups

AutoForeground ( TBool )

IMPORT_C voidAutoForeground(TBoolaState)

Sets or disables auto-foreground behaviour.

If this behaviour is set for a window, it will automatically be given ordinal position zero whenever a pointer event of type EButton1Down occurs in any of its child windows. This will cause it to be brought to the foreground, unless another window group exists with a higher priority.

A window group that is moved to the foreground will automatically get keyboard focus unless it has explicitly had receipt-of-focus disabled or there is a focusable window group of higher priority. See EnableReceiptOfFocus().

Parameters
aStateWhether this group should be automatically brought to the foreground on an EButton1Down.

CancelCaptureKey ( TInt32 )

IMPORT_C voidCancelCaptureKey(TInt32aCaptureKey)

Cancels a request for key capture.

Use this function to cancel a request to capture a key previously made with CaptureKey(). If the value passed in aHotKey is not a valid capture key handle, this function will cause a panic.

This function always causes a flush of the window server buffer.

Parameters
aCaptureKeyThe key for which the capture request is cancelled.

CancelCaptureKeyUpAndDowns ( TInt32 )

IMPORT_C voidCancelCaptureKeyUpAndDowns(TInt32aCaptureKey)

Cancels a capture request for a key up or key down event.

Use this function to cancel a request to capture a key, previously made with CaptureKeyUpAndDowns(). If the value passed in aHotKey is not a valid capture key handle, this function will cause a panic.

This function always causes a flush of the window server buffer.

Parameters
aCaptureKeyCancels the request to capture this key.

CancelCaptureLongKey ( TInt32 )

IMPORT_C voidCancelCaptureLongKey(TInt32aCaptureKey)

Cancels a previous long key capture request.

This function always causes a flush of the window server buffer.

Parameters
aCaptureKeyThe value returned by the previous call to CaptureLongKey(). Identifies which long key capture request to cancel.

CancelTextCursor ( )

IMPORT_C voidCancelTextCursor()

Removes the text cursor.

Use this function to remove the current text cursor from this window group. This function does nothing if the cursor is currently in another window group.

CaptureKey ( TUint, TUint, TUint )

IMPORT_C TInt32CaptureKey(TUintaKeycode,
TUintaModifierMask,
TUintaModifier
)

Requests key capture.

This function instructs the window server to send key events (of type EEventKey) with the specified key code and modifier state to this window group, regardless of which window group currently has the keyboard focus.

Key events for the key given by aKeyCode are captured only when the modifier keys specified by aModifierMask are in the states specified by aModifier. For example, calling
wsGroup->CaptureKey(EKeyDevice2, EModifierAlt|EModifierCtrl, EModifierCtrl); 
will capture the EKeyDevice2 key only if Ctrl is pressed and Alt is not.

Normally, keyboard key presses result in three events being delivered to the client: EEventKeyDown, EEventKey and EEventKeyUp. However, CaptureKey() results in only the EEventKey being delivered to the window group that called it: the EEventKeyUp and EEventKeyDown events are sent to the window group that has focus. If a window group wishes to capture the EEventKeyUp and EEventKeyDown events as well as the EEventKey, it should call CaptureKeyUpAndDowns().

Note that a window group can call this function more than once (to request capture for more than one key), and more than one window group may have requested key capture. If multiple window groups have requested to capture the same key using this function, the key is sent to the window group that most recently requested the key capture.

This function always causes a flush of the window server buffer.

Parameters
aKeycodeThe key code for the key to be captured. Key codes for special keys are defined in TKeyCode.
aModifierMaskBitmask that identifies the modifier keys of interest. Possible values are defined in TEventModifier.
aModifierBitmask that identifies which of the modifier keys in aModifierMask need to be set and which need to be unset. For example, see the description above.
Return Value
A handle identifying the capture key, or one of the system-wide error codes (if <0). KErrPermissionDenied indicates that the requested key cannot be captured by this window group, because it has been protected by another window group. For more information, see the PROTECTEDKEY parameter in wsini.ini. Handles should be kept in order to be passed to CancelCaptureKey() later. KErrPermissionDenied, if
Capability
SwEvent

CaptureKey ( TUint, TUint, TUint, TInt )

IMPORT_C TInt32CaptureKey(TUintaKeycode,
TUintaModifierMask,
TUintaModifier,
TIntaPriority
)

Requests key capture, with a priority.

This function instructs the window server to send key events (of type EEventKey) with the specified key code and modifier state to this window group, regardless of which window group currently has the keyboard focus.

Key events for the key given by aKeyCode are captured only when the modifier keys specified by aModifierMask are in the states specified by aModifier. For example, calling
wsGroup->CaptureKey(EKeyDevice2, EModifierAlt|EModifierCtrl, EModifierCtrl, priority); 
will capture the EKeyDevice2 key only if Ctrl is pressed and Alt is not.

Normally, keyboard key presses result in three events being delivered to the client: EEventKeyDown, EEventKey and EEventKeyUp. However, CaptureKey() results in only the EEventKey being delivered to the window group that called it: the EEventKeyUp and EEventKeyDown events are sent to the window group that has focus. If a window group wishes to capture the EEventKeyUp and EEventKeyDown events as well as the EEventKey, it should call CaptureKeyUpAndDowns().

Note that a window group can call this function more than once (to request capture for more than one key), and more than one window group may have requested key capture. If multiple window groups have requested to capture the same key at the same priority, the key is sent to the window group that most recently requested the key capture.

This function always causes a flush of the window server buffer.

Parameters
aKeycodeThe key code for the key to be captured. Key codes for special keys are defined in TKeyCode.
aModifierMaskBitmask that identifies the modifier keys of interest. Possible values are defined in TEventModifier.
aModifierBitmask that identifies which of the modifier keys in aModifierMask need to be set and which need to be unset. For example, see the description above.
aPriorityA priority value - if more than one window group has requested capture for the same key event, the one with the highest priority will capture it. The value must be greater than KMinTInt.
Return Value
A handle identifying the capture key, or one of the system-wide error codes (if <0). KErrPermissionDenied indicates that the requested key cannot be captured by this window group, because it has been protected by another window group. For more information, see the PROTECTEDKEY parameter in wsini.ini. Handles should be kept in order to be passed to CancelCaptureKey() later.
Capability
SwEvent

CaptureKeyUpAndDowns ( TUint, TUint, TUint )

IMPORT_C TInt32CaptureKeyUpAndDowns(TUintaScanCode,
TUintaModifierMask,
TUintaModifier
)

Requests the capture of key-up and key-down events on behalf of a window group.

This function requests the window server to send EEventKeyUp and EEventKeyDown key events from the specified key to this window group, regardless of which window group currently has the keyboard focus. This contrasts with CaptureKey(), which causes the window server to send the EEventKey event.

Key events for the key given by aScanCode are captured only when the modifier keys specified by aModifierMask are in the states specified by aModifiers. See RWsSession::SetHotKey() for examples of how to set aModifierMask and aModifiers.

Note: in general, keyboard key presses result in three events being delivered to the client: EEventKeyDown, EEventKey and EEventKeyUp.

This function always causes a flush of the window server buffer.

Parameters
aScanCodeScan code for the key to be captured. Scan codes are defined in TStdScanCode.
aModifierMaskBitmask that identifies the modifier keys of interest. Possible values are defined in TEventModifier.
aModifierBitmask that identifies which of the modifier keys in aModifierMask need to be set and which need to be unset.
Return Value
A handle identifying the capture key, or one of the system-wide error codes (if < 0). KErrPermissionDenied indicates that the requested key cannot be captured by this window group, because it has been protected by another window group. For more information, see the PROTECTEDKEY parameter in wsini.ini. Handles should be kept in order to be passed to CancelCaptureKeyUpAndDowns() later.
Capability
SwEvent

CaptureKeyUpAndDowns ( TUint, TUint, TUint, TInt )

IMPORT_C TInt32CaptureKeyUpAndDowns(TUintaScanCode,
TUintaModifierMask,
TUintaModifier,
TIntaPriority
)
Requests the capture of key-up and key-down events on behalf of a window group. This function is identical to the other overload, except that it allows a priority to be specified. This function always causes a flush of the window server buffer.
Parameters
aScanCodeScan code for the key to be captured. Scan codes are defined in TStdScanCode.
aModifierMaskBitmask that identifies the modifier keys of interest. Possible values are defined in TEventModifier.
aModifierBitmask that identifies which of the modifier keys in aModifierMask need to be set and which need to be unset.
aPriorityA priority value - if more than one window group has requested capture for the same key event, the one with the highest priority will capture it. The value must be greater than KMinTInt.
Return Value
A handle identifying the capture key, or one of the system-wide error codes (if < 0). KErrPermissionDenied indicates that the requested key cannot be captured by this window group, because it has been protected by another window group. For more information, see the PROTECTEDKEY parameter in wsini.ini. Handles should be kept in order to be passed to CancelCaptureKeyUpAndDowns() later.
Capability
SwEvent

CaptureLongKey ( TUint, TUint, TUint, TUint, TInt, TUint )

IMPORT_C TInt32CaptureLongKey(TUintaInputKeyCode,
TUintaOutputKeyCode,
TUintaModifierMask,
TUintaModifier,
TIntaPriority,
TUintaFlags
)

Requests capture of long key presses.

This function causes the window server to send a long key event (which is generated when the key has been held down for the initial keyboard repeat time), to this window group, regardless of whether it currently has keyboard focus. The key that is output can have a different key code to the key that was captured.

Key events for the key given by aInputKeyCode are captured only when the modifier keys specified by aModifierMask are in the states specified by aModifiers.

A priority can be specified to resolve any conflicts that arise when multiple window groups attempt to capture the same long key event.

Normal key press behaviour (where no long key press capture requests have been made) is as follows. When a key is pressed, a key down event occurs, followed by one or more standard (short) key events, followed by a key up event. All of these key events are sent to the application in the foreground.

Key press behaviour when an application has made a long key press capture request is as follows. When the key is pressed and held down, a long key event is generated in addition to the events described above (although if a long key event occurs, then there will never be more than one standard key event) and this is sent to the application that made the request, even if it is not in the foreground.

If that application also wants to capture the up and down key events then it needs to call CaptureKeyUpAndDowns(). If it wants to capture the standard key event, then it needs to call CaptureKey(). Depending on flags (enumerated in TLongCaptureFlags) specified when making the long key capture request, the standard key event can either be generated when the key is pressed, as it would be if no long key capture request had been made, or it can be generated when the key is released. In the latter case, the standard key event is only generated if the key was not held down long enough to generate a long key event.

This function always causes a flush of the window server buffer.

See also: TLongCaptureFlags

Parameters
aInputKeyCodeThe key code for the key to be captured. Key codes for special keys are defined in TKeyCode.
aOutputKeyCodeThe key code that will be output.
aModifierMaskOnly the modifier keys in this mask are tested against the states specified in aModifier.
aModifierThe key is captured only when the modifier keys specified in aModifierMask match these states, where 1 = modifier set, and 0 = modifier not set. Modifier key states are defined in TEventModifier.
aPriorityIf more than one window group has requested capture for the same long key event, the one with the highest priority will capture the event. The value must be greater than KMinTInt.
aFlagsConfigures the long key capture behaviour. See the TLongCaptureFlags enum.
Return Value
Identifying value for the long key capture. For use with the CancelCaptureLongKey() function.
Capability
SwEvent

CaptureLongKey ( TTimeIntervalMicroSeconds32, TUint, TUint, TUint, TUint, TInt, TUint )

IMPORT_C TInt32CaptureLongKey(TTimeIntervalMicroSeconds32aRepeatTime,
TUintaInputKeyCode,
TUintaOutputKeyCode,
TUintaModifierMask,
TUintaModifier,
TIntaPriority,
TUintaFlags
)

Requests capture of long key presses.

This function causes the window server to send a long key event (which is generated when the key has been held down for the specified time), to this window group, regardless of whether it currently has keyboard focus.

For more information on this function, see the other CaptureLongKey() overload.

This function always causes a flush of the window server buffer.

See also: TLongCaptureFlags

Parameters
aRepeatTimeThe time interval in microseconds between the initial key event and the first auto repeat.
aInputKeyCodeThe key code for the key to be captured. Key codes for special keys are defined in TKeyCode.
aOutputKeyCodeThe key code that will be output.
aModifierMaskOnly the modifier keys in this mask are tested against the states specified in aModifier.
aModifierThe key is captured only when the modifier keys specified in aModifierMask match these states, where 1 = modifier set, and 0 = modifier not set. Modifier key states are defined in TEventModifier.
aPriorityIf more than one window group has requested capture for the same long key event, the one with the highest priority will capture the event. The value must be greater than KMinTInt.
aFlagsConfigures the long key capture behaviour. See the TLongCaptureFlags enum.
Return Value
Identifying value for the long key capture. For use with the CancelCaptureLongKey() function.
Capability
SwEvent

ClearChildGroup ( )

IMPORT_C TIntClearChildGroup()

Clears all children of the current window group.

The window group chain is broken directly after the current window group. In the general case (consider clearing the child group of a window group in the middle of a long chain), this results in two distinct chains. In the special cases where either the parent window group or the child window group ends up as the only member of a resultant chain, it is removed from that chain.

See also: SetChildGroup()

Return Value
KErrArgument if trying to clear the child window group of a window group that has no children; KErrNoMemory if, when splitting into 2 chains, there is insufficient memory to create the second chain (in this case the child window groups are all cleared from the current chain, then the error is returned). Otherwise KErrNone or one of the system-wide error codes.

Construct ( TUint32 )

IMPORT_C TIntConstruct(TUint32aClientHandle)

Completes construction of a window group.

Construction must be complete before any other window group methods can be called.

This function always causes a flush of the window server buffer.

See also: RWindow::Construct()

Parameters
aClientHandleThe client's handle for the window. See RWindow::Construct() for a description of the client handle.
Return Value
KErrNone if successful, otherwise one of the system-wide error codes, the most likely of which is KErrNoMemory.

Construct ( TUint32, CWsScreenDevice * )

IMPORT_C TIntConstruct(TUint32aClientHandle,
CWsScreenDevice *aScreenDevice
)

Completes construction of a window group on a screen.

Construction must be complete before any other window group methods can be called.

This function always causes a flush of the window server buffer.

See also: RWindow::Construct()

Parameters
aClientHandleThe client's handle for the window. See RWindow::Construct() for a description of the client handle.
aScreenDeviceA screen device is used to specify on which screen the window should be. The screen device must exist for as long as the window is in use. Different screen devices for two different window groups in an application allow the windows to have different screen size modes and WSERV will automatically switch from one to the other when there is a screen size mode change.
Return Value
KErrNone if successful, otherwise one of the system-wide error codes, the most likely of which is KErrNoMemory.

Construct ( TUint32, TBool, CWsScreenDevice * )

IMPORT_C TIntConstruct(TUint32aClientHandle,
TBoolaIsFocusable,
CWsScreenDevice *aScreenDevice
)

Completes construction of a window group on a screen.

Construction must be complete before any other window group methods can be called.

The purpose of this Construct function for RWindowGroup is that it allows chains of window groups to be created on a specific screen. When one of the window groups in a chain is moved with SetOrdinalPosition then all window groups in that chain will be moved to be consecutative, with the parent being at the back in the Z-order. The purpose of this feature is to allow embedding of applications.

Note: The term parent should not be confused with the paremeter used in the function RWindow::Construct. There it means that this window is a child of that window in the tree. Here is just means that the two window groups involved will have an extra association. Note: This window group will be given the same ordinal priority as it's parent window group.

This function always causes a flush of the window server buffer.

See also: RWindow::Construct()

Parameters
aClientHandleThe client's handle for the window. See RWindow::Construct() for a description of the client handle.
aScreenDeviceA screen device is used to specify on which screen the window should be. The screen device must exist for as long as the window is in use. Different screen devices for two different window groups in an application allow the windows to have different screen size modes and WSERV will automatically switch from one to the other when there is a screen size mode change.
Return Value
KErrNone if successful, otherwise one of the system-wide error codes, the most likely of which is KErrNoMemory. It will return KErrPermissionDenied if the requested parent has not allowed this window group to be its child, and it will return KErrInUse if the parent already has a child.

Construct ( TUint32, TBool )

IMPORT_C TIntConstruct(TUint32aClientHandle,
TBoolaIsFocusable
)

Completes the construction of a window group, setting its initial focus state.

Construction must be complete before any other window group methods can be called.

aInitialFocusState can be specified in order to prevent a window group from automatically taking the keyboard focus when it is created. If specified, it sets the initial focus state of the window group. If a window group has a focus state of ETrue (the default), it can receive keyboard focus; if EFalse, it is prevented from receiving keyboard focus until this setting is changed. If a window group is constructed without specifying an initial focus state, keyboard focus will be enabled by default and the window group will receive keyboard focus automatically when it is created. To prevent this, set aInitialFocusState to EFalse.

This function always causes a flush of the window server buffer.

See also: EnableReceiptOfFocus() RWindow::Construct()

Parameters
aClientHandleThe client's integer handle for the window. See RWindow::Construct() for a description of the client handle.
aIsFocusableWhether the window is focusable. Set ETrue for it to be able to receive focus, EFalse otherwise.
Return Value
KErrNone if successful, otherwise one of the system-wide error codes, the most likely of which is KErrNoMemory.

ConstructChildApp ( TInt, TUint32 )

IMPORT_C TIntConstructChildApp(TIntaIdOfParentWindowGroup,
TUint32aClientHandle
)

Completes construction of a window group.

Construction must be complete before any other window group methods can be called.

The purpose of this Construct function for RWindowGroup is that it allows chains of window groups to be created. When one of the window groups in a chain is moved with SetOrdinalPosition then all window groups in that chain will be moved to be consecutative, with the parent being at the back in the Z-order. The purpose of this feature is to allow embedding of applications.

Note: The term parent should not be confused with the paremeter used in the function RWindow::Construct. There it means that this window is a child of that window in the tree. Here is just means that the two window groups involved will have an extra association. Note: This window group will be given the same ordinal priority as it's parent window group.

This function always causes a flush of the window server buffer.

See also: RWindow::Construct()

Parameters
aIdOfParentWindowGroupThe Identifier of the parent window group.
aClientHandleThe client's handle for the window. See RWindow::Construct() for a description of the client handle.
Return Value
KErrNone if successful, otherwise one of the system-wide error codes, the most likely of which is KErrNoMemory. It will return KErrPermissionDenied if the requested parent has not allowed this window group to be its child, and it will return KErrInUse if the parent already has a child.

ConstructChildApp ( TInt, TUint32, TBool )

IMPORT_C TIntConstructChildApp(TIntaIdOfParentWindowGroup,
TUint32aClientHandle,
TBoolaIsFocusable
)

Completes construction of a window group.

Construction must be complete before any other window group methods can be called.

This Construct function of RWindowGroup allows both the creation of the group window in a chain and for and for it not to recieve focus.

This function always causes a flush of the window server buffer.

See also: RWindow::Construct()

Parameters
aIdOfParentWindowGroupThe Identifier of the parent window group.
aClientHandleThe client's handle for the window. See RWindow::Construct() for a description of the client handle.
aIsFocusableWhether the window is focusable. Set ETrue for it to be able to receive focus, EFalse otherwise.
Return Value
KErrNone if successful, otherwise one of the system-wide error codes, the most likely of which is KErrNoMemory. It will return KErrPermissionDenied if the requested parent has not allowed this window group to be its child, and it will return KErrInUse if the parent already has a child.

DefaultOwningWindow ( )

IMPORT_C voidDefaultOwningWindow()

Makes this window group the default owning window group.

The default owning window group is the group that is brought to the foreground when the window group which has keyboard focus (the foreground application) dies, if no other window has been set up as the owning group.

This window group will take over as the default owning window group even if another window group has previously called this function. However, if this window group is subsequently destroyed, the default owning window group will revert to being the previous window group.

See also: SetOwningWindowGroup()

Capability
WriteDeviceData

DisableKeyClick ( TBool )

IMPORT_C voidDisableKeyClick(TBoolaState)

Disables key clicks.

If a window group calls this function with aState=ETrue, key clicks (i.e. the sound generated when keys are pressed) will be disabled whenever this window group has the keyboard focus. Key clicks for this window group can be re-enabled by calling this function with aState=EFalse.

Note that this function doesn't do anything in v6.0 and v6.1.

Parameters
aStateIf ETrue, no key clicks occur when this window group has keyboard focus. If EFalse, key clicks are enabled when this window group has keyboard focus.

DisableScreenChangeEvents ( )

IMPORT_C voidDisableScreenChangeEvents()

Disables screen change event sending.

This function prevents window groups from getting screen change events, which are sent, for example, when the cover on a phone that supports screen flipping is opened or closed.

Note that not getting screen change events is the default behaviour.

See EnableScreenChangeEvents().

EnableReceiptOfFocus ( TBool )

IMPORT_C voidEnableReceiptOfFocus(TBoolaState)

Enables or disables receipt of keyboard focus.

The front most focusable window has keyboard focus. This function sets whether or not the window can receive keyboard focus.

Parameters
aStateWhether this window group can accept keyboard focus.

EnableScreenChangeEvents ( )

IMPORT_C TIntEnableScreenChangeEvents()

Enables screen change event sending.

This function ensures that window groups are sent screen change events, which are sent, for example, when the cover on a phone that supports screen flipping is opened or closed.

Note that not getting screen change events is the default behaviour.

This function always causes a flush of the window server buffer.

See also: DisableScreenChangeEvents()

Return Value
KErrNone if successful, otherwise another of the system-wide error codes.

Identifier ( )

IMPORT_C TIntIdentifier()const

Gets the identifier of the window group.

This function always causes a flush of the window server buffer.

Return Value
The window group identifier.

Name ( TDes & )

IMPORT_C TIntName(TDes &aWindowName)const

Gets the window group's name, as set by SetName().

This function always causes a flush of the window server buffer.

Parameters
aWindowNameOn return, contains the name of this window group.
Return Value
KErrNone if successful, otherwise one of the system-wide error codes.

RemovePriorityKey ( TUint, TUint, TUint )

IMPORT_C voidRemovePriorityKey(TUintaKeycode,
TUintaModifierMask,
TUintaModifier
)

Removes a priority key.

Use this function to remove a priority key that was added using AddPriorityKey(). If the specified priority key does not exist, this function does nothing.

Note: all 3 parameters must match exactly for a successful removal.

Parameters
aKeycodeKey code for the priority key to be removed
aModifierMaskModifier mask for the priority key to be removed
aModifierModifier states for the priority key to be removed

SetChildGroup ( TInt )

IMPORT_C TIntSetChildGroup(TIntaId)

Sets a window group chain onto the current window group.

Appends all the window groups chained to the child window group onto the chain containing the current window group.

See also: ClearChildGroup()

Return Value
KErrArgument if any of these are true:child group referred to by aId does not existthe current window group already has a childthe window group requested to be the child is already a child of another window groupthe window group requested to the child is already the parent or grand parent etc. of the current window group KErrNoMemory: If the group and it's child are not currently in a chain then a new chain needs to be created which can fail due to lack of memory; otherwise one of the system-wide error codes is returned.

SetName ( const TDesC & )

IMPORT_C TIntSetName(const TDesC &aName)

Sets the window group's name.

Use this function to set the name of a window group. Window group names are arbitrary and can contain any data that can be stored in a descriptor of type TDesC.

Note: if this function is successful, a window group change event is sent to everything that is set up to receive these events.

This function always causes a flush of the window server buffer.

Parameters
aNameThe name for the window group.
Return Value
KErrNone if successful, otherwise one of the system-wide error codes.

SetOrdinalPositionErr ( TInt, TInt )

IMPORT_C TIntSetOrdinalPositionErr(TIntaPos,
TIntaOrdinalPriority
)

Sets the ordinal position and ordinal priority of a window.

Ordinal priority is a number assigned to a window that determines its position in the z-order. For a description of ordinal priority, see the RWindowTreeNode::SetOrdinalPosition function. To set a priority of KPasswordWindowGroupPriority or greater, client will require SwEvent capability. If client does not have SwEvent capability then it will return error code.

Note: If this window is a window group in a chain, then all other window groups in the chain will be moved also. And further they will all have their ordinal priority set to the specified value. When this function is called on Window with aPos set to KOrdinalPositionSwitchToOwningWindow then the function doesn't change the ordinal position of the window, if instead it has focus then the window that would come to the forground if it died will be moved to the foreground.

This function always causes a flush of the window server buffer.

Parameters
aPosThe window's new ordinal position. The lower the ordinal, the closer to the front of the z-order the window will be. Specifying any negative value however, sends the window to the back of the z-order.
aOrdinalPriorityThe window's new ordinal priority.
Return Value
if not successful, one of the system-wide error codes.

SetOrdinalPriorityAdjust ( TInt )

IMPORT_C voidSetOrdinalPriorityAdjust(TIntaAdjust)

Sets the window group's priority adjust value.

This function is primarily designed for sessions that own multiple window groups. After this function has been called by a window group, that window group's priority will be adjusted by the amount given by aAdjust whenever another window group owned by the same session gains keyboard focus.

When the session loses focus, the priority returns to its original value.

Note: This is ignored for window groups in chains.

Parameters
aAdjustValue to be added to window group's existing priority.

SetOwningWindowGroup ( TInt )

IMPORT_C voidSetOwningWindowGroup(TIntaIdentifier)

Sets the owning window group for this window group.

The owning window group is the group that is brought to the foreground when the window group which has keyboard focus (the foreground application) dies.

If the owning window group is not set, then the window group brought to the foreground when the application dies will be the default owning window group.

Parameters
aIdentifierThe window group's identifier.

SetTextCursor ( RWindowBase &, const TPoint &, const TTextCursor & )

IMPORT_C voidSetTextCursor(RWindowBase &aWin,
const TPoint &aPos,
const TTextCursor &aCursor
)

Sets the text cursor.

Use this function to set a text cursor for this window group, or to change the existing text cursor's position or appearance.

Parameters
aWinThe text cursor is in this window, and is hence clipped to it and positioned relative to it.
aPosPosition of the text cursor's origin, relative to the origin of aWin.
aCursorThe cursor to set. This may be a standard rectangular cursor, of type TTextCursor::ETypeRectangle or TTextCursor::ETypeHollowRectangle, or it may be a custom cursor, in which case it should have previously been added to the window server using RWsSession::SetCustomTextCursor().

SetTextCursor ( RWindowBase &, const TPoint &, const TTextCursor &, const TRect & )

IMPORT_C voidSetTextCursor(RWindowBase &aWin,
const TPoint &aPos,
const TTextCursor &aCursor,
const TRect &aClipRect
)

Sets the text cursor and its clipping rectangle.

Use this function to set a text cursor for this window group, or to change the existing text cursor's position or appearance.

The cursor is clipped to aClipRect. This allows, for example, the window to have a border region in which the cursor is not displayed.

Parameters
aWinThe text cursor is in this window, and is hence clipped to it and positioned relative to it.
aPosPosition of the text cursor's origin, relative to the origin of aWin.
aCursorThe cursor to set. This may be a standard rectangular cursor, of type TTextCursor::ETypeRectangle or TTextCursor::ETypeHollowRectangle, or it may be a custom cursor, in which case it should have previously been added to the window server using RWsSession::SetCustomTextCursor().
aClipRectThe cursor is clipped to this rectangle. Rectangle co-ordinates are relative to the origin of aWin.

SimulateAdvancedPointerEvent ( TRawEvent )

IMPORT_C voidSimulateAdvancedPointerEvent(TRawEventaEvent)

Simulates a pointer event based on TRawEvent that contains a valid pointer number and Z coordinate. Please note that Z coordinate is the pointer's proximity combined with its pressure, the same way as returned by TAdvancedPointerEvent::ProximityAndPressure().

This function sends a pointer event to the window as if it had come from the kernel, except that it will be sent to a window which is a child of the window group it is called on.

Notes:

The function can be used to send a pointer event to an application when it is in the background.

The function is supported for testing purposes only.

See also: RWindowGroup::SimulatePointerEvent(TRawEvent aEvent) TAdvancedPointerEvent::ProximityAndPressure() To become publishedAll with WSERV NGA APIs To become released with WSERV NGA APIs

Parameters
aEventThe simulated raw event

SimulatePointerEvent ( TRawEvent )

IMPORT_C voidSimulatePointerEvent(TRawEventaEvent)

Simulates a pointer event based on a TRawEvent that contains neither valid pointer number nor Z coordinate data (WSERV will assume that their values are all 0, no matter what they really are).

This function sends a pointer event to the window as if it had come from the kernel, except that it will be sent to a window which is a child of the window group it is called on.

Notes:

The function can be used to send a pointer event to an application when it is in the background.

The function is supported for testing purposes only.

See also: RWindowGroup::SimulateAdvancedPointerEvent(TRawEvent aEvent)

Parameters
aEventThe simulated raw event.