123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292 |
- #ifndef __CC_TEXT_FIELD_H__
- #define __CC_TEXT_FIELD_H__
- #include "2d/CCLabel.h"
- #include "base/CCIMEDelegate.h"
- NS_CC_BEGIN
- class TextFieldTTF;
- class CC_DLL TextFieldDelegate
- {
- public:
-
- virtual ~TextFieldDelegate() {}
-
- virtual bool onTextFieldAttachWithIME(TextFieldTTF* sender);
-
- virtual bool onTextFieldDetachWithIME(TextFieldTTF* sender);
-
- virtual bool onTextFieldInsertText(TextFieldTTF* sender, const char* text, size_t nLen);
-
- virtual bool onTextFieldDeleteBackward(TextFieldTTF* sender, const char* delText, size_t nLen);
-
- virtual bool onVisit(TextFieldTTF* sender, Renderer* renderer, const Mat4& transform, uint32_t flags);
- };
- class CC_DLL TextFieldTTF : public Label, public IMEDelegate
- {
- public:
-
- TextFieldTTF();
-
-
- virtual ~TextFieldTTF();
-
- static TextFieldTTF * textFieldWithPlaceHolder(const std::string& placeholder, const Size& dimensions, TextHAlignment alignment, const std::string& fontName, float fontSize);
-
-
- static TextFieldTTF * textFieldWithPlaceHolder(const std::string& placeholder, const std::string& fontName, float fontSize);
-
-
- bool initWithPlaceHolder(const std::string& placeholder, const Size& dimensions, TextHAlignment alignment, const std::string& fontName, float fontSize);
-
-
- bool initWithPlaceHolder(const std::string& placeholder, const std::string& fontName, float fontSize);
-
- virtual bool attachWithIME() override;
-
- virtual bool detachWithIME() override;
-
-
-
-
- TextFieldDelegate* getDelegate() const { return _delegate; }
-
- void setDelegate(TextFieldDelegate* delegate) { _delegate = delegate; }
-
- std::size_t getCharCount() const { return _charCount; }
-
-
- virtual const Color4B& getColorSpaceHolder();
-
- virtual void setColorSpaceHolder(const Color3B& color);
-
- virtual void setColorSpaceHolder(const Color4B& color);
-
- virtual void setTextColor(const Color4B& textColor) override;
-
- virtual void setString(const std::string& text) override;
-
- virtual void appendString(const std::string& text);
-
- virtual const std::string& getString() const override;
-
- virtual void setPlaceHolder(const std::string& text);
-
- virtual const std::string& getPlaceHolder() const;
-
- virtual void setSecureTextEntry(bool value);
- virtual void setPasswordTextStyle(const std::string& text);
- const std::string& getPasswordTextStyle() const;
-
- virtual bool isSecureTextEntry()const;
- virtual void visit(Renderer *renderer, const Mat4 &parentTransform, uint32_t parentFlags) override;
- virtual void update(float delta) override;
-
- void setCursorEnabled(bool enabled);
-
- void setCursorChar(char cursor);
-
- void setCursorPosition(std::size_t cursorPosition);
-
- void setCursorFromPoint(const Vec2 &point, const Camera* camera);
- protected:
-
-
-
- virtual bool canAttachWithIME() override;
- virtual bool canDetachWithIME() override;
- virtual void didAttachWithIME() override;
- virtual void didDetachWithIME() override;
- virtual void insertText(const char * text, size_t len) override;
- virtual void deleteBackward() override;
- virtual const std::string& getContentText() override;
- virtual void controlKey(EventKeyboard::KeyCode keyCode) override;
- TextFieldDelegate * _delegate;
- std::size_t _charCount;
- std::string _inputText;
- std::string _placeHolder;
- Color4B _colorSpaceHolder;
- Color4B _colorText;
- bool _secureTextEntry;
- std::string _passwordStyleText;
-
- bool _cursorEnabled;
-
- std::size_t _cursorPosition;
-
- char _cursorChar;
-
- float _cursorShowingTime;
- bool _isAttachWithIME;
- void makeStringSupportCursor(std::string& displayText);
- void updateCursorDisplayText();
- void setAttachWithIME(bool isAttachWithIME);
- private:
- class LengthStack;
- LengthStack * _lens;
- };
- NS_CC_END
- #endif
|