31using namespace cocos2d::ui;
33UIEditBoxTests::UIEditBoxTests()
47 auto glview = Director::getInstance()->getOpenGLView();
48 auto visibleOrigin = glview->getVisibleOrigin();
49 auto visibleSize = glview->getVisibleSize();
51 auto pBg = Sprite::create(
"Images/HelloWorld.png");
52 pBg->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height/2));
55 _TTFShowEditReturn = Label::createWithSystemFont(
"No edit control return!",
"Arial", 30);
56 _TTFShowEditReturn->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y + visibleSize.height - 50));
60 auto editBoxSize = Size(visibleSize.width - 100, visibleSize.height * 0.1);
63 std::string pNormalSprite =
"extensions/green_edit.png";
64 _editName = ui::EditBox::create(editBoxSize + Size(0,40), ui::Scale9Sprite::create(pNormalSprite));
65 _editName->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2-50, visibleOrigin.y+visibleSize.height*3/4));
68 _editName->setPlaceholderFontColor(Color3B::WHITE);
70 _editName->setFontSize((
int)editBoxSize.height/2);
72 _editName->setReturnType(ui::EditBox::KeyboardReturnType::DONE);
77 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
78 "cocosui/animationbuttonpressed.png");
79 auto buttonSize = button->getContentSize();
80 button->setTitleText(
"Single Line");
81 button->setPosition(
_editName->getPosition() + Vec2(editBoxSize.width/2 + buttonSize.width/2, 0.0f));
82 button->addClickEventListener([=](Ref* ref){
83 _editName->setInputMode(ui::EditBox::InputMode::SINGLE_LINE);
89 editBoxSize.height + 20),
"extensions/orange_edit.png");
90 _editPassword->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2-50, visibleOrigin.y+visibleSize.height/2));
94 _editPassword->setInputFlag(ui::EditBox::InputFlag::PASSWORD);
95 _editPassword->setInputMode(ui::EditBox::InputMode::SINGLE_LINE);
101 auto buttonPassword = (ui::Button*)button->clone();
102 buttonPassword->setTitleText(
"Multiline");
103 buttonPassword->setPosition(
_editPassword->getPosition() + Vec2(editBoxSize.width/2 + buttonSize.width/2, 0.0f));
104 buttonPassword->addClickEventListener([=](Ref* ref){
107 addChild(buttonPassword);
113 _editEmailParent->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2-50, visibleOrigin.y+visibleSize.height/4));
116 auto bottomButtonSize = Size(editBoxSize.width, editBoxSize.height + 10);
117 _editEmail = ui::EditBox::create(bottomButtonSize,
"extensions/yellow_edit.png");
119 _editEmail->setInputMode(ui::EditBox::InputMode::EMAIL_ADDRESS);
127 auto buttonEmail = (ui::Button*)button->clone();
128 buttonEmail->setTitleText(
"Multiline");
129 buttonEmail->setPosition(
_editEmailParent->getPosition() + Vec2(editBoxSize.width/2 + buttonSize.width/2, 0.0f));
130 buttonEmail->addClickEventListener([=](Ref* ref){
131 _editEmail->setInputMode(ui::EditBox::InputMode::ANY);
133 addChild(buttonEmail);
142 log(
"editBox %p DidBegin !", editBox);
147 log(
"editBox %p DidEnd with action %d!", editBox, action);
152 log(
"editBox %p TextChanged, text: %s ", editBox, text.c_str());
153 editBox->setText(text.c_str());
158 log(
"editBox %p was returned !",editBox);
180 auto glview = Director::getInstance()->getOpenGLView();
181 auto visibleOrigin = glview->getVisibleOrigin();
182 auto visibleSize = glview->getVisibleSize();
184 auto pBg = Sprite::create(
"Images/HelloWorld.png");
185 pBg->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height/2));
188 _TTFShowEditReturn = Label::createWithSystemFont(
"No edit control return!",
"Arial", 30);
189 _TTFShowEditReturn->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y + visibleSize.height - 50));
193 auto editBoxSize = Size(visibleSize.width - 100, visibleSize.height * 0.1f);
196 std::string pNormalSprite =
"extensions/green_edit.png";
197 _editName = ui::EditBox::create(editBoxSize + Size(0,40), ui::Scale9Sprite::create(pNormalSprite));
198 _editName->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2-50, visibleOrigin.y+visibleSize.height*3/4));
201 _editName->setPlaceholderFontColor(Color3B::WHITE);
203 _editName->setFontSize((
int)editBoxSize.height/2);
205 _editName->setReturnType(ui::EditBox::KeyboardReturnType::DONE);
210 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
211 "cocosui/animationbuttonpressed.png");
212 auto buttonSize = button->getContentSize();
213 button->setTitleText(
"Toggle Visibility");
214 button->setPosition(
_editName->getPosition() + Vec2(editBoxSize.width/2 + buttonSize.width/2, 0.0f));
215 button->addClickEventListener([=](Ref* ref){
221 _editPassword = ui::EditBox::create(editBoxSize,
"extensions/orange_edit.png");
222 _editPassword->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2-50, visibleOrigin.y+visibleSize.height/2));
226 _editPassword->setInputFlag(ui::EditBox::InputFlag::PASSWORD);
227 _editPassword->setInputMode(ui::EditBox::InputMode::SINGLE_LINE);
233 auto buttonPassword = (ui::Button*)button->clone();
234 buttonPassword->setTitleText(
"Toggle Visibility");
235 buttonPassword->setPosition(
_editPassword->getPosition() + Vec2(editBoxSize.width/2 + buttonSize.width/2, 0.0f));
236 buttonPassword->addClickEventListener([=](Ref* ref){
239 addChild(buttonPassword);
245 _editEmailParent->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2-50, visibleOrigin.y+visibleSize.height/4));
248 auto bottomButtonSize = Size(editBoxSize.width, editBoxSize.height + 10);
249 _editEmail = ui::EditBox::create(bottomButtonSize,
"extensions/yellow_edit.png");
251 _editEmail->setInputMode(ui::EditBox::InputMode::EMAIL_ADDRESS);
259 auto buttonEmail = (ui::Button*)button->clone();
260 buttonEmail->setTitleText(
"Toggle Visibility");
261 buttonEmail->setPosition(
_editEmailParent->getPosition() + Vec2(editBoxSize.width/2 + buttonSize.width/2, 0.0f));
262 buttonEmail->addClickEventListener([=](Ref* ref){
265 addChild(buttonEmail);
274 log(
"editBox %p DidBegin !", editBox);
279 log(
"editBox %p TextChanged, text: %s ", editBox, text.c_str());
284 log(
"editBox %p was returned !",editBox);
307 const auto glview = Director::getInstance()->getOpenGLView();
308 const auto visibleOrigin = glview->getVisibleOrigin();
309 const auto visibleSize = glview->getVisibleSize();
310 const auto editBoxSize = Size(visibleSize.width - 100, visibleSize.height * 0.1f);
312 const auto createEditBox = [
this, editBoxSize, visibleOrigin, visibleSize](
const std::string& text,
313 const TextHAlignment alignment,
314 const int position_y) {
315 ui::EditBox* editbox = ui::EditBox::create(editBoxSize + Size(0,40), ui::Scale9Sprite::create(
"extensions/green_edit.png"));
316 editbox->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2-50, (
float)position_y));
317 editbox->setFontColor(Color3B::RED);
318 editbox->setPlaceHolder(text.c_str());
319 editbox->setPlaceholderFontColor(Color3B::WHITE);
320 editbox->setPlaceholderFontSize((
int)editBoxSize.height/2);
321 editbox->setFontSize((
int)editBoxSize.height/2);
322 editbox->setText(text.c_str());
323 editbox->setTextHorizontalAlignment(alignment);
324 editbox->setReturnType(ui::EditBox::KeyboardReturnType::DONE);
328 createEditBox(
"horizontal left text", TextHAlignment::LEFT, (
int)(visibleOrigin.y+visibleSize.height*3/4));
329 createEditBox(
"horizontal center text", TextHAlignment::CENTER, (
int)(visibleOrigin.y+visibleSize.height/2));
330 createEditBox(
"horizontal right text", TextHAlignment::RIGHT, (
int)(visibleOrigin.y+visibleSize.height/4));
341 auto glview = Director::getInstance()->getOpenGLView();
342 auto visibleOrigin = glview->getVisibleOrigin();
343 auto visibleSize = glview->getVisibleSize();
344 const auto editBoxSize = Size(visibleSize.width - 100, visibleSize.height * 0.1f);
346 ui::EditBox* editbox = ui::EditBox::create(editBoxSize + Size(0,40),
"extensions/yellow_edit.png",
"extensions/orange_edit.png");
347 editbox->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height*3/4));
348 editbox->setFontColor(Color3B::GREEN);
349 editbox->setPlaceHolder(
"Test Pressed Image");
350 editbox->setPlaceholderFontColor(Color3B::WHITE);
351 editbox->setPlaceholderFontSize((
int)editBoxSize.height/2);
352 editbox->setFontSize((
int)editBoxSize.height/2);
353 editbox->setReturnType(ui::EditBox::KeyboardReturnType::DONE);
356 editbox = ui::EditBox::create(editBoxSize + Size(0,40),
"extensions/yellow_edit.png",
"extensions/orange_edit.png",
"extensions/green_edit.png");
357 editbox->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height/2));
358 editbox->setFontColor(Color3B::GREEN);
359 editbox->setPlaceHolder(
"Test Disabled Image - green");
360 editbox->setPlaceholderFontColor(Color3B::WHITE);
361 editbox->setPlaceholderFontSize((
int)editBoxSize.height/2);
362 editbox->setFontSize((
int)editBoxSize.height/2);
363 editbox->setReturnType(ui::EditBox::KeyboardReturnType::DONE);
365 editbox->setEnabled(
false);
367 editbox = ui::EditBox::create(editBoxSize + Size(0,40),
"extensions/yellow_edit.png");
368 editbox->setPosition(Vec2(visibleOrigin.x+visibleSize.width/2, visibleOrigin.y+visibleSize.height/4));
369 editbox->setFontColor(Color3B::GREEN);
370 editbox->setPlaceHolder(
"Disabled Gray effect");
371 editbox->setPlaceholderFontColor(Color3B::WHITE);
372 editbox->setPlaceholderFontSize((
int)editBoxSize.height/2);
373 editbox->setFontSize((
int)editBoxSize.height/2);
374 editbox->setReturnType(ui::EditBox::KeyboardReturnType::DONE);
376 editbox->setEnabled(
false);
#define ADD_TEST_CASE(__className__)
virtual void editBoxTextChanged(cocos2d::ui::EditBox *editBox, const std::string &text) override
virtual bool init() override
cocos2d::Node * _editEmailParent
virtual void editBoxEditingDidEndWithAction(cocos2d::ui::EditBox *editBox, cocos2d::ui::EditBoxDelegate::EditBoxEndAction action) override
cocos2d::ui::EditBox * _editPassword
cocos2d::ui::EditBox * _editEmail
virtual void editBoxReturn(cocos2d::ui::EditBox *editBox) override
virtual void editBoxEditingDidBegin(cocos2d::ui::EditBox *editBox) override
cocos2d::ui::EditBox * _editName
cocos2d::Label * _TTFShowEditReturn
virtual bool init() override
virtual bool init() override
virtual void editBoxEditingDidBegin(cocos2d::ui::EditBox *editBox) override
cocos2d::Node * _editEmailParent
virtual void editBoxReturn(cocos2d::ui::EditBox *editBox) override
virtual bool init() override
virtual void editBoxTextChanged(cocos2d::ui::EditBox *editBox, const std::string &text) override
cocos2d::ui::EditBox * _editName
cocos2d::Label * _TTFShowEditReturn
cocos2d::ui::EditBox * _editEmail
cocos2d::ui::EditBox * _editPassword
virtual bool init() override