AniTouchRecognizerMapControl.h 1.76 KB
//
//  AniTouchRecognizerMapControl.h
//  SteveMaggieCpp
//
//  Created by Katarzyna Kalinowska-Górska on 17.05.2017.
//
//

#ifndef AniTouchRecognizerMapControl_h
#define AniTouchRecognizerMapControl_h

#include "IMapControl.h"

#include "AniMultipleTouchGestureRecognizer.h"
#include "AniTickleGestureRecognizer.h"
#include "Tickle2GestureRecognizer.h"
#include "AniLongPressGestureRecognizer.h"
#include "AniFastSwipeGestureRecognizer.h"
#include "AniTapGestureRecognizer.h"


class AniTouchRecognizerMapControl : public IMapControl {
    
public:
    virtual void install(AniMapLayer* p_AniMapLayer, IMapCharacter* p_controlledCharacter, std::vector<IMapControlInterface*> p_observers) override;
//    virtual void uninstall() override;
    
    virtual ~AniTouchRecognizerMapControl();

    virtual void setEnabled(bool p_enabled);
    
protected:

    bool m_enabled { true};

    AniMultipleTouchGestureRecognizer* m_multipleTouchAniGestureRecognizer {nullptr};
    AniLongPressGestureRecognizer* m_AniLongPressGestureRecognizer {nullptr};
    Tickle2GestureRecognizer* m_tickleAniGestureRecognizer {nullptr};
    AniFastSwipeGestureRecognizer* m_AniFastSwipeGestureRecognizer {nullptr};
    AniTapGestureRecognizer* m_AniTapGestureRecognizer {nullptr};

    virtual void configureTouchAniGestureRecognizer(AniMapLayer* p_AniMapLayer);
    virtual void configureAniTickleGestureRecognizer(IMapCharacter* p_controlledCharacter);
    virtual void configureAniFastSwipeGestureRecognizer(cocos2d::Node* p_controlledCharacter);
    virtual void configureAniTapGestureRecognizer(AniMapLayer* p_AniMapLayer);
    virtual void configureAniLongPressGestureRecognizer(IMapCharacter* p_controlledCharacter);
    
    virtual void deleteAniGestureRecognizers();
};

#endif /* AniTouchRecognizerMapControl_hs */