15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 // System includes |
18 // System includes |
19 #include <aknappui.h> |
19 #include <aknappui.h> |
20 #include <AknUtils.h> |
|
21 #include <AknsUtils.h> |
|
22 #include <AknsDrawUtils.h> |
|
23 #include <AknsLayeredBackgroundControlContext.h> |
|
24 #include <gdi.h> |
|
25 |
20 |
26 // User includes |
21 // User includes |
27 #include "xnappuiadapter.h" |
22 #include "xnappuiadapter.h" |
28 #include "xnuiengine.h" |
23 #include "xnuiengine.h" |
29 #include "xneditmode.h" |
24 #include "xneditmode.h" |
30 #include "xnviewadapter.h" |
|
31 #include "xnfocuscontrol.h" |
|
32 |
25 |
33 #include "xnbgcontrol.h" |
26 #include "xnbgcontrol.h" |
34 |
27 |
35 // Constants |
28 // Constants |
36 |
29 |
75 // CXnBgControl::CXnBgControl() |
68 // CXnBgControl::CXnBgControl() |
76 // C++ default constructor. |
69 // C++ default constructor. |
77 // ----------------------------------------------------------------------------- |
70 // ----------------------------------------------------------------------------- |
78 // |
71 // |
79 CXnBgControl::CXnBgControl() |
72 CXnBgControl::CXnBgControl() |
|
73 : iHitpoint( TPoint( -1,-1 ) ) |
80 { |
74 { |
81 } |
75 } |
82 |
76 |
83 // ----------------------------------------------------------------------------- |
77 // ----------------------------------------------------------------------------- |
84 // CXnBgControl::ConstructL() |
78 // CXnBgControl::ConstructL() |
104 ActivateL(); |
98 ActivateL(); |
105 |
99 |
106 MakeVisible( ETrue ); |
100 MakeVisible( ETrue ); |
107 |
101 |
108 SetComponentsToInheritVisibility( ETrue ); |
102 SetComponentsToInheritVisibility( ETrue ); |
|
103 |
|
104 static_cast< CXnAppUiAdapter* >( iAvkonAppUi ) |
|
105 ->UiStateListener().AddObserver( *this ); |
|
106 |
109 } |
107 } |
110 |
108 |
111 // ----------------------------------------------------------------------------- |
109 // ----------------------------------------------------------------------------- |
112 // CXnBgControl::CountComponentControls() |
110 // CXnBgControl::CountComponentControls() |
113 // |
111 // |
176 // |
174 // |
177 // ----------------------------------------------------------------------------- |
175 // ----------------------------------------------------------------------------- |
178 // |
176 // |
179 void CXnBgControl::HandlePointerEventL( const TPointerEvent& aPointerEvent ) |
177 void CXnBgControl::HandlePointerEventL( const TPointerEvent& aPointerEvent ) |
180 { |
178 { |
|
179 switch( aPointerEvent.iType ) |
|
180 { |
|
181 case TPointerEvent::EButton1Down: |
|
182 iHitpoint = aPointerEvent.iPosition; |
|
183 break; |
|
184 |
|
185 case TPointerEvent::EButton1Up: |
|
186 break; |
|
187 |
|
188 default: |
|
189 break; |
|
190 } |
|
191 |
181 CXnAppUiAdapter* appui( static_cast< CXnAppUiAdapter* >( iAvkonAppUi ) ); |
192 CXnAppUiAdapter* appui( static_cast< CXnAppUiAdapter* >( iAvkonAppUi ) ); |
182 |
193 |
183 appui->UiEngine().DisableRenderUiLC(); |
194 appui->UiEngine().DisableRenderUiLC(); |
184 |
195 |
185 CCoeControl::HandlePointerEventL( aPointerEvent ); |
196 CCoeControl::HandlePointerEventL( aPointerEvent ); |
220 } |
231 } |
221 |
232 |
222 iControl = aControl; |
233 iControl = aControl; |
223 } |
234 } |
224 |
235 |
|
236 // ----------------------------------------------------------------------------- |
|
237 // CXnBgControl::ResetGrabbingL() |
|
238 // Service for removing grabbing controls |
|
239 // ----------------------------------------------------------------------------- |
|
240 // |
|
241 void CXnBgControl::ResetGrabbingL() |
|
242 { |
|
243 TPointerEvent event; |
|
244 event.iType = TPointerEvent::EButton1Up; |
|
245 |
|
246 RemoveGrabbingControL( this, event ); |
|
247 |
|
248 iHitpoint.SetXY( -1, -1 ); |
|
249 } |
|
250 |
|
251 // ----------------------------------------------------------------------------- |
|
252 // CXnBgControl::PrepareDestroy() |
|
253 // Prepares control for destroying |
|
254 // ----------------------------------------------------------------------------- |
|
255 // |
|
256 void CXnBgControl::PrepareDestroy() |
|
257 { |
|
258 static_cast< CXnAppUiAdapter* >( iAvkonAppUi ) |
|
259 ->UiStateListener().RemoveObserver( *this ); |
|
260 } |
|
261 |
|
262 // ----------------------------------------------------------------------------- |
|
263 // CXnBgControl::RemoveGrabbingControL() |
|
264 // Removes recursively grabbing controls |
|
265 // ----------------------------------------------------------------------------- |
|
266 // |
|
267 void CXnBgControl::RemoveGrabbingControL( const CCoeControl* aControl, |
|
268 const TPointerEvent& aEvent ) const |
|
269 { |
|
270 TInt count = aControl->CountComponentControls(); |
|
271 |
|
272 for( TInt i = 0; i < count; i++ ) |
|
273 { |
|
274 CCoeControl* child = aControl->ComponentControl( i ); |
|
275 |
|
276 if( child && child->Rect().Contains( iHitpoint ) ) |
|
277 { |
|
278 child->CCoeControl::HandlePointerEventL( aEvent ); |
|
279 RemoveGrabbingControL( child, aEvent ); |
|
280 } |
|
281 } |
|
282 } |
|
283 |
|
284 // ----------------------------------------------------------------------------- |
|
285 // CXnBgControl::NotifyForegroundChanged() |
|
286 // Notifies foreground changes. |
|
287 // ----------------------------------------------------------------------------- |
|
288 // |
|
289 void CXnBgControl::NotifyForegroundChanged( TForegroundStatus aStatus ) |
|
290 { |
|
291 switch( aStatus ) |
|
292 { |
|
293 case EForeground: |
|
294 break; |
|
295 |
|
296 case EUnknown: |
|
297 case EBackground: |
|
298 case EPartialForeground: |
|
299 default: |
|
300 TRAP_IGNORE( ResetGrabbingL(); ) |
|
301 break; |
|
302 } |
|
303 } |
|
304 |
|
305 // ----------------------------------------------------------------------------- |
|
306 // CXnBgControl::NotifyLightStatusChanged() |
|
307 // Notifies primary display light status is changed. |
|
308 // ----------------------------------------------------------------------------- |
|
309 // |
|
310 void CXnBgControl::NotifyLightStatusChanged( TBool /*aLightsOn*/ ) |
|
311 { |
|
312 |
|
313 } |
|
314 |
|
315 // ----------------------------------------------------------------------------- |
|
316 // CXnBgControl::NotifyInCallStateChaged() |
|
317 // Notifies in-call state is changed. |
|
318 // ----------------------------------------------------------------------------- |
|
319 // |
|
320 void CXnBgControl::NotifyInCallStateChaged( TBool /*aInCall*/ ) |
|
321 { |
|
322 |
|
323 } |
|
324 |
225 // End of file |
325 // End of file |
226 |
326 |