mulwidgets/alfviewwidget/src/alfviewcontrol.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:56:02 +0200
changeset 0 e83bab7cf002
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:  The implementation	for	presentation elements.
*
*/


// Local Includes
#include "alfviewcontrol.h"
#include "alfviewwidget.h"

// AlfClient Includes
#include <alf/alfevent.h>

// Widget Model
#include <alf/alfwidgetevents.h>

using namespace Alf;

CAlfViewControl::CAlfViewControl(CAlfEnv& aEnv, AlfViewWidget& aViewWidget)
    : CAlfWidgetControl(aEnv), mViewWidget(aViewWidget)
    {
    }

CAlfViewControl::~CAlfViewControl()
    {
    while(mViewWidget.widgetCount())
	    {
	    mViewWidget.setChildNameToDelete(UString(mViewWidget.getWidget(0)->widgetName()));
	    mViewWidget.removeWidget(0);
	    }
    }

AlfEventStatus CAlfViewControl::handleEvent(const TAlfEvent& aEvent)
    {
    AlfEventStatus ret = CAlfWidgetControl::handleEvent(aEvent);
    if(ret == EEventNotHandled && aEvent.IsKeyEvent())
		{
		if(aEvent.KeyEvent().iScanCode == EStdKeyRightArrow ||
		   aEvent.KeyEvent().iScanCode == EStdKeyDownArrow )
			{
			if(aEvent.Code() == EEventKey)
				{
				TAlfEvent focusNext(EEventFocusNextWidget);
				return CAlfWidgetControl::processEvent(focusNext);							
				}
			}
		else if(aEvent.KeyEvent().iScanCode == EStdKeyLeftArrow ||
		        aEvent.KeyEvent().iScanCode == EStdKeyUpArrow)
			{
			if(aEvent.Code() == EEventKey)
				{
				TAlfEvent focusPrevious(EEventFocusPreviousWidget);
				return CAlfWidgetControl::processEvent(focusPrevious);
				}
			}
		}
	return ret;
    }

AlfViewWidget& CAlfViewControl::viewWidget()
    {
    return mViewWidget;
    }