/********************************************************************
*
* File: fsCNativeTextEntry.h
*
* Purpose: cocos2d-x implementation of mobile text entry box
*
*********************************************************************/
#ifndef fsCNativeTextEntryhdr
#define fsCNativeTextEntryhdr
#include <fsCore/fsBaseTypes.h>
#if !defined(fsDesktop) && !defined(fsWeb)
#include <ui/UIEditBox/UIEditBox.h>
#include "fsINative.h"
class fsSColour;
class fsStr;
struct fsPoint;
class fsCNativeTextEntry : public fsINative
{
public:
void update(fsS32 pDeltaMs);
void virtualKeyboardActivate(const fsStr& pPrompt, fsS32 pMaxStingLength, const fsPoint& pPos,
std::function<void(const fsStr&)> pFinalise);
fsCNativeTextEntry();
virtual ~fsCNativeTextEntry();<--- Destructor in derived class
protected:
void matrixApplyDo(const fsAffineMtx2d& pRenderMatrix) override;
void renderDo() override;
private:
class fsTextEntry : public ax::ui::EditBoxDelegate
{
public:
fsTextEntry(fsCNativeTextEntry* const pParent) : mParent(pParent)
{
}
private:
fsCNativeTextEntry* const mParent;
void editBoxReturn(ax::ui::EditBox* editBox) override;
};
fsStr fontNameGet() const;
ax::Node* implGet() const override;
std::function<void(const fsStr&)> mFinalise;
ax::ui::EditBox* mImpl;
};
#endif
#endif