cocos2d-X 节点(CCTextFieldTTF.h)API

本文来自http://blog.csdn.net/runaying ,引用必须注明出处!

cocos2d-X 节点(CCTextFieldTTF.h)API

温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
///cocos2d-x-3.0alpha0/cocos2dx/text_input_node


#ifndef __CC_TEXT_FIELD_H__
#define __CC_TEXT_FIELD_H__

#include "label_nodes/CCLabelTTF.h"
#include "text_input_node/CCIMEDelegate.h"

NS_CC_BEGIN

class TextFieldTTF;

/**
 * @addtogroup input
 * @{
 */

class CC_DLL TextFieldDelegate
{
public:
    /**
    @brief    如果 sender(发送者)不希望 attach(附加到) IME, return true;
    */
    virtual bool onTextFieldAttachWithIME(TextFieldTTF * sender)
    {
        CC_UNUSED_PARAM(sender);
        return false;
    }

    /**
    @brief     如果 sender(发送者)不希望和 detach(分离) IME, return true;
    */
    virtual bool onTextFieldDetachWithIME(TextFieldTTF * sender)
    {
        CC_UNUSED_PARAM(sender);
        return false;
    }

    /**
    @brief    如果 sender(发送者)不希望插入 text , return true; 
    */
    virtual bool onTextFieldInsertText(TextFieldTTF * sender, const char * text, int nLen)
    {
        CC_UNUSED_PARAM(sender);
        CC_UNUSED_PARAM(text);
        CC_UNUSED_PARAM(nLen);
        return false;
    }

    /**
    @brief    如果 sender(发送者)不希望删除 delText , return true;
    */
    virtual bool onTextFieldDeleteBackward(TextFieldTTF * sender, const char * delText, int nLen)
    {
        CC_UNUSED_PARAM(sender);
        CC_UNUSED_PARAM(delText);
        CC_UNUSED_PARAM(nLen);
        return false;
    }

    /**
    @brief    如果 sender(发送者)不希望被绘制 , return true.
    */
    virtual bool onDraw(TextFieldTTF * sender)
    {
        CC_UNUSED_PARAM(sender);
        return false;
    }
};

/**
@brief   一个简单的使用 TTF 字体的输入 field(文本).
*/
class CC_DLL TextFieldTTF : public LabelTTF, public IMEDelegate
{
public:
    /**
     * @js ctor
     */
    TextFieldTTF();
    /**
     * @js NA
     * @lua NA
     */
    virtual ~TextFieldTTF();

    //char * description();     //描述

    /**  使用 fontname, alignment, dimension 、 font size  创建一个 TextFieldTTF*/
    static TextFieldTTF * textFieldWithPlaceHolder(const char *placeholder, const Size& dimensions, TextHAlignment alignment, const char *fontName, float fontSize);
    /**  使用 fontname、 font size  创建一个 TextFieldTTF */
    static TextFieldTTF * textFieldWithPlaceHolder(const char *placeholder, const char *fontName, float fontSize);
    /**  使用 fontname, alignment, dimension 、 font size  初始化一个 TextFieldTTF */
    bool initWithPlaceHolder(const char *placeholder, const Size& dimensions, TextHAlignment alignment, const char *fontName, float fontSize);
    /**  使用 fontname、 font size  初始化一个 TextFieldTTF */
    bool initWithPlaceHolder(const char *placeholder, const char *fontName, float fontSize);

    /**
    @brief   打开键盘和接收输入文本.
    */
    virtual bool attachWithIME();

    /**
    @brief   最终文本输入和关闭键盘.
    */
    virtual bool detachWithIME();

    //////////////////////////////////////////////////////////////////////////
    // properties
    //////////////////////////////////////////////////////////////////////////
    /**
     * @js NA
     * @lua NA
     */
    inline TextFieldDelegate* getDelegate() const { return _delegate; };
    /**
     * @js NA
     * @lua NA
     */
    inline void setDelegate(TextFieldDelegate* delegate) { _delegate = delegate; };

    inline int getCharCount() const { return _charCount; };
    virtual const Color3B& getColorSpaceHolder();
    virtual void setColorSpaceHolder(const Color3B& color);

    //输入文本属性
public:
    virtual void setString(const char *text);
    virtual const char* getString(void) const;
protected:
    TextFieldDelegate * _delegate;
    int _charCount;
    
    std::string * _inputText;

    //文本属性的占位符
    //如果文本字段为 nil 占位符将显示.
public:
    virtual void setPlaceHolder(const char * text);
    virtual const char * getPlaceHolder(void);
protected:
    std::string * _placeHolder;
    Color3B _colorSpaceHolder;
public:
    virtual void setSecureTextEntry(bool value);
    virtual bool isSecureTextEntry();
protected:
    bool _secureTextEntry;
protected:

    virtual void draw();

    //////////////////////////////////////////////////////////////////////////
    // IMEDelegate interface
    //////////////////////////////////////////////////////////////////////////

    virtual bool canAttachWithIME();
    virtual bool canDetachWithIME();
    virtual void insertText(const char * text, int len);
    virtual void deleteBackward();
    virtual const char * getContentText();
private:
    class LengthStack;
    LengthStack * _lens;
};

// end of input group
/// @}

NS_CC_END

#endif    // __CC_TEXT_FIELD_H__





你可能感兴趣的:(cocos2d,cocos2dx,cocos2d-x)