mirror of https://github.com/axmolengine/axmol.git
Add test wrap unicode text (#18570)
* fix LabelFNTMultiLineAlignment test * Added test for unicode text wrap
This commit is contained in:
parent
b2ecbca549
commit
3d63730c06
|
@ -43,6 +43,7 @@ NewLabelTests::NewLabelTests()
|
||||||
ADD_TEST_CASE(LabelFNTMultiLine);
|
ADD_TEST_CASE(LabelFNTMultiLine);
|
||||||
ADD_TEST_CASE(LabelFNTRetina);
|
ADD_TEST_CASE(LabelFNTRetina);
|
||||||
ADD_TEST_CASE(LabelFNTMultiLineAlignment);
|
ADD_TEST_CASE(LabelFNTMultiLineAlignment);
|
||||||
|
ADD_TEST_CASE(LabelFNTMultiLineAlignmentUNICODE);
|
||||||
ADD_TEST_CASE(LabelFNTUNICODELanguages);
|
ADD_TEST_CASE(LabelFNTUNICODELanguages);
|
||||||
ADD_TEST_CASE(LabelFNTBounds);
|
ADD_TEST_CASE(LabelFNTBounds);
|
||||||
ADD_TEST_CASE(LabelFNTandTTFEmpty);
|
ADD_TEST_CASE(LabelFNTandTTFEmpty);
|
||||||
|
@ -556,8 +557,13 @@ std::string LabelFNTGlyphDesigner::subtitle() const
|
||||||
static float alignmentItemPadding = 50;
|
static float alignmentItemPadding = 50;
|
||||||
static float menuItemPaddingCenter = 50;
|
static float menuItemPaddingCenter = 50;
|
||||||
|
|
||||||
LabelFNTMultiLineAlignment::LabelFNTMultiLineAlignment()
|
bool LabelFNTMultiLineAlignment::init()
|
||||||
{
|
{
|
||||||
|
if (!AtlasDemoNew::init())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
auto listener = EventListenerTouchAllAtOnce::create();
|
auto listener = EventListenerTouchAllAtOnce::create();
|
||||||
listener->onTouchesBegan = CC_CALLBACK_2(LabelFNTMultiLineAlignment::onTouchesBegan, this);
|
listener->onTouchesBegan = CC_CALLBACK_2(LabelFNTMultiLineAlignment::onTouchesBegan, this);
|
||||||
listener->onTouchesMoved = CC_CALLBACK_2(LabelFNTMultiLineAlignment::onTouchesMoved, this);
|
listener->onTouchesMoved = CC_CALLBACK_2(LabelFNTMultiLineAlignment::onTouchesMoved, this);
|
||||||
|
@ -568,13 +574,10 @@ LabelFNTMultiLineAlignment::LabelFNTMultiLineAlignment()
|
||||||
auto size = Director::getInstance()->getWinSize();
|
auto size = Director::getInstance()->getWinSize();
|
||||||
|
|
||||||
// create and initialize a Label
|
// create and initialize a Label
|
||||||
this->_labelShouldRetain = Label::createWithBMFont("fonts/markerFelt.fnt", LongSentencesExample, TextHAlignment::CENTER, size.width/1.5);
|
this->_label = Label::createWithBMFont("fonts/markerFelt.fnt", "", TextHAlignment::CENTER, size.width/1.5);
|
||||||
this->_labelShouldRetain->retain();
|
|
||||||
|
|
||||||
this->_arrowsBarShouldRetain = Sprite::create("Images/arrowsBar.png");
|
this->_arrowsBar = Sprite::create("Images/arrowsBar.png");
|
||||||
this->_arrowsBarShouldRetain->retain();
|
this->_arrows = Sprite::create("Images/arrows.png");
|
||||||
this->_arrowsShouldRetain = Sprite::create("Images/arrows.png");
|
|
||||||
this->_arrowsShouldRetain->retain();
|
|
||||||
|
|
||||||
MenuItemFont::setFontSize(20);
|
MenuItemFont::setFontSize(20);
|
||||||
auto longSentences = MenuItemFont::create("Long Flowing Sentences", CC_CALLBACK_1(LabelFNTMultiLineAlignment::stringChanged, this));
|
auto longSentences = MenuItemFont::create("Long Flowing Sentences", CC_CALLBACK_1(LabelFNTMultiLineAlignment::stringChanged, this));
|
||||||
|
@ -583,52 +586,50 @@ LabelFNTMultiLineAlignment::LabelFNTMultiLineAlignment()
|
||||||
auto stringMenu = Menu::create(longSentences, lineBreaks, mixed, nullptr);
|
auto stringMenu = Menu::create(longSentences, lineBreaks, mixed, nullptr);
|
||||||
stringMenu->alignItemsVertically();
|
stringMenu->alignItemsVertically();
|
||||||
|
|
||||||
longSentences->setColor(Color3B::RED);
|
|
||||||
_lastSentenceItem = longSentences;
|
|
||||||
longSentences->setTag(LongSentences);
|
longSentences->setTag(LongSentences);
|
||||||
lineBreaks->setTag(LineBreaks);
|
lineBreaks->setTag(LineBreaks);
|
||||||
mixed->setTag(Mixed);
|
mixed->setTag(Mixed);
|
||||||
|
|
||||||
|
_menuItems.push_back(longSentences);
|
||||||
|
_menuItems.push_back(lineBreaks);
|
||||||
|
_menuItems.push_back(mixed);
|
||||||
|
|
||||||
MenuItemFont::setFontSize(30);
|
MenuItemFont::setFontSize(30);
|
||||||
|
|
||||||
auto left = MenuItemFont::create("Left", CC_CALLBACK_1(LabelFNTMultiLineAlignment::alignmentChanged, this));
|
auto left = MenuItemFont::create("Left", CC_CALLBACK_1(LabelFNTMultiLineAlignment::alignmentChanged, this));
|
||||||
auto center = MenuItemFont::create("Center", CC_CALLBACK_1(LabelFNTMultiLineAlignment::alignmentChanged, this));
|
auto center = MenuItemFont::create("Center", CC_CALLBACK_1(LabelFNTMultiLineAlignment::alignmentChanged, this));
|
||||||
auto right = MenuItemFont::create("Right", CC_CALLBACK_1(LabelFNTMultiLineAlignment::alignmentChanged, this));
|
auto right = MenuItemFont::create("Right", CC_CALLBACK_1(LabelFNTMultiLineAlignment::alignmentChanged, this));
|
||||||
|
|
||||||
auto alignmentMenu = Menu::create(left, center, right, nullptr);
|
auto alignmentMenu = Menu::create(left, center, right, nullptr);
|
||||||
alignmentMenu->alignItemsHorizontallyWithPadding(alignmentItemPadding);
|
alignmentMenu->alignItemsHorizontallyWithPadding(alignmentItemPadding);
|
||||||
|
|
||||||
center->setColor(Color3B::RED);
|
|
||||||
_lastAlignmentItem = center;
|
|
||||||
left->setTag(LeftAlign);
|
left->setTag(LeftAlign);
|
||||||
center->setTag(CenterAlign);
|
center->setTag(CenterAlign);
|
||||||
right->setTag(RightAlign);
|
right->setTag(RightAlign);
|
||||||
|
|
||||||
// position the label on the center of the screen
|
// position the label on the center of the screen
|
||||||
this->_labelShouldRetain->setPosition(Vec2(size.width/2, size.height/2));
|
this->_label->setPosition(Vec2(size.width/2, size.height/2));
|
||||||
|
|
||||||
this->_arrowsBarShouldRetain->setVisible(false);
|
this->_arrowsBar->setVisible(false);
|
||||||
|
|
||||||
float arrowsWidth = (ArrowsMax - ArrowsMin) * size.width;
|
float arrowsWidth = (ArrowsMax - ArrowsMin) * size.width;
|
||||||
this->_arrowsBarShouldRetain->setScaleX(arrowsWidth / this->_arrowsBarShouldRetain->getContentSize().width);
|
this->_arrowsBar->setScaleX(arrowsWidth / this->_arrowsBar->getContentSize().width);
|
||||||
this->_arrowsBarShouldRetain->setPosition(Vec2(((ArrowsMax + ArrowsMin) / 2) * size.width, this->_labelShouldRetain->getPosition().y));
|
this->_arrowsBar->setPosition(Vec2(((ArrowsMax + ArrowsMin) / 2) * size.width, this->_label->getPosition().y));
|
||||||
|
|
||||||
this->snapArrowsToEdge();
|
|
||||||
|
|
||||||
stringMenu->setPosition(Vec2(size.width/2, size.height - menuItemPaddingCenter));
|
stringMenu->setPosition(Vec2(size.width/2, size.height - menuItemPaddingCenter));
|
||||||
alignmentMenu->setPosition(Vec2(size.width/2, menuItemPaddingCenter+15));
|
alignmentMenu->setPosition(Vec2(size.width/2, menuItemPaddingCenter+15));
|
||||||
|
|
||||||
this->addChild(this->_labelShouldRetain);
|
this->selectSentenceItem(longSentences);
|
||||||
this->addChild(this->_arrowsBarShouldRetain);
|
this->selectAlignmentItem(center);
|
||||||
this->addChild(this->_arrowsShouldRetain);
|
this->snapArrowsToEdge();
|
||||||
|
|
||||||
|
this->addChild(this->_label);
|
||||||
|
this->addChild(this->_arrowsBar);
|
||||||
|
this->addChild(this->_arrows);
|
||||||
this->addChild(stringMenu);
|
this->addChild(stringMenu);
|
||||||
this->addChild(alignmentMenu);
|
this->addChild(alignmentMenu);
|
||||||
}
|
|
||||||
|
|
||||||
LabelFNTMultiLineAlignment::~LabelFNTMultiLineAlignment()
|
return true;
|
||||||
{
|
|
||||||
this->_labelShouldRetain->release();
|
|
||||||
this->_arrowsBarShouldRetain->release();
|
|
||||||
this->_arrowsShouldRetain->release();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string LabelFNTMultiLineAlignment::title() const
|
std::string LabelFNTMultiLineAlignment::title() const
|
||||||
|
@ -641,28 +642,75 @@ std::string LabelFNTMultiLineAlignment::subtitle() const
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
void LabelFNTMultiLineAlignment::stringChanged(cocos2d::Ref *sender)
|
void LabelFNTMultiLineAlignment::selectAlignmentItem(cocos2d::MenuItemFont * item)
|
||||||
{
|
{
|
||||||
auto item = (MenuItemFont*)sender;
|
if (this->_lastAlignmentItem && this->_lastAlignmentItem != item)
|
||||||
item->setColor(Color3B::RED);
|
|
||||||
this->_lastAlignmentItem->setColor(Color3B::WHITE);
|
|
||||||
this->_lastAlignmentItem = item;
|
|
||||||
|
|
||||||
switch(item->getTag())
|
|
||||||
{
|
{
|
||||||
case LongSentences:
|
this->_lastAlignmentItem->setColor(Color3B::WHITE);
|
||||||
this->_labelShouldRetain->setString(LongSentencesExample);
|
}
|
||||||
|
|
||||||
|
this->_lastAlignmentItem = item;
|
||||||
|
item->setColor(Color3B::RED);
|
||||||
|
|
||||||
|
switch (item->getTag())
|
||||||
|
{
|
||||||
|
case LeftAlign:
|
||||||
|
this->_label->setAlignment(TextHAlignment::LEFT);
|
||||||
break;
|
break;
|
||||||
case LineBreaks:
|
case CenterAlign:
|
||||||
this->_labelShouldRetain->setString(LineBreaksExample);
|
this->_label->setAlignment(TextHAlignment::CENTER);
|
||||||
break;
|
break;
|
||||||
case Mixed:
|
case RightAlign:
|
||||||
this->_labelShouldRetain->setString(MixedExample);
|
this->_label->setAlignment(TextHAlignment::RIGHT);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LabelFNTMultiLineAlignment::selectSentenceItem(cocos2d::MenuItemFont* item)
|
||||||
|
{
|
||||||
|
if (this->_lastSentenceItem && this->_lastSentenceItem != item)
|
||||||
|
{
|
||||||
|
this->_lastSentenceItem->setColor(Color3B::WHITE);
|
||||||
|
}
|
||||||
|
|
||||||
|
this->_lastSentenceItem = item;
|
||||||
|
item->setColor(Color3B::RED);
|
||||||
|
|
||||||
|
auto str = this->getItemString(item);
|
||||||
|
this->_label->setString(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string LabelFNTMultiLineAlignment::getItemString(cocos2d::MenuItemFont* item)
|
||||||
|
{
|
||||||
|
std::string str;
|
||||||
|
|
||||||
|
switch (item->getTag())
|
||||||
|
{
|
||||||
|
case LongSentences:
|
||||||
|
str = LongSentencesExample;
|
||||||
|
break;
|
||||||
|
case LineBreaks:
|
||||||
|
str = LineBreaksExample;
|
||||||
|
break;
|
||||||
|
case Mixed:
|
||||||
|
str = MixedExample;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LabelFNTMultiLineAlignment::stringChanged(cocos2d::Ref *sender)
|
||||||
|
{
|
||||||
|
auto item = (MenuItemFont*)sender;
|
||||||
|
|
||||||
|
selectSentenceItem(item);
|
||||||
|
|
||||||
this->snapArrowsToEdge();
|
this->snapArrowsToEdge();
|
||||||
}
|
}
|
||||||
|
@ -670,25 +718,8 @@ void LabelFNTMultiLineAlignment::stringChanged(cocos2d::Ref *sender)
|
||||||
void LabelFNTMultiLineAlignment::alignmentChanged(cocos2d::Ref *sender)
|
void LabelFNTMultiLineAlignment::alignmentChanged(cocos2d::Ref *sender)
|
||||||
{
|
{
|
||||||
auto item = static_cast<MenuItemFont*>(sender);
|
auto item = static_cast<MenuItemFont*>(sender);
|
||||||
item->setColor(Color3B::RED);
|
|
||||||
this->_lastAlignmentItem->setColor(Color3B::WHITE);
|
|
||||||
this->_lastAlignmentItem = item;
|
|
||||||
|
|
||||||
switch(item->getTag())
|
selectAlignmentItem(item);
|
||||||
{
|
|
||||||
case LeftAlign:
|
|
||||||
this->_labelShouldRetain->setAlignment(TextHAlignment::LEFT);
|
|
||||||
break;
|
|
||||||
case CenterAlign:
|
|
||||||
this->_labelShouldRetain->setAlignment(TextHAlignment::CENTER);
|
|
||||||
break;
|
|
||||||
case RightAlign:
|
|
||||||
this->_labelShouldRetain->setAlignment(TextHAlignment::RIGHT);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
this->snapArrowsToEdge();
|
this->snapArrowsToEdge();
|
||||||
}
|
}
|
||||||
|
@ -698,10 +729,10 @@ void LabelFNTMultiLineAlignment::onTouchesBegan(const std::vector<Touch*>& touch
|
||||||
auto touch = touches[0];
|
auto touch = touches[0];
|
||||||
auto location = touch->getLocationInView();
|
auto location = touch->getLocationInView();
|
||||||
|
|
||||||
if (this->_arrowsShouldRetain->getBoundingBox().containsPoint(location))
|
if (this->_arrows->getBoundingBox().containsPoint(location))
|
||||||
{
|
{
|
||||||
_drag = true;
|
_drag = true;
|
||||||
this->_arrowsBarShouldRetain->setVisible(true);
|
this->_arrowsBar->setVisible(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -710,7 +741,7 @@ void LabelFNTMultiLineAlignment::onTouchesEnded(const std::vector<Touch*>& touch
|
||||||
_drag = false;
|
_drag = false;
|
||||||
this->snapArrowsToEdge();
|
this->snapArrowsToEdge();
|
||||||
|
|
||||||
this->_arrowsBarShouldRetain->setVisible(false);
|
this->_arrowsBar->setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LabelFNTMultiLineAlignment::onTouchesMoved(const std::vector<Touch*>& touches, cocos2d::Event *event)
|
void LabelFNTMultiLineAlignment::onTouchesMoved(const std::vector<Touch*>& touches, cocos2d::Event *event)
|
||||||
|
@ -725,24 +756,83 @@ void LabelFNTMultiLineAlignment::onTouchesMoved(const std::vector<Touch*>& touch
|
||||||
|
|
||||||
auto winSize = Director::getInstance()->getWinSize();
|
auto winSize = Director::getInstance()->getWinSize();
|
||||||
|
|
||||||
this->_arrowsShouldRetain->setPosition(Vec2(MAX(MIN(location.x, ArrowsMax*winSize.width), ArrowsMin*winSize.width),
|
this->_arrows->setPosition(Vec2(MAX(MIN(location.x, ArrowsMax*winSize.width), ArrowsMin*winSize.width),
|
||||||
this->_arrowsShouldRetain->getPosition().y));
|
this->_arrows->getPosition().y));
|
||||||
|
|
||||||
float labelWidth = fabs(this->_arrowsShouldRetain->getPosition().x - this->_labelShouldRetain->getPosition().x) * 2;
|
float labelWidth = fabs(this->_arrows->getPosition().x - this->_label->getPosition().x) * 2;
|
||||||
|
|
||||||
this->_labelShouldRetain->setMaxLineWidth(labelWidth);
|
this->_label->setMaxLineWidth(labelWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LabelFNTMultiLineAlignment::snapArrowsToEdge()
|
void LabelFNTMultiLineAlignment::snapArrowsToEdge()
|
||||||
{
|
{
|
||||||
this->_arrowsShouldRetain->setPosition(Vec2(this->_labelShouldRetain->getPosition().x + this->_labelShouldRetain->getContentSize().width/2,
|
this->_arrows->setPosition(Vec2(this->_label->getPosition().x + this->_label->getContentSize().width/2,
|
||||||
this->_labelShouldRetain->getPosition().y));
|
this->_label->getPosition().y));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// LabelFNTMultiLineAlignmentUNICODE
|
||||||
|
|
||||||
|
bool LabelFNTMultiLineAlignmentUNICODE::init()
|
||||||
|
{
|
||||||
|
if (!LabelFNTMultiLineAlignment::init())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
this->_menuItems[0]->setString("French");
|
||||||
|
this->_menuItems[1]->setString("Spanish");
|
||||||
|
this->_menuItems[2]->setString("Ukrainian");
|
||||||
|
|
||||||
|
auto ttfConfig = this->_label->getTTFConfig();
|
||||||
|
ttfConfig.fontSize = 20;
|
||||||
|
ttfConfig.fontFilePath = "fonts/tahoma.ttf";
|
||||||
|
this->_label->setTTFConfig(ttfConfig);
|
||||||
|
|
||||||
|
this->selectSentenceItem(this->_menuItems[0]);
|
||||||
|
this->snapArrowsToEdge();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string LabelFNTMultiLineAlignmentUNICODE::title() const
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string LabelFNTMultiLineAlignmentUNICODE::subtitle() const
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string LabelFNTMultiLineAlignmentUNICODE::getItemString(cocos2d::MenuItemFont* item)
|
||||||
|
{
|
||||||
|
std::string str;
|
||||||
|
|
||||||
|
auto strings = FileUtils::getInstance()->getValueMapFromFile("strings/LabelFNTMultiLineAlignmentUNICODE.xml");
|
||||||
|
|
||||||
|
switch (item->getTag())
|
||||||
|
{
|
||||||
|
case LongSentences:
|
||||||
|
str = strings["french"].asString();
|
||||||
|
break;
|
||||||
|
case LineBreaks:
|
||||||
|
str = strings["spanish"].asString();
|
||||||
|
break;
|
||||||
|
case Mixed:
|
||||||
|
str = strings["ukrainian"].asString();
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// BMFontUnicodeNew
|
/// BMFontUnicodeNew
|
||||||
LabelFNTUNICODELanguages::LabelFNTUNICODELanguages()
|
LabelFNTUNICODELanguages::LabelFNTUNICODELanguages()
|
||||||
{
|
{
|
||||||
auto strings = FileUtils::getInstance()->getValueMapFromFile("fonts/strings.xml");
|
auto strings = FileUtils::getInstance()->getValueMapFromFile("strings/LabelFNTUNICODELanguages.xml");
|
||||||
std::string chinese = strings["chinese1"].asString();
|
std::string chinese = strings["chinese1"].asString();
|
||||||
std::string russian = strings["russian"].asString();
|
std::string russian = strings["russian"].asString();
|
||||||
std::string spanish = strings["spanish"].asString();
|
std::string spanish = strings["spanish"].asString();
|
||||||
|
|
|
@ -142,8 +142,7 @@ class LabelFNTMultiLineAlignment : public AtlasDemoNew
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(LabelFNTMultiLineAlignment);
|
CREATE_FUNC(LabelFNTMultiLineAlignment);
|
||||||
|
|
||||||
LabelFNTMultiLineAlignment();
|
virtual bool init() override;
|
||||||
~LabelFNTMultiLineAlignment();
|
|
||||||
void snapArrowsToEdge();
|
void snapArrowsToEdge();
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
|
@ -152,13 +151,30 @@ public:
|
||||||
void onTouchesBegan(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event* event);
|
void onTouchesBegan(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event* event);
|
||||||
void onTouchesEnded(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event* event);
|
void onTouchesEnded(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event* event);
|
||||||
void onTouchesMoved(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event* event);
|
void onTouchesMoved(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event* event);
|
||||||
|
void selectAlignmentItem(cocos2d::MenuItemFont* item);
|
||||||
|
void selectSentenceItem(cocos2d::MenuItemFont* item);
|
||||||
|
virtual std::string getItemString(cocos2d::MenuItemFont* item);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
cocos2d::Label* _label = nullptr;
|
||||||
|
cocos2d::Sprite* _arrowsBar = nullptr;
|
||||||
|
cocos2d::Sprite* _arrows = nullptr;
|
||||||
|
std::vector<cocos2d::MenuItemFont*> _menuItems;
|
||||||
|
cocos2d::MenuItemFont *_lastSentenceItem = nullptr;
|
||||||
|
cocos2d::MenuItemFont *_lastAlignmentItem = nullptr;
|
||||||
|
bool _drag = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
class LabelFNTMultiLineAlignmentUNICODE : public LabelFNTMultiLineAlignment
|
||||||
|
{
|
||||||
public:
|
public:
|
||||||
cocos2d::Label* _labelShouldRetain;
|
CREATE_FUNC(LabelFNTMultiLineAlignmentUNICODE);
|
||||||
cocos2d::Sprite* _arrowsBarShouldRetain;
|
|
||||||
cocos2d::Sprite* _arrowsShouldRetain;
|
bool init() override;
|
||||||
cocos2d::MenuItemFont *_lastSentenceItem, *_lastAlignmentItem;
|
|
||||||
bool _drag;
|
virtual std::string title() const override;
|
||||||
|
virtual std::string subtitle() const override;
|
||||||
|
virtual std::string getItemString(cocos2d::MenuItemFont* item) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LabelFNTUNICODELanguages : public AtlasDemoNew
|
class LabelFNTUNICODELanguages : public AtlasDemoNew
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>french</key>
|
||||||
|
<string>Loin, très loin, au delà des monts Mots, à mille lieues des pays Voyellie et Consonnia, demeurent les Bolos Bolos</string>
|
||||||
|
<key>spanish</key>
|
||||||
|
<string>Muy lejos, más allá de las montañas de palabras, alejados de los países de las vocales y las consonantes, viven</string>
|
||||||
|
<key>ukrainian</key>
|
||||||
|
<string>Далеко-далеко за словесними горами в країні голосних і приголосних живуть рибні тексти. Далеко від усіх живуть вони в буквених будинках</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
0
tests/cpp-tests/Resources/fonts/strings.xml → tests/cpp-tests/Resources/strings/LabelFNTUNICODELanguages.xml
Executable file → Normal file
0
tests/cpp-tests/Resources/fonts/strings.xml → tests/cpp-tests/Resources/strings/LabelFNTUNICODELanguages.xml
Executable file → Normal file
Loading…
Reference in New Issue