diff -r 51a74ef9ed63 -r ae94777fff8f Symbian3/SDK/Source/GUID-971C9B81-1D6F-59E7-9416-385A0787D642.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-971C9B81-1D6F-59E7-9416-385A0787D642.dita Fri Jun 11 12:39:03 2010 +0100 @@ -0,0 +1,65 @@ + + + + + +The +control stack +

The control stack is a mechanism provided by the control framework for +handling key press events. The Window Server, which generates events for control +framework applications, channels all key press events to the application that +currently has keyboard focus (Strictly speaking it channels key press events +to the window group ). It is up to the application itself +to channel the event to the correct destination as the Window Server does +not associate a key press event with a particular control.

+

In control framework applications using the standard app + UI the control stack contains a list of controls that wish to +receive keyboard events. Controls are added to the stack using CCoeAppUi::AddToStackL() and +their ordering on the stack determines their priority in receiving key events: +The one with the lowest position on the stack receiving key events first. +When a key press event occurs, it is offered to each control on the stack +in turn until it is consumed (i.e. used by that control).

+

The ordering of controls on the stack is determined by their priority, +a value passed to CCoeAppUi::AddToStackL(). If several controls +on the stack have the same priority, their ordering is determined by the order +in which they were added to the stack.

+enum + { + ECoeStackPriorityDefault=0, // Low Priority + ECoeStackPriorityMenu=10, + ECoeStackPriorityDialog=50, + ECoeStackPriorityCba=60, + ECoeStackPriorityAlert=200, + ECoeStackPriorityFep=250, + ECoeStackPriorityEnvironmentFilter=300 // High Priority + }; + +

The diagram below shows a hypothetical stack containing 4 controls added +in the following order: control A (priority ECoeStackPriorityDialog), +control B (ECoeStackPriorityMenu), control C (ECoeStackPriorityDefault — +used for application views) and control D (ECoeStackPriorityDialog).

+ + Example showing the order and priority of controls on the +control stack + + +

On the stack shown in the diagram key-press events will be offered first +to control D, followed by A, B and C in that order. A control on the stack +can refuse key press events by setting a flag. This might be done by a dialogs +when it is not visible.

+

Applications use the control stack to channel key press events to destinations +in decreasing order of priority, such as:

+ +
\ No newline at end of file