widgetmodel/alfwidgetmodel/inc/alfwidgeteventhandlerimpl.h
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:   Class for private implementation for AlfWidgetEventHandler.
*
*/


#ifndef ALFWIDGETEVENTHANDLERIMPL_H
#define ALFWIDGETEVENTHANDLERIMPL_H

#include <osn/alfptrvector.h>
#include <osn/osndefines.h>
#include <alf/ialfwidgeteventhandler.h>
#include "alfeventinput.h"
#include "alfeventoutput.h"
#include "alfanimationoutput.h"

using namespace osncore;

namespace Alf
    {

/**
 *  Widget event handler internal implementation.
 */
OSN_NONSHARABLE_CLASS( AlfWidgetEventHandlerImpl )
    {
public:

    /**
     * constructor.
     * 
     * @param aEventHandlerType            Event handler type. 
     *                                     It can be presentaion related or logical.
     * @param aEventHandlerExecutionPhase  Event handler exceution phase. 
     *                                     It can be tunneling phase/bubbling phase/both.
     */
    AlfWidgetEventHandlerImpl(IAlfWidgetEventHandler::AlfEventHandlerType aEventHandlerType,
         IAlfWidgetEventHandler::AlfEventHandlerExecutionPhase aEventHandlerExecutionPhase);

    /**
    * Destructor.
    */
    virtual ~AlfWidgetEventHandlerImpl();

private:
    /**
       * Destructor.
       */
    void construct();

public: // data

    AlfPtrVector<AlfEventInput>mInputs;
    AlfPtrVector<AlfPointerEventInput> mPointerInputs;
    AlfPtrVector<AlfEventOutput> mOutputs;
    AlfPtrVector<AlfAnimationOutput> mAnimationOutputs;
    AlfPtrVector<AlfWidgetAttributeOutput> mWidgetAttributeOutputs;
    AlfPtrVector<AlfWidgetAttributeInput> mWidgetAttributeInputs;
    AlfPtrVector<AlfEventCancelOutput> mCancelOutputs;
    AlfPtrVector<AlfAnimationCancelOutput> mAnimationCancelOutputs;
    AlfPtrVector<AlfStateChangeOutput> mStateChangeOutputs;
    AlfPtrVector<AlfEventPasserInput> mEventPasserInputs;
    AlfPtrVector<AlfEventPasserOutput> mEventPasserOutputs;

#ifdef RD_TACTILE_FEEDBACK
    AlfPtrVector<AlfTactileOutput> mTactileOutputs;
#endif // RD_TACTILE_FEEDBACK
    AlfPtrVector<AlfEventOutputSignal> mWidgetEventOutputSignals;
    AlfPtrVector<AlfAppEventOutput> mAppEventOutputs;

    unsigned int mActiveStates;
    bool mCapturing;
    /**
     * Event handler init data
     */
    AlfWidgetEventHandlerInitData mEhData;
    
    /*
     * Type of event handler. It can be presentaion related or logical.
     */
    IAlfWidgetEventHandler::AlfEventHandlerType mEventHandlerType;

    /*
     * Event handler exceution phase. It can be tunneling phase/bubbling phase/both.
     */
    IAlfWidgetEventHandler::AlfEventHandlerExecutionPhase mEventHandlerExecutionPhase;
    };

    } // namespace Alf

#endif // C_ALFWIDGETEVENTHANDLERIMPL_H