2011-07-29 15:57:27 +08:00
|
|
|
#include "FontTest.h"
|
|
|
|
#include "../testResource.h"
|
2016-11-18 09:23:44 +08:00
|
|
|
#include "2d/CCFontAtlasCache.h"
|
|
|
|
#include "2d/CCFontFreeType.h"
|
2011-07-29 15:57:27 +08:00
|
|
|
|
2015-04-09 08:37:30 +08:00
|
|
|
USING_NS_CC;
|
|
|
|
|
2011-07-29 15:57:27 +08:00
|
|
|
enum {
|
2012-04-19 14:35:52 +08:00
|
|
|
kTagLabel1,
|
|
|
|
kTagLabel2,
|
|
|
|
kTagLabel3,
|
|
|
|
kTagLabel4,
|
2013-04-24 14:49:52 +08:00
|
|
|
|
|
|
|
kTagColor1,
|
|
|
|
kTagColor2,
|
|
|
|
kTagColor3,
|
2011-07-29 15:57:27 +08:00
|
|
|
};
|
|
|
|
|
2014-07-24 16:15:51 +08:00
|
|
|
//you don't need any ifdef anymore
|
2011-07-29 15:57:27 +08:00
|
|
|
static std::string fontList[] =
|
|
|
|
{
|
2012-04-19 14:35:52 +08:00
|
|
|
"fonts/A Damn Mess.ttf",
|
|
|
|
"fonts/Abberancy.ttf",
|
|
|
|
"fonts/Abduction.ttf",
|
|
|
|
"fonts/Paint Boy.ttf",
|
2014-07-24 16:15:51 +08:00
|
|
|
"fonts/Schwarzwald.ttf",
|
2012-04-19 14:35:52 +08:00
|
|
|
"fonts/Scissor Cuts.ttf",
|
2011-07-29 15:57:27 +08:00
|
|
|
};
|
|
|
|
|
2012-06-15 15:10:40 +08:00
|
|
|
static int vAlignIdx = 0;
|
2013-07-27 07:04:21 +08:00
|
|
|
static TextVAlignment verticalAlignment[] =
|
2012-06-15 15:10:40 +08:00
|
|
|
{
|
2013-07-27 07:04:21 +08:00
|
|
|
TextVAlignment::TOP,
|
|
|
|
TextVAlignment::CENTER,
|
|
|
|
TextVAlignment::BOTTOM,
|
2012-06-15 15:10:40 +08:00
|
|
|
};
|
2011-07-29 15:57:27 +08:00
|
|
|
|
2015-04-22 10:20:21 +08:00
|
|
|
|
|
|
|
FontTests::FontTests()
|
|
|
|
{
|
|
|
|
for (auto& fontFile : fontList)
|
|
|
|
{
|
|
|
|
addTestCase("FontTests", [&](){vAlignIdx = 0; return FontTest::create(fontFile); });
|
|
|
|
}
|
|
|
|
|
|
|
|
for (auto& fontFile : fontList)
|
|
|
|
{
|
|
|
|
addTestCase("FontTests", [&](){ vAlignIdx = 1; return FontTest::create(fontFile); });
|
|
|
|
}
|
|
|
|
|
|
|
|
for (auto& fontFile : fontList)
|
|
|
|
{
|
|
|
|
addTestCase("FontTests", [&](){vAlignIdx = 2; return FontTest::create(fontFile); });
|
|
|
|
}
|
2016-11-18 09:23:44 +08:00
|
|
|
ADD_TEST_CASE(FontNoReplacementTest);
|
|
|
|
ADD_TEST_CASE(FontReplacementTest);
|
2015-04-22 10:20:21 +08:00
|
|
|
}
|
|
|
|
|
2015-04-03 14:31:03 +08:00
|
|
|
void FontTest::showFont(const std::string& fontFile)
|
2011-07-29 15:57:27 +08:00
|
|
|
{
|
2013-08-16 16:05:27 +08:00
|
|
|
auto s = Director::getInstance()->getWinSize();
|
2012-06-15 15:10:40 +08:00
|
|
|
|
2013-08-16 16:05:27 +08:00
|
|
|
auto blockSize = Size(s.width/3, 200);
|
2012-08-01 15:30:12 +08:00
|
|
|
float fontSize = 26;
|
2012-06-12 11:16:31 +08:00
|
|
|
|
2012-04-19 14:35:52 +08:00
|
|
|
removeChildByTag(kTagLabel1, true);
|
|
|
|
removeChildByTag(kTagLabel2, true);
|
|
|
|
removeChildByTag(kTagLabel3, true);
|
|
|
|
removeChildByTag(kTagLabel4, true);
|
2013-04-24 14:49:52 +08:00
|
|
|
removeChildByTag(kTagColor1, true);
|
|
|
|
removeChildByTag(kTagColor2, true);
|
|
|
|
removeChildByTag(kTagColor3, true);
|
2012-04-19 14:35:52 +08:00
|
|
|
|
2015-04-03 14:31:03 +08:00
|
|
|
auto top = Label::createWithSystemFont(fontFile, fontFile, 24);
|
|
|
|
auto left = Label::createWithSystemFont("alignment left", fontFile, fontSize,
|
2013-07-27 07:04:21 +08:00
|
|
|
blockSize, TextHAlignment::LEFT, verticalAlignment[vAlignIdx]);
|
2015-04-03 14:31:03 +08:00
|
|
|
auto center = Label::createWithSystemFont("alignment center", fontFile, fontSize,
|
2013-07-27 07:04:21 +08:00
|
|
|
blockSize, TextHAlignment::CENTER, verticalAlignment[vAlignIdx]);
|
2015-04-03 14:31:03 +08:00
|
|
|
auto right = Label::createWithSystemFont("alignment right", fontFile, fontSize,
|
2013-07-27 07:04:21 +08:00
|
|
|
blockSize, TextHAlignment::RIGHT, verticalAlignment[vAlignIdx]);
|
2012-06-15 15:10:40 +08:00
|
|
|
|
2013-08-16 16:05:27 +08:00
|
|
|
auto leftColor = LayerColor::create(Color4B(100, 100, 100, 255), blockSize.width, blockSize.height);
|
|
|
|
auto centerColor = LayerColor::create(Color4B(200, 100, 100, 255), blockSize.width, blockSize.height);
|
|
|
|
auto rightColor = LayerColor::create(Color4B(100, 100, 200, 255), blockSize.width, blockSize.height);
|
2012-06-15 15:10:40 +08:00
|
|
|
|
2016-04-25 19:43:42 +08:00
|
|
|
leftColor->setIgnoreAnchorPointForPosition(false);
|
|
|
|
centerColor->setIgnoreAnchorPointForPosition(false);
|
|
|
|
rightColor->setIgnoreAnchorPointForPosition(false);
|
2012-06-15 15:10:40 +08:00
|
|
|
|
|
|
|
|
2014-05-15 01:07:09 +08:00
|
|
|
top->setAnchorPoint(Vec2(0.5, 1));
|
|
|
|
left->setAnchorPoint(Vec2(0,0.5));
|
|
|
|
leftColor->setAnchorPoint(Vec2(0,0.5));
|
|
|
|
center->setAnchorPoint(Vec2(0,0.5));
|
|
|
|
centerColor->setAnchorPoint(Vec2(0,0.5));
|
|
|
|
right->setAnchorPoint(Vec2(0,0.5));
|
|
|
|
rightColor->setAnchorPoint(Vec2(0,0.5));
|
|
|
|
|
2014-08-28 11:41:18 +08:00
|
|
|
top->setPosition(s.width/2,s.height-20);
|
|
|
|
left->setPosition(0,s.height/2);
|
2012-06-15 15:10:40 +08:00
|
|
|
leftColor->setPosition(left->getPosition());
|
2014-08-28 11:41:18 +08:00
|
|
|
center->setPosition(blockSize.width, s.height/2);
|
2012-06-15 15:10:40 +08:00
|
|
|
centerColor->setPosition(center->getPosition());
|
2014-08-28 11:41:18 +08:00
|
|
|
right->setPosition(blockSize.width*2, s.height/2);
|
2012-06-15 15:10:40 +08:00
|
|
|
rightColor->setPosition(right->getPosition());
|
|
|
|
|
2013-04-24 14:49:52 +08:00
|
|
|
this->addChild(leftColor, -1, kTagColor1);
|
2012-06-15 15:10:40 +08:00
|
|
|
this->addChild(left, 0, kTagLabel1);
|
2013-04-24 14:49:52 +08:00
|
|
|
this->addChild(rightColor, -1, kTagColor2);
|
2012-06-15 15:10:40 +08:00
|
|
|
this->addChild(right, 0, kTagLabel2);
|
2013-04-24 14:49:52 +08:00
|
|
|
this->addChild(centerColor, -1, kTagColor3);
|
2012-06-15 15:10:40 +08:00
|
|
|
this->addChild(center, 0, kTagLabel3);
|
2012-06-12 11:16:31 +08:00
|
|
|
this->addChild(top, 0, kTagLabel4);
|
2011-07-29 15:57:27 +08:00
|
|
|
}
|
|
|
|
|
2013-12-19 05:52:10 +08:00
|
|
|
std::string FontTest::title() const
|
2011-07-29 15:57:27 +08:00
|
|
|
{
|
2012-04-19 14:35:52 +08:00
|
|
|
return "Font test";
|
2011-07-29 15:57:27 +08:00
|
|
|
}
|
2016-11-18 09:23:44 +08:00
|
|
|
|
|
|
|
FontNoReplacementTest* FontNoReplacementTest::create()
|
|
|
|
{
|
|
|
|
auto ret = new (std::nothrow) FontNoReplacementTest;
|
|
|
|
if (ret && ret->init())
|
|
|
|
{
|
|
|
|
ret->autorelease();
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
delete ret;
|
|
|
|
ret = nullptr;
|
|
|
|
}
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
FontNoReplacementTest::FontNoReplacementTest()
|
|
|
|
{
|
|
|
|
_replace = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
FontNoReplacementTest::~FontNoReplacementTest()
|
|
|
|
{
|
|
|
|
// need to clear the caches since we change the lookup dictionary after the application init.
|
|
|
|
FontAtlasCache::unloadFontAtlasTTF("fonts/A Damn Mess.ttf");
|
|
|
|
FontFreeType::releaseFont("fonts/A Damn Mess.ttf");
|
|
|
|
FontAtlasCache::unloadFontAtlasTTF("fonts/Abberancy.ttf");
|
|
|
|
FontFreeType::releaseFont("fonts/Abberancy.ttf");
|
|
|
|
FontAtlasCache::unloadFontAtlasTTF("fonts/Abduction.ttf");
|
|
|
|
FontFreeType::releaseFont("fonts/Abduction.ttf");
|
|
|
|
FontAtlasCache::unloadFontAtlasTTF("fonts/Schwarzwald.ttf");
|
|
|
|
FontFreeType::releaseFont("fonts/Schwarzwald.ttf");
|
|
|
|
FileUtils::getInstance()->setFilenameLookupDictionary(ValueMap());
|
|
|
|
}
|
|
|
|
|
|
|
|
void FontNoReplacementTest::onEnter()
|
|
|
|
{
|
|
|
|
TestCase::onEnter();
|
|
|
|
|
|
|
|
std::string suffix;
|
|
|
|
if (_replace)
|
|
|
|
{
|
|
|
|
ValueMap dict{
|
|
|
|
{ "fonts/A Damn Mess.ttf", Value("fonts/arial.ttf") },
|
|
|
|
{ "fonts/Abberancy.ttf", Value("fonts/arial.ttf") },
|
|
|
|
{ "fonts/Abduction.ttf", Value("fonts/arial.ttf") },
|
|
|
|
{ "fonts/Schwarzwald.ttf", Value("fonts/arial.ttf") }
|
|
|
|
};
|
|
|
|
|
|
|
|
FileUtils::getInstance()->setFilenameLookupDictionary(dict);
|
|
|
|
suffix = " replaced by arial.ttf";
|
|
|
|
}
|
|
|
|
|
|
|
|
auto s = Director::getInstance()->getWinSize();
|
|
|
|
|
|
|
|
auto blockSize = Size(s.width / 3, 200);
|
|
|
|
float fontSize = 26;
|
|
|
|
|
|
|
|
removeChildByTag(kTagLabel1, true);
|
|
|
|
removeChildByTag(kTagLabel2, true);
|
|
|
|
removeChildByTag(kTagLabel3, true);
|
|
|
|
removeChildByTag(kTagLabel4, true);
|
|
|
|
removeChildByTag(kTagColor1, true);
|
|
|
|
removeChildByTag(kTagColor2, true);
|
|
|
|
removeChildByTag(kTagColor3, true);
|
|
|
|
|
|
|
|
auto top = Label::createWithTTF("fonts/A Damn Mess.ttf" + suffix, "fonts/A Damn Mess.ttf", 24);
|
|
|
|
auto left = Label::createWithTTF("fonts/Abberancy.ttf" + suffix, "fonts/Abberancy.ttf", fontSize,
|
|
|
|
blockSize, TextHAlignment::LEFT, verticalAlignment[0]);
|
|
|
|
auto center = Label::createWithTTF("fonts/Abduction.ttf" + suffix, "fonts/Abduction.ttf", fontSize,
|
|
|
|
blockSize, TextHAlignment::CENTER, verticalAlignment[0]);
|
|
|
|
auto right = Label::createWithTTF("fonts/Schwarzwald.ttf" + suffix, "fonts/Schwarzwald.ttf", fontSize,
|
|
|
|
blockSize, TextHAlignment::RIGHT, verticalAlignment[0]);
|
|
|
|
|
|
|
|
auto leftColor = LayerColor::create(Color4B(100, 100, 100, 255), blockSize.width, blockSize.height);
|
|
|
|
auto centerColor = LayerColor::create(Color4B(200, 100, 100, 255), blockSize.width, blockSize.height);
|
|
|
|
auto rightColor = LayerColor::create(Color4B(100, 100, 200, 255), blockSize.width, blockSize.height);
|
|
|
|
|
|
|
|
leftColor->setIgnoreAnchorPointForPosition(false);
|
|
|
|
centerColor->setIgnoreAnchorPointForPosition(false);
|
|
|
|
rightColor->setIgnoreAnchorPointForPosition(false);
|
|
|
|
|
|
|
|
top->setAnchorPoint(Vec2(0.5, 1));
|
|
|
|
left->setAnchorPoint(Vec2(0, 0.5));
|
|
|
|
leftColor->setAnchorPoint(Vec2(0, 0.5));
|
|
|
|
center->setAnchorPoint(Vec2(0, 0.5));
|
|
|
|
centerColor->setAnchorPoint(Vec2(0, 0.5));
|
|
|
|
right->setAnchorPoint(Vec2(0, 0.5));
|
|
|
|
rightColor->setAnchorPoint(Vec2(0, 0.5));
|
|
|
|
|
|
|
|
top->setPosition(s.width / 2, s.height - 20);
|
|
|
|
left->setPosition(0, s.height / 2);
|
|
|
|
leftColor->setPosition(left->getPosition());
|
|
|
|
center->setPosition(blockSize.width, s.height / 2);
|
|
|
|
centerColor->setPosition(center->getPosition());
|
|
|
|
right->setPosition(blockSize.width * 2, s.height / 2);
|
|
|
|
rightColor->setPosition(right->getPosition());
|
|
|
|
|
|
|
|
this->addChild(leftColor, -1, kTagColor1);
|
|
|
|
this->addChild(left, 0, kTagLabel1);
|
|
|
|
this->addChild(rightColor, -1, kTagColor2);
|
|
|
|
this->addChild(right, 0, kTagLabel2);
|
|
|
|
this->addChild(centerColor, -1, kTagColor3);
|
|
|
|
this->addChild(center, 0, kTagLabel3);
|
|
|
|
this->addChild(top, 0, kTagLabel4);
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string FontNoReplacementTest::title() const
|
|
|
|
{
|
|
|
|
return "Font no replacement test";
|
|
|
|
}
|
|
|
|
|
|
|
|
FontReplacementTest* FontReplacementTest::create()
|
|
|
|
{
|
|
|
|
auto ret = new (std::nothrow) FontReplacementTest;
|
|
|
|
if (ret && ret->init())
|
|
|
|
{
|
|
|
|
ret->autorelease();
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
delete ret;
|
|
|
|
ret = nullptr;
|
|
|
|
}
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
FontReplacementTest::FontReplacementTest()
|
|
|
|
{
|
|
|
|
_replace = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string FontReplacementTest::title() const
|
|
|
|
{
|
|
|
|
return "Font replacement test";
|
|
|
|
}
|