ToyPaletteNode.h 1.17 KB
//
//  ToyPaletteNode.h
//  SteveMaggieCpp
//
//  Created by Katarzyna Kalinowska-Górska on 17.05.2017.
//
//

#ifndef ToyPaletteNode_h
#define ToyPaletteNode_h

#include "ToyPlainNode.h"
#include "ToyPaletteComponentSprite.h"

class ToyPaletteNode : public ToyPlainNode
{
    public:
    
        static ToyPaletteNode* create();
        virtual bool init() override;
    
        virtual ToyPaletteComponentSprite* getChosenComponent();
        virtual void setOnPaletteStateChangedCallback(std::function<void(ToyPaletteNode*, ToyPaletteComponentSprite*, bool, bool)> callback);
        virtual void clearOnPaletteStateChangedCallback();
    
        virtual void callFunctionByName(std::string methodName, const rapidjson::Value* arguments, ActionParseDelegate* parseDelegate, std::function<void()> callback = [](){}) override;
    
    protected:
        std::function<void(ToyPaletteNode*, ToyPaletteComponentSprite*, bool, bool)> _onPaletteStateChangedCallback;
        void paletteComponentStateChanged(ToyPaletteComponentSprite* paletteComponentSprite, bool componentChosen, bool componentPressed);
    
        friend class ToyPaletteComponentSprite;
};

#endif /* ToyPaletteNode_h */