26#include "editor-support/cocostudio/CCArmatureDataManager.h"
27#include "editor-support/cocostudio/CCArmature.h"
30using namespace cocos2d::ui;
32UIRichTextTests::UIRichTextTests()
62 Size widgetSize =
_widget->getContentSize();
64 auto config = Configuration::getInstance();
65 config->loadConfigFile(
"configs/config-test-ok.plist");
68 std::string str1 = config->getValue(
"Chinese").asString();
69 std::string str2 = config->getValue(
"Japanese").asString();
70 CCLOG(
"str1:%s ascii length = %ld, utf8 length = %ld, substr = %s",
72 static_cast<long>(str1.length()),
73 StringUtils::getCharacterCountInUTF8String(str1),
74 Helper::getSubStringOfUTF8String(str1, 0, 5).c_str());
75 CCLOG(
"str2:%s ascii length = %ld, utf8 length = %ld, substr = %s",
77 static_cast<long>(str2.length()),
78 StringUtils::getCharacterCountInUTF8String(str2),
79 Helper::getSubStringOfUTF8String(str2, 0, 2).c_str());
82 Text *alert = Text::create(
"RichText",
"fonts/Marker Felt.ttf", 30);
83 alert->setColor(Color3B(159, 168, 176));
84 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
87 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
88 button->setTouchEnabled(
true);
89 button->setTitleText(
"switch");
90 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
92 button->setLocalZOrder(10);
95 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
96 button2->setTouchEnabled(
true);
97 button2->setTitleText(
"wrap mode");
98 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
100 button2->setLocalZOrder(10);
103 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
104 button3->setTouchEnabled(
true);
105 button3->setTitleText(
"alignment");
106 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
108 button3->setLocalZOrder(10);
113 _richText->ignoreContentAdaptWithSize(
false);
114 _richText->setContentSize(Size(100, 100));
116 RichElementText* re1 = RichElementText::create(1, Color3B::WHITE, 255, str1,
"SimSun", 10);
117 RichElementText* re2 = RichElementText::create(2, Color3B::YELLOW, 255,
"And this is yellow. ",
"Helvetica", 10);
118 RichElementText* re3 = RichElementText::create(3, Color3B::GRAY, 255, str2,
"Yu Mincho", 10);
119 RichElementText* re4 = RichElementText::create(4, Color3B::GREEN, 255,
"And green with TTF support. ",
"fonts/Marker Felt.ttf", 10);
120 RichElementText* re5 = RichElementText::create(5, Color3B::RED, 255,
"Last one is red ",
"Helvetica", 10);
122 RichElementImage* reimg = RichElementImage::create(6, Color3B::WHITE, 255,
"cocosui/sliderballnormal.png");
130 RichElementText* re6 = RichElementText::create(7, Color3B::ORANGE, 255,
"Have fun!! ",
"Helvetica", 10);
140 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
158 case Widget::TouchEventType::ENDED:
160 if (
_richText->isIgnoreContentAdaptWithSize())
162 _richText->ignoreContentAdaptWithSize(
false);
163 _richText->setContentSize(Size(100, 100));
167 _richText->ignoreContentAdaptWithSize(
true);
179 if (type == Widget::TouchEventType::ENDED)
181 auto wrapMode =
_richText->getWrapMode();
182 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
188 if (type == Widget::TouchEventType::ENDED)
190 auto alignment =
_richText->getHorizontalAlignment();
191 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
192 _richText->setHorizontalAlignment(alignment);
203 Size widgetSize =
_widget->getContentSize();
206 Text *alert = Text::create(
"RichText",
"fonts/Marker Felt.ttf", 30);
207 alert->setColor(Color3B(159, 168, 176));
208 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
212 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
213 button->setTouchEnabled(
true);
214 button->setTitleText(
"switch");
215 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
217 button->setLocalZOrder(10);
220 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
221 button2->setTouchEnabled(
true);
222 button2->setTitleText(
"wrap mode");
223 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
225 button2->setLocalZOrder(10);
228 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
229 button3->setTouchEnabled(
true);
230 button3->setTitleText(
"alignment");
231 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
233 button3->setLocalZOrder(10);
237 _richText = RichText::createWithXML(
"This is just a simple text. no xml tags here. testing the basics. testing word-wrapping. testing, testing, testing");
238 _richText->ignoreContentAdaptWithSize(
false);
239 _richText->setContentSize(Size(100, 100));
241 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
259 case Widget::TouchEventType::ENDED:
261 if (
_richText->isIgnoreContentAdaptWithSize())
263 _richText->ignoreContentAdaptWithSize(
false);
264 _richText->setContentSize(Size(100, 100));
268 _richText->ignoreContentAdaptWithSize(
true);
280 if (type == Widget::TouchEventType::ENDED)
282 auto wrapMode =
_richText->getWrapMode();
283 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
289 if (type == Widget::TouchEventType::ENDED)
291 auto alignment =
_richText->getHorizontalAlignment();
292 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
293 _richText->setHorizontalAlignment(alignment);
304 Size widgetSize =
_widget->getContentSize();
307 Text *alert = Text::create(
"RichText",
"fonts/Marker Felt.ttf", 30);
308 alert->setColor(Color3B(159, 168, 176));
309 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
313 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
314 button->setTouchEnabled(
true);
315 button->setTitleText(
"switch");
316 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
318 button->setLocalZOrder(10);
321 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
322 button2->setTouchEnabled(
true);
323 button2->setTitleText(
"wrap mode");
324 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
326 button2->setLocalZOrder(10);
329 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
330 button3->setTouchEnabled(
true);
331 button3->setTitleText(
"alignment");
332 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
334 button3->setLocalZOrder(10);
338 _richText = RichText::createWithXML(
"Regular size.<small>smaller size.</small><big>bigger.<small>normal.</small>bigger</big>.normal.");
339 _richText->ignoreContentAdaptWithSize(
false);
340 _richText->setContentSize(Size(100, 100));
342 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
360 case Widget::TouchEventType::ENDED:
362 if (
_richText->isIgnoreContentAdaptWithSize())
364 _richText->ignoreContentAdaptWithSize(
false);
365 _richText->setContentSize(Size(100, 100));
369 _richText->ignoreContentAdaptWithSize(
true);
381 if (type == Widget::TouchEventType::ENDED)
383 auto wrapMode =
_richText->getWrapMode();
384 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
390 if (type == Widget::TouchEventType::ENDED)
392 auto alignment =
_richText->getHorizontalAlignment();
393 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
394 _richText->setHorizontalAlignment(alignment);
405 Size widgetSize =
_widget->getContentSize();
408 Text *alert = Text::create(
"RichText",
"fonts/Marker Felt.ttf", 30);
409 alert->setColor(Color3B(159, 168, 176));
410 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
414 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
415 button->setTouchEnabled(
true);
416 button->setTitleText(
"switch");
417 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
419 button->setLocalZOrder(10);
422 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
423 button2->setTouchEnabled(
true);
424 button2->setTitleText(
"wrap mode");
425 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
427 button2->setLocalZOrder(10);
430 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
431 button3->setTouchEnabled(
true);
432 button3->setTitleText(
"alignment");
433 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
435 button3->setLocalZOrder(10);
439 _richText = RichText::createWithXML(
"Default color.<font color='#ff0000'>red.<font color='#00ff00'>green</font>red again.</font>default again");
440 _richText->ignoreContentAdaptWithSize(
false);
441 _richText->setContentSize(Size(100, 100));
443 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
461 case Widget::TouchEventType::ENDED:
463 if (
_richText->isIgnoreContentAdaptWithSize())
465 _richText->ignoreContentAdaptWithSize(
false);
466 _richText->setContentSize(Size(100, 100));
470 _richText->ignoreContentAdaptWithSize(
true);
482 if (type == Widget::TouchEventType::ENDED)
484 auto wrapMode =
_richText->getWrapMode();
485 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
491 if (type == Widget::TouchEventType::ENDED)
493 auto alignment =
_richText->getHorizontalAlignment();
494 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
495 _richText->setHorizontalAlignment(alignment);
506 Size widgetSize =
_widget->getContentSize();
509 Text *alert = Text::create(
"RichText",
"fonts/Marker Felt.ttf", 30);
510 alert->setColor(Color3B(159, 168, 176));
511 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
515 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
516 button->setTouchEnabled(
true);
517 button->setTitleText(
"switch");
518 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
520 button->setLocalZOrder(10);
523 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
524 button2->setTouchEnabled(
true);
525 button2->setTitleText(
"wrap mode");
526 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
528 button2->setLocalZOrder(10);
531 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
532 button3->setTouchEnabled(
true);
533 button3->setTitleText(
"alignment");
534 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
536 button3->setLocalZOrder(10);
540 _richText = RichText::createWithXML(
"system font: <u>underline</u><i>italics</i><b>bold</b><del>strike-through</del>");
541 _richText->ignoreContentAdaptWithSize(
false);
542 _richText->setContentSize(Size(100, 100));
544 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
562 case Widget::TouchEventType::ENDED:
564 if (
_richText->isIgnoreContentAdaptWithSize())
566 _richText->ignoreContentAdaptWithSize(
false);
567 _richText->setContentSize(Size(100, 100));
571 _richText->ignoreContentAdaptWithSize(
true);
583 if (type == Widget::TouchEventType::ENDED)
585 auto wrapMode =
_richText->getWrapMode();
586 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
592 if (type == Widget::TouchEventType::ENDED)
594 auto alignment =
_richText->getHorizontalAlignment();
595 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
596 _richText->setHorizontalAlignment(alignment);
607 Size widgetSize =
_widget->getContentSize();
610 Text *alert = Text::create(
"RichText",
"fonts/Marker Felt.ttf", 30);
611 alert->setColor(Color3B(159, 168, 176));
612 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
616 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
617 button->setTouchEnabled(
true);
618 button->setTitleText(
"switch");
619 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
621 button->setLocalZOrder(10);
624 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
625 button2->setTouchEnabled(
true);
626 button2->setTitleText(
"wrap mode");
627 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
629 button2->setLocalZOrder(10);
632 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
633 button3->setTouchEnabled(
true);
634 button3->setTitleText(
"alignment");
635 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
637 button3->setLocalZOrder(10);
641 _richText = RichText::createWithXML(
"<font face='fonts/Marker Felt.ttf' size='24'>ttf font: <u>underline</u><i>italics</i><b>bold</b><del>strike-through</del></font>");
642 _richText->ignoreContentAdaptWithSize(
false);
643 _richText->setContentSize(Size(100, 100));
645 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
663 case Widget::TouchEventType::ENDED:
665 if (
_richText->isIgnoreContentAdaptWithSize())
667 _richText->ignoreContentAdaptWithSize(
false);
668 _richText->setContentSize(Size(100, 100));
672 _richText->ignoreContentAdaptWithSize(
true);
684 if (type == Widget::TouchEventType::ENDED)
686 auto wrapMode =
_richText->getWrapMode();
687 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
693 if (type == Widget::TouchEventType::ENDED)
695 auto alignment =
_richText->getHorizontalAlignment();
696 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
697 _richText->setHorizontalAlignment(alignment);
708 Size widgetSize =
_widget->getContentSize();
711 Text *alert = Text::create(
"RichText",
"fonts/Marker Felt.ttf", 30);
712 alert->setColor(Color3B(159, 168, 176));
713 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
717 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
718 button->setTouchEnabled(
true);
719 button->setTitleText(
"switch");
720 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
722 button->setLocalZOrder(10);
725 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
726 button2->setTouchEnabled(
true);
727 button2->setTitleText(
"wrap mode");
728 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
730 button2->setLocalZOrder(10);
733 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
734 button3->setTouchEnabled(
true);
735 button3->setTitleText(
"alignment");
736 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
738 button3->setLocalZOrder(10);
742 _richText = RichText::createWithXML(
"<font face='fonts/Marker Felt.ttf' size='20'>ttf font: <i><u>italics and underline</u></i><del><b>bold and strike-through</b></del></font>");
743 _richText->ignoreContentAdaptWithSize(
false);
744 _richText->setContentSize(Size(100, 100));
746 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
764 case Widget::TouchEventType::ENDED:
766 if (
_richText->isIgnoreContentAdaptWithSize())
768 _richText->ignoreContentAdaptWithSize(
false);
769 _richText->setContentSize(Size(100, 100));
773 _richText->ignoreContentAdaptWithSize(
true);
785 if (type == Widget::TouchEventType::ENDED)
787 auto wrapMode =
_richText->getWrapMode();
788 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
794 if (type == Widget::TouchEventType::ENDED)
796 auto alignment =
_richText->getHorizontalAlignment();
797 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
798 _richText->setHorizontalAlignment(alignment);
809 Size widgetSize =
_widget->getContentSize();
812 Text *alert = Text::create(
"RichText",
"fonts/Marker Felt.ttf", 30);
813 alert->setColor(Color3B(159, 168, 176));
814 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
818 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
819 button->setTouchEnabled(
true);
820 button->setTitleText(
"switch");
821 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
823 button->setLocalZOrder(10);
826 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
827 button2->setTouchEnabled(
true);
828 button2->setTitleText(
"wrap mode");
829 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
831 button2->setLocalZOrder(10);
834 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
835 button3->setTouchEnabled(
true);
836 button3->setTitleText(
"alignment");
837 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
839 button3->setLocalZOrder(10);
843 _richText = RichText::createWithXML(
"you should see an image here: <img src='cocosui/sliderballnormal.png'/> and this is text again. and this is the same image, but bigger: <img src='cocosui/sliderballnormal.png' width='30' height='30' /> and here goes text again");
844 _richText->ignoreContentAdaptWithSize(
false);
845 _richText->setContentSize(Size(100, 100));
847 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
865 case Widget::TouchEventType::ENDED:
867 if (
_richText->isIgnoreContentAdaptWithSize())
869 _richText->ignoreContentAdaptWithSize(
false);
870 _richText->setContentSize(Size(100, 100));
874 _richText->ignoreContentAdaptWithSize(
true);
886 if (type == Widget::TouchEventType::ENDED)
888 auto wrapMode =
_richText->getWrapMode();
889 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
895 if (type == Widget::TouchEventType::ENDED)
897 auto alignment =
_richText->getHorizontalAlignment();
898 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
899 _richText->setHorizontalAlignment(alignment);
910 Size widgetSize =
_widget->getContentSize();
913 Text *alert = Text::create(
"RichText",
"fonts/Marker Felt.ttf", 30);
914 alert->setColor(Color3B(159, 168, 176));
915 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
919 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
920 button->setTouchEnabled(
true);
921 button->setTitleText(
"switch");
922 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
924 button->setLocalZOrder(10);
927 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
928 button2->setTouchEnabled(
true);
929 button2->setTitleText(
"wrap mode");
930 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
932 button2->setLocalZOrder(10);
935 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
936 button3->setTouchEnabled(
true);
937 button3->setTitleText(
"alignment");
938 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
940 button3->setLocalZOrder(10);
944 _richText = RichText::createWithXML(
"This link will redirect you to google: <a href='http://www.google.com'>click me</a>");
945 _richText->ignoreContentAdaptWithSize(
false);
946 _richText->setContentSize(Size(100, 100));
948 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
966 case Widget::TouchEventType::ENDED:
968 if (
_richText->isIgnoreContentAdaptWithSize())
970 _richText->ignoreContentAdaptWithSize(
false);
971 _richText->setContentSize(Size(100, 100));
975 _richText->ignoreContentAdaptWithSize(
true);
987 if (type == Widget::TouchEventType::ENDED)
989 auto wrapMode =
_richText->getWrapMode();
990 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
996 if (type == Widget::TouchEventType::ENDED)
998 auto alignment =
_richText->getHorizontalAlignment();
999 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
1000 _richText->setHorizontalAlignment(alignment);
1011 Size widgetSize =
_widget->getContentSize();
1014 Text *alert = Text::create(
"RichText",
"fonts/Marker Felt.ttf", 30);
1015 alert->setColor(Color3B(159, 168, 176));
1016 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
1020 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1021 button->setTouchEnabled(
true);
1022 button->setTitleText(
"switch");
1023 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
1025 button->setLocalZOrder(10);
1028 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1029 button2->setTouchEnabled(
true);
1030 button2->setTitleText(
"wrap mode");
1031 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1033 button2->setLocalZOrder(10);
1036 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1037 button3->setTouchEnabled(
true);
1038 button3->setTitleText(
"alignment");
1039 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1041 button3->setLocalZOrder(10);
1045 _richText = RichText::createWithXML(
"This link will redirect you to google: <a href='http://www.google.com'><img src=\"cocosui/ccicon.png\" height=\"48\" width=\"48\" /></a>");
1046 _richText->ignoreContentAdaptWithSize(
false);
1047 _richText->setContentSize(Size(100, 100));
1049 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
1067 case Widget::TouchEventType::ENDED:
1069 if (
_richText->isIgnoreContentAdaptWithSize())
1071 _richText->ignoreContentAdaptWithSize(
false);
1072 _richText->setContentSize(Size(100, 100));
1076 _richText->ignoreContentAdaptWithSize(
true);
1088 if (type == Widget::TouchEventType::ENDED)
1090 auto wrapMode =
_richText->getWrapMode();
1091 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
1097 if (type == Widget::TouchEventType::ENDED)
1099 auto alignment =
_richText->getHorizontalAlignment();
1100 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
1101 _richText->setHorizontalAlignment(alignment);
1112 Size widgetSize =
_widget->getContentSize();
1115 Text *alert = Text::create(
"RichText",
"fonts/Marker Felt.ttf", 30);
1116 alert->setColor(Color3B(159, 168, 176));
1117 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
1121 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1122 button->setTouchEnabled(
true);
1123 button->setTitleText(
"switch");
1124 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
1126 button->setLocalZOrder(10);
1129 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1130 button2->setTouchEnabled(
true);
1131 button2->setTitleText(
"wrap mode");
1132 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1134 button2->setLocalZOrder(10);
1137 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1138 button3->setTouchEnabled(
true);
1139 button3->setTitleText(
"alignment");
1140 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1142 button3->setLocalZOrder(10);
1146 _richText = RichText::createWithXML(
"<font size='20' face='fonts/Marker Felt.ttf'>Marker Felt 20.<font face='fonts/arial.ttf'>Arial 20.</font></font><font face='font/Thonburi.ttf' size='24' color='#0000ff'>Thonburi 24 blue</font>");
1147 _richText->ignoreContentAdaptWithSize(
false);
1148 _richText->setContentSize(Size(120, 100));
1150 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
1168 case Widget::TouchEventType::ENDED:
1170 if (
_richText->isIgnoreContentAdaptWithSize())
1172 _richText->ignoreContentAdaptWithSize(
false);
1173 _richText->setContentSize(Size(100, 100));
1177 _richText->ignoreContentAdaptWithSize(
true);
1189 if (type == Widget::TouchEventType::ENDED)
1191 auto wrapMode =
_richText->getWrapMode();
1192 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
1198 if (type == Widget::TouchEventType::ENDED)
1200 auto alignment =
_richText->getHorizontalAlignment();
1201 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
1202 _richText->setHorizontalAlignment(alignment);
1213 Size widgetSize =
_widget->getContentSize();
1216 Text *alert = Text::create(
"RichText",
"fonts/Marker Felt.ttf", 30);
1217 alert->setColor(Color3B(159, 168, 176));
1218 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
1222 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1223 button->setTouchEnabled(
true);
1224 button->setTitleText(
"switch");
1225 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
1227 button->setLocalZOrder(10);
1230 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1231 button2->setTouchEnabled(
true);
1232 button2->setTitleText(
"wrap mode");
1233 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1235 button2->setLocalZOrder(10);
1238 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1239 button3->setTouchEnabled(
true);
1240 button3->setTitleText(
"alignment");
1241 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1243 button3->setLocalZOrder(10);
1247 _richText = RichText::createWithXML(
"this is one line.<br/>this should be in another line.<br/>and this is another line");
1248 _richText->ignoreContentAdaptWithSize(
false);
1249 _richText->setContentSize(Size(100, 100));
1251 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
1269 case Widget::TouchEventType::ENDED:
1271 if (
_richText->isIgnoreContentAdaptWithSize())
1273 _richText->ignoreContentAdaptWithSize(
false);
1274 _richText->setContentSize(Size(100, 100));
1278 _richText->ignoreContentAdaptWithSize(
true);
1290 if (type == Widget::TouchEventType::ENDED)
1292 auto wrapMode =
_richText->getWrapMode();
1293 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
1299 if (type == Widget::TouchEventType::ENDED)
1301 auto alignment =
_richText->getHorizontalAlignment();
1302 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
1303 _richText->setHorizontalAlignment(alignment);
1314 Size widgetSize =
_widget->getContentSize();
1317 Text *alert = Text::create(
"Invalid XML test",
"fonts/Marker Felt.ttf", 30);
1318 alert->setColor(Color3B(159, 168, 176));
1319 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
1324 _richText = RichText::createWithXML(
"this is an invalid xml. <i>no closing tag");
1327 _richText->ignoreContentAdaptWithSize(
false);
1328 _richText->setContentSize(Size(100, 100));
1330 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
1351 Size widgetSize =
_widget->getContentSize();
1354 Text *alert = Text::create(
"Outline",
"fonts/Marker Felt.ttf", 30);
1355 alert->setColor(Color3B(159, 168, 176));
1356 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
1360 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1361 button->setTouchEnabled(
true);
1362 button->setTitleText(
"switch");
1363 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
1365 button->setLocalZOrder(10);
1368 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1369 button2->setTouchEnabled(
true);
1370 button2->setTitleText(
"wrap mode");
1371 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1373 button2->setLocalZOrder(10);
1376 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1377 button3->setTouchEnabled(
true);
1378 button3->setTitleText(
"alignment");
1379 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1381 button3->setLocalZOrder(10);
1385 _richText = RichText::createWithXML(
"<font face='fonts/Marker Felt.ttf' size=\"24\"><outline color=\"#D2B48C\" size=\"2\">OUTLINE</outline></font>");
1386 _richText->ignoreContentAdaptWithSize(
false);
1387 _richText->setContentSize(Size(100, 100));
1389 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
1407 case Widget::TouchEventType::ENDED:
1409 if (
_richText->isIgnoreContentAdaptWithSize())
1411 _richText->ignoreContentAdaptWithSize(
false);
1412 _richText->setContentSize(Size(100, 100));
1416 _richText->ignoreContentAdaptWithSize(
true);
1428 if (type == Widget::TouchEventType::ENDED)
1430 auto wrapMode =
_richText->getWrapMode();
1431 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
1437 if (type == Widget::TouchEventType::ENDED)
1439 auto alignment =
_richText->getHorizontalAlignment();
1440 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
1441 _richText->setHorizontalAlignment(alignment);
1452 Size widgetSize =
_widget->getContentSize();
1455 Text *alert = Text::create(
"Shadow",
"fonts/Marker Felt.ttf", 30);
1456 alert->setColor(Color3B(159, 168, 176));
1457 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
1461 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1462 button->setTouchEnabled(
true);
1463 button->setTitleText(
"switch");
1464 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
1466 button->setLocalZOrder(10);
1469 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1470 button2->setTouchEnabled(
true);
1471 button2->setTitleText(
"wrap mode");
1472 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1474 button2->setLocalZOrder(10);
1477 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1478 button3->setTouchEnabled(
true);
1479 button3->setTitleText(
"alignment");
1480 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1482 button3->setLocalZOrder(10);
1486 _richText = RichText::createWithXML(
"<font size=\"24\"><shadow color=\"#4169E1\" offsetWidth=\"8\" offsetHeight=\"-8\" blurRadius=\"2\">SHADOW</shadow></font>");
1487 _richText->ignoreContentAdaptWithSize(
false);
1488 _richText->setContentSize(Size(150, 100));
1490 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
1508 case Widget::TouchEventType::ENDED:
1510 if (
_richText->isIgnoreContentAdaptWithSize())
1512 _richText->ignoreContentAdaptWithSize(
false);
1513 _richText->setContentSize(Size(100, 100));
1517 _richText->ignoreContentAdaptWithSize(
true);
1529 if (type == Widget::TouchEventType::ENDED)
1531 auto wrapMode =
_richText->getWrapMode();
1532 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
1538 if (type == Widget::TouchEventType::ENDED)
1540 auto alignment =
_richText->getHorizontalAlignment();
1541 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
1542 _richText->setHorizontalAlignment(alignment);
1553 Size widgetSize =
_widget->getContentSize();
1556 Text *alert = Text::create(
"Glow",
"fonts/Marker Felt.ttf", 30);
1557 alert->setColor(Color3B(159, 168, 176));
1558 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
1562 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1563 button->setTouchEnabled(
true);
1564 button->setTitleText(
"switch");
1565 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
1567 button->setLocalZOrder(10);
1570 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1571 button2->setTouchEnabled(
true);
1572 button2->setTitleText(
"wrap mode");
1573 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1575 button2->setLocalZOrder(10);
1578 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1579 button3->setTouchEnabled(
true);
1580 button3->setTitleText(
"alignment");
1581 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1583 button3->setLocalZOrder(10);
1587 _richText = RichText::createWithXML(
"<font face=\"fonts/Marker Felt.ttf\" size=\"24\"><glow color=\"#AFEEEE\">GLOW</glow></font>");
1588 _richText->ignoreContentAdaptWithSize(
false);
1589 _richText->setContentSize(Size(100, 100));
1591 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
1609 case Widget::TouchEventType::ENDED:
1611 if (
_richText->isIgnoreContentAdaptWithSize())
1613 _richText->ignoreContentAdaptWithSize(
false);
1614 _richText->setContentSize(Size(100, 100));
1618 _richText->ignoreContentAdaptWithSize(
true);
1630 if (type == Widget::TouchEventType::ENDED)
1632 auto wrapMode =
_richText->getWrapMode();
1633 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
1639 if (type == Widget::TouchEventType::ENDED)
1641 auto alignment =
_richText->getHorizontalAlignment();
1642 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
1643 _richText->setHorizontalAlignment(alignment);
1654 Size widgetSize =
_widget->getContentSize();
1657 Text *alert = Text::create(
"Extend",
"fonts/Marker Felt.ttf", 30);
1658 alert->setColor(Color3B(159, 168, 176));
1659 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
1663 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1664 button->setTouchEnabled(
true);
1665 button->setTitleText(
"switch");
1666 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
1668 button->setLocalZOrder(10);
1671 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1672 button2->setTouchEnabled(
true);
1673 button2->setTitleText(
"wrap mode");
1674 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1676 button2->setLocalZOrder(10);
1679 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1680 button3->setTouchEnabled(
true);
1681 button3->setTitleText(
"alignment");
1682 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1684 button3->setLocalZOrder(10);
1688 RichText::setTagDescription(
"CloseNormal",
false, [](
const ValueMap& tagAttrValueMap) {
1689 RichElementImage* richElement = RichElementImage::create(0, Color3B::WHITE, 255,
"cocosui/CloseNormal.png");
1690 return make_pair(ValueMap(), richElement);
1692 RichText::setTagDescription(
"CloseSelected",
false, [](
const ValueMap& tagAttrValueMap) {
1693 RichElementImage* richElement = RichElementImage::create(0, Color3B::WHITE, 255,
"cocosui/CloseSelected.png");
1694 return make_pair(ValueMap(), richElement);
1699 defaults[RichText::KEY_FONT_COLOR_STRING] =
"#FFF";
1700 defaults[RichText::KEY_FONT_SIZE] = 12.0f;
1701 defaults[RichText::KEY_FONT_FACE] =
"fonts/Marker Felt.ttf";
1702 defaults[RichText::KEY_ANCHOR_FONT_COLOR_STRING] =
"#f0f8ff";
1703 defaults[RichText::KEY_ANCHOR_TEXT_BOLD] =
false;
1704 defaults[RichText::KEY_ANCHOR_TEXT_ITALIC] =
false;
1707 defaults[RichText::KEY_ANCHOR_TEXT_LINE] = RichText::VALUE_TEXT_LINE_UNDER;
1712 defaults[RichText::KEY_ANCHOR_TEXT_OUTLINE_COLOR] =
"#D2B48C";
1713 defaults[RichText::KEY_ANCHOR_TEXT_OUTLINE_SIZE] = 4;
1714 defaults[RichText::KEY_ANCHOR_TEXT_SHADOW_COLOR] =
"#4169E1";
1715 defaults[RichText::KEY_ANCHOR_TEXT_SHADOW_OFFSET_WIDTH] = 4.0f;
1716 defaults[RichText::KEY_ANCHOR_TEXT_SHADOW_OFFSET_HEIGHT] = -4.0f;
1717 defaults[RichText::KEY_ANCHOR_TEXT_SHADOW_BLUR_RADIUS] = 0;
1718 defaults[RichText::KEY_ANCHOR_TEXT_GLOW_COLOR] =
"#AFEEEE";
1721 _richText = RichText::createWithXML(
"<span>CloseNormal-tag:<br /><CloseNormal /><br /><br />CloseSelected-tag:<br /><CloseSelected></CloseSelected></span>",
1723 [](
const std::string& url) {
1724 Application::getInstance()->openURL(url);
1726 _richText->ignoreContentAdaptWithSize(
false);
1727 _richText->setContentSize(Size(100, 100));
1729 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
1747 case Widget::TouchEventType::ENDED:
1749 if (
_richText->isIgnoreContentAdaptWithSize())
1751 _richText->ignoreContentAdaptWithSize(
false);
1752 _richText->setContentSize(Size(100, 100));
1756 _richText->ignoreContentAdaptWithSize(
true);
1768 if (type == Widget::TouchEventType::ENDED)
1770 auto wrapMode =
_richText->getWrapMode();
1771 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
1777 if (type == Widget::TouchEventType::ENDED)
1779 auto alignment =
_richText->getHorizontalAlignment();
1780 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
1781 _richText->setHorizontalAlignment(alignment);
1792 Size widgetSize =
_widget->getContentSize();
1795 Text *alert = Text::create(
"Space",
"fonts/Marker Felt.ttf", 30);
1796 alert->setColor(Color3B(159, 168, 176));
1797 alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.125));
1801 Button* button = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1802 button->setTouchEnabled(
true);
1803 button->setTitleText(
"switch");
1804 button->setPosition(Vec2(widgetSize.width * 1 / 3, widgetSize.height / 2.0f + button->getContentSize().height * 2.5));
1806 button->setLocalZOrder(10);
1809 Button* button2 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1810 button2->setTouchEnabled(
true);
1811 button2->setTitleText(
"wrap mode");
1812 button2->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1814 button2->setLocalZOrder(10);
1817 Button* button3 = Button::create(
"cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
1818 button3->setTouchEnabled(
true);
1819 button3->setTitleText(
"alignment");
1820 button3->setPosition(Vec2(widgetSize.width * 2 / 3, widgetSize.height / 2.0f + button2->getContentSize().height * 2.5));
1822 button3->setLocalZOrder(10);
1826 _richText = RichText::createWithXML(
"words should be divided with space.<br /><br /><font face='fonts/Marker Felt.ttf' color='#ffff00'>HELLO </font><font color='#ffff00'>WORLD</font><br /><br /><font color='#ff00ff'>HELLO</font><font face='fonts/Marker Felt.ttf' color='#ff00ff'> WORLD</font>");
1827 _richText->ignoreContentAdaptWithSize(
false);
1828 _richText->setContentSize(Size(50, 100));
1829 _richText->setPosition(Vec2(widgetSize.width / 2, widgetSize.height / 2));
1846 case Widget::TouchEventType::ENDED:
1848 if (
_richText->isIgnoreContentAdaptWithSize())
1850 _richText->ignoreContentAdaptWithSize(
false);
1851 _richText->setContentSize(Size(50, 100));
1855 _richText->ignoreContentAdaptWithSize(
true);
1867 if (type == Widget::TouchEventType::ENDED)
1869 auto wrapMode =
_richText->getWrapMode();
1870 wrapMode = (wrapMode == RichText::WRAP_PER_WORD) ? RichText::WRAP_PER_CHAR : RichText::WRAP_PER_WORD;
1876 if (type == Widget::TouchEventType::ENDED)
1878 auto alignment =
_richText->getHorizontalAlignment();
1879 alignment =
static_cast<RichText::HorizontalAlignment
>((
static_cast<std::underlying_type<RichText::HorizontalAlignment>::type
>(alignment) + 1) % 3);
1880 _richText->setHorizontalAlignment(alignment);
#define ADD_TEST_CASE(__className__)
cocos2d::ui::RichText * _richText
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
cocos2d::ui::RichText * _richText
void touchEvent(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchWrapMode(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
void switchAlignment(cocos2d::Ref *sender, cocos2d::ui::Widget::TouchEventType type)
virtual bool init() override
cocos2d::ui::Layout * _widget