PuzzleSDK
LabelLayoutBaseTest类 参考

#include <LabelTestNew.h>

+ 类 LabelLayoutBaseTest 继承关系图:
+ LabelLayoutBaseTest 的协作图:

Public 成员函数

 LabelLayoutBaseTest ()
 
void updateDrawNodeSize (const cocos2d::Size &drawNodeSize)
 
cocos2d::extension::ControlStepper * makeControlStepper ()
 
void valueChanged (cocos2d::Ref *sender, cocos2d::extension::Control::EventType controlEvent)
 
- Public 成员函数 继承自 TestCase
 TestCase ()
 
 ~TestCase ()
 
virtual std::string title () const
 
virtual std::string subtitle () const
 
virtual Type getTestType () const
 
virtual float getDuration () const
 
virtual std::string getExpectedOutput () const
 
virtual std::string getActualOutput () const
 
virtual void restartTestCallback (cocos2d::Ref *sender)
 
virtual void nextTestCallback (cocos2d::Ref *sender)
 
virtual void priorTestCallback (cocos2d::Ref *sender)
 
virtual void onBackCallback (cocos2d::Ref *sender)
 
void setTestSuite (TestSuite *testSuite)
 
TestSuitegetTestSuite () const
 
float getRunTime () const
 
void setTestCaseName (const std::string &name)
 
std::string getTestCaseName () const
 
const cocos2d::Label * getSubtitleLable () const
 
const cocos2d::MenuItemImage * getRestartTestItem () const
 
virtual void onEnter () override
 

Protected 成员函数

void setAlignmentLeft (cocos2d::Ref *sender)
 
void setAlignmentCenter (cocos2d::Ref *sender)
 
void setAlignmentRight (cocos2d::Ref *sender)
 
void setAlignmentTop (cocos2d::Ref *sender)
 
void setAlignmentMiddle (cocos2d::Ref *sender)
 
void setAlignmentBottom (cocos2d::Ref *sender)
 
void initWrapOption (const cocos2d::Size &size)
 
void initToggleLabelTypeOption (const cocos2d::Size &size)
 
void initAlignmentOption (const cocos2d::Size &size)
 
void initFontSizeChange (const cocos2d::Size &size)
 
void initSliders (const cocos2d::Size &size)
 
void initTestLabel (const cocos2d::Size &size)
 
void initDrawNode (const cocos2d::Size &size)
 

Protected 属性

cocos2d::DrawNode * _drawNode
 
cocos2d::Label * _label
 
int _labelType
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 

详细描述

在文件 LabelTestNew.h681 行定义.

构造及析构函数说明

◆ LabelLayoutBaseTest()

LabelLayoutBaseTest::LabelLayoutBaseTest ( )

在文件 LabelTestNew.cpp2227 行定义.

2228{
2229 auto size = Director::getInstance()->getVisibleSize();
2230
2231 this->initTestLabel(size);
2232
2233 this->initFontSizeChange(size);
2234 this->initToggleLabelTypeOption(size);
2235
2236 this->initWrapOption(size);
2237
2238 this->initAlignmentOption(size);
2239
2240 this->initDrawNode(size);
2241
2242 this->initSliders(size);
2243}
void initFontSizeChange(const cocos2d::Size &size)
void initTestLabel(const cocos2d::Size &size)
void initSliders(const cocos2d::Size &size)
void initWrapOption(const cocos2d::Size &size)
void initDrawNode(const cocos2d::Size &size)
void initToggleLabelTypeOption(const cocos2d::Size &size)
void initAlignmentOption(const cocos2d::Size &size)

引用了 initAlignmentOption(), initDrawNode(), initFontSizeChange(), initSliders(), initTestLabel(), initToggleLabelTypeOption() , 以及 initWrapOption().

+ 函数调用图:

成员函数说明

◆ initAlignmentOption()

void LabelLayoutBaseTest::initAlignmentOption ( const cocos2d::Size &  size)
protected

在文件 LabelTestNew.cpp2331 行定义.

2332{
2333 //add text alignment settings
2334 MenuItemFont::setFontSize(30);
2335 auto menu = Menu::create(
2336 MenuItemFont::create("Left", CC_CALLBACK_1(LabelLayoutBaseTest::setAlignmentLeft, this)),
2337 MenuItemFont::create("Center", CC_CALLBACK_1(LabelLayoutBaseTest::setAlignmentCenter, this)),
2338 MenuItemFont::create("Right", CC_CALLBACK_1(LabelLayoutBaseTest::setAlignmentRight, this)),
2339 nullptr);
2340 menu->alignItemsVerticallyWithPadding(4);
2341 menu->setPosition(Vec2(50.0f, size.height / 2 - 20));
2342 this->addChild(menu);
2343
2344 menu = Menu::create(
2345 MenuItemFont::create("Top", CC_CALLBACK_1(LabelLayoutBaseTest::setAlignmentTop, this)),
2346 MenuItemFont::create("Middle", CC_CALLBACK_1(LabelLayoutBaseTest::setAlignmentMiddle, this)),
2347 MenuItemFont::create("Bottom", CC_CALLBACK_1(LabelLayoutBaseTest::setAlignmentBottom, this)),
2348 nullptr);
2349 menu->alignItemsVerticallyWithPadding(4);
2350 menu->setPosition(Vec2(size.width - 50, size.height / 2 - 20));
2351 this->addChild(menu);
2352}
void setAlignmentMiddle(cocos2d::Ref *sender)
void setAlignmentBottom(cocos2d::Ref *sender)
void setAlignmentTop(cocos2d::Ref *sender)
void setAlignmentLeft(cocos2d::Ref *sender)
void setAlignmentRight(cocos2d::Ref *sender)
void setAlignmentCenter(cocos2d::Ref *sender)

引用了 setAlignmentBottom(), setAlignmentCenter(), setAlignmentLeft(), setAlignmentMiddle(), setAlignmentRight() , 以及 setAlignmentTop().

被这些函数引用 LabelLayoutBaseTest().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ initDrawNode()

void LabelLayoutBaseTest::initDrawNode ( const cocos2d::Size &  size)
protected

在文件 LabelTestNew.cpp2413 行定义.

2414{
2415 _drawNode = DrawNode::create();
2416
2417 _drawNode->setTag(3);
2418 addChild(_drawNode);
2419 this->updateDrawNodeSize(_label->getContentSize());
2420}
void updateDrawNodeSize(const cocos2d::Size &drawNodeSize)
cocos2d::Label * _label
Definition: LabelTestNew.h:705
cocos2d::DrawNode * _drawNode
Definition: LabelTestNew.h:704

引用了 _drawNode, _label , 以及 updateDrawNodeSize().

被这些函数引用 LabelLayoutBaseTest().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ initFontSizeChange()

void LabelLayoutBaseTest::initFontSizeChange ( const cocos2d::Size &  size)
protected

在文件 LabelTestNew.cpp2245 行定义.

2246{
2247 auto fontSizeLabel = Label::createWithSystemFont("font size:20", "Arial", 10);
2248 fontSizeLabel->setName("fontSize");
2249
2250 ControlStepper *stepper = this->makeControlStepper();
2251 stepper->setPosition(size.width * 0.5 - stepper->getContentSize().width / 2,
2252 size.height * 0.8);
2253 stepper->setValue(20);
2254 stepper->addTargetWithActionForControlEvents(this,
2255 cccontrol_selector(LabelLayoutBaseTest::valueChanged),
2256 Control::EventType::VALUE_CHANGED);
2257 this->addChild(stepper);
2258 stepper->setName("stepper");
2259 stepper->setScale(0.5);
2260
2261 fontSizeLabel->setPosition(stepper->getPosition() -
2262 Vec2(stepper->getContentSize().width/2 + fontSizeLabel->getContentSize().width/2,0.0f));
2263 this->addChild(fontSizeLabel);
2264}
cocos2d::extension::ControlStepper * makeControlStepper()
void valueChanged(cocos2d::Ref *sender, cocos2d::extension::Control::EventType controlEvent)

引用了 makeControlStepper() , 以及 valueChanged().

被这些函数引用 LabelLayoutBaseTest().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ initSliders()

void LabelLayoutBaseTest::initSliders ( const cocos2d::Size &  size)
protected

在文件 LabelTestNew.cpp2354 行定义.

2355{
2356 auto slider = ui::Slider::create();
2357 slider->setTag(1);
2358 slider->setTouchEnabled(true);
2359 slider->loadBarTexture("cocosui/sliderTrack.png");
2360 slider->loadSlidBallTextures("cocosui/sliderThumb.png", "cocosui/sliderThumb.png", "");
2361 slider->loadProgressBarTexture("cocosui/sliderProgress.png");
2362 slider->setPosition(Vec2(size.width / 2.0f, size.height * 0.15f + slider->getContentSize().height * 2.0f - 5));
2363 slider->setPercent(52);
2364 addChild(slider);
2365
2366 auto slider2 = ui::Slider::create();
2367 slider2->setTag(2);
2368 slider2->setTouchEnabled(true);
2369 slider2->loadBarTexture("cocosui/sliderTrack.png");
2370 slider2->loadSlidBallTextures("cocosui/sliderThumb.png", "cocosui/sliderThumb.png", "");
2371 slider2->loadProgressBarTexture("cocosui/sliderProgress.png");
2372 slider2->setPosition(Vec2(size.width * 0.2f, size.height / 2.0f));
2373 slider2->setRotation(90);
2374 slider2->setPercent(52);
2375 addChild(slider2);
2376 auto winSize = Director::getInstance()->getVisibleSize();
2377
2378 slider->addEventListener([=](Ref* ref, Slider::EventType event){
2379 float percent = slider->getPercent();
2380 auto labelSize = _label->getContentSize();
2381 auto drawNodeSize = Size(percent / 100.0 * winSize.width, labelSize.height);
2382 if(drawNodeSize.width <=0){
2383 drawNodeSize.width = 0.1f;
2384 }
2385 _label->setDimensions(drawNodeSize.width, drawNodeSize.height);
2386 this->updateDrawNodeSize(drawNodeSize);
2387 });
2388
2389 slider2->addEventListener([=](Ref* ref, Slider::EventType event){
2390 float percent = slider2->getPercent();
2391 auto labelSize = _label->getContentSize();
2392 auto drawNodeSize = Size( labelSize.width, percent / 100.0 * winSize.height);
2393 if(drawNodeSize.height <= 0){
2394 drawNodeSize.height = 0.1f;
2395 }
2396 _label->setDimensions(drawNodeSize.width, drawNodeSize.height);
2397 this->updateDrawNodeSize(drawNodeSize);
2398 });
2399}

引用了 _label , 以及 updateDrawNodeSize().

被这些函数引用 LabelLayoutBaseTest().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ initTestLabel()

void LabelLayoutBaseTest::initTestLabel ( const cocos2d::Size &  size)
protected

在文件 LabelTestNew.cpp2401 行定义.

2402{
2403 auto center = VisibleRect::center();
2404 _label = Label::createWithTTF("五六七八This is a very long sentence一二三四.", "fonts/HKYuanMini.ttf", 20);
2405 _label->setDimensions(size.width/2, size.height/2);
2406 _label->setPosition(center);
2407 _label->setName("Label");
2408 _label->setString("五六七八This is a very long sentence一二三.");
2409 addChild(_label);
2410 _labelType = 0;
2411}
static cocos2d::Vec2 center()
Definition: VisibleRect.cpp:69

引用了 _label, _labelType , 以及 VisibleRect::center().

被这些函数引用 LabelLayoutBaseTest().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ initToggleLabelTypeOption()

void LabelLayoutBaseTest::initToggleLabelTypeOption ( const cocos2d::Size &  size)
protected

在文件 LabelTestNew.cpp2294 行定义.

2295{
2296 auto label = Label::createWithSystemFont("Toggle Label Type:", "Arial", 10);
2297 label->setColor(Color3B::WHITE);
2298 label->setPosition(Vec2(size.width * 0.8f + 15, size.height * 0.8f));
2299 this->addChild(label);
2300
2301 CheckBox* checkBox = CheckBox::create("cocosui/check_box_normal.png",
2302 "cocosui/check_box_normal_press.png",
2303 "cocosui/check_box_active.png",
2304 "cocosui/check_box_normal_disable.png",
2305 "cocosui/check_box_active_disable.png");
2306 checkBox->setPosition(Vec2(size.width * 0.8f + 70, size.height * 0.8f));
2307 checkBox->setScale(0.5);
2308 checkBox->setName("toggleType");
2309 checkBox->setSelected(true);
2310
2311 auto stepper = (ControlStepper*)this->getChildByName("stepper");
2312
2313 checkBox->addEventListener([=](Ref* ref, CheckBox::EventType event){
2314 float fontSize = stepper->getValue();
2315
2316 if (event == CheckBox::EventType::SELECTED) {
2317 _labelType = 0;
2318 auto ttfConfig = _label->getTTFConfig();
2319 ttfConfig.fontSize = fontSize;
2320 _label->setTTFConfig(ttfConfig);
2321 }else{
2322 _labelType = 1;
2323 _label->setBMFontFilePath("fonts/enligsh-chinese.fnt");
2324 _label->setBMFontSize(fontSize);
2325 }
2326 });
2327 this->addChild(checkBox);
2328
2329}

引用了 _label , 以及 _labelType.

被这些函数引用 LabelLayoutBaseTest().

+ 这是这个函数的调用关系图:

◆ initWrapOption()

void LabelLayoutBaseTest::initWrapOption ( const cocos2d::Size &  size)
protected

在文件 LabelTestNew.cpp2266 行定义.

2267{
2268 auto label = Label::createWithSystemFont("Enable Wrap:", "Arial", 10);
2269 label->setColor(Color3B::WHITE);
2270 label->setPosition(Vec2(size.width * 0.8f - 100, size.height * 0.8f));
2271 this->addChild(label);
2272
2273 CheckBox* checkBox = CheckBox::create("cocosui/check_box_normal.png",
2274 "cocosui/check_box_normal_press.png",
2275 "cocosui/check_box_active.png",
2276 "cocosui/check_box_normal_disable.png",
2277 "cocosui/check_box_active_disable.png");
2278 checkBox->setPosition(Vec2(size.width * 0.8f - 55, size.height * 0.8f));
2279 checkBox->setScale(0.5);
2280 checkBox->setSelected(true);
2281 checkBox->setName("toggleWrap");
2282
2283 checkBox->addEventListener([=](Ref* ref, CheckBox::EventType event){
2284 if (event == CheckBox::EventType::SELECTED) {
2285 _label->enableWrap(true);
2286 }else{
2287 _label->enableWrap(false);
2288 }
2289 this->updateDrawNodeSize(_label->getContentSize());
2290 });
2291 this->addChild(checkBox);
2292}

引用了 _label , 以及 updateDrawNodeSize().

被这些函数引用 LabelLayoutBaseTest().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ makeControlStepper()

ControlStepper * LabelLayoutBaseTest::makeControlStepper ( )

在文件 LabelTestNew.cpp2219 行定义.

2220{
2221 auto minusSprite = Sprite::create("extensions/stepper-minus.png");
2222 auto plusSprite = Sprite::create("extensions/stepper-plus.png");
2223
2224 return ControlStepper::create(minusSprite, plusSprite);
2225}

被这些函数引用 initFontSizeChange().

+ 这是这个函数的调用关系图:

◆ setAlignmentBottom()

void LabelLayoutBaseTest::setAlignmentBottom ( cocos2d::Ref *  sender)
protected

在文件 LabelTestNew.cpp2448 行定义.

2449{
2450 _label->setVerticalAlignment(TextVAlignment::BOTTOM);
2451}

引用了 _label.

被这些函数引用 initAlignmentOption().

+ 这是这个函数的调用关系图:

◆ setAlignmentCenter()

void LabelLayoutBaseTest::setAlignmentCenter ( cocos2d::Ref *  sender)
protected

在文件 LabelTestNew.cpp2428 行定义.

2429{
2430 _label->setHorizontalAlignment(TextHAlignment::CENTER);
2431}

引用了 _label.

被这些函数引用 initAlignmentOption().

+ 这是这个函数的调用关系图:

◆ setAlignmentLeft()

void LabelLayoutBaseTest::setAlignmentLeft ( cocos2d::Ref *  sender)
protected

在文件 LabelTestNew.cpp2423 行定义.

2424{
2425 _label->setHorizontalAlignment(TextHAlignment::LEFT);
2426}

引用了 _label.

被这些函数引用 initAlignmentOption().

+ 这是这个函数的调用关系图:

◆ setAlignmentMiddle()

void LabelLayoutBaseTest::setAlignmentMiddle ( cocos2d::Ref *  sender)
protected

在文件 LabelTestNew.cpp2443 行定义.

2444{
2445 _label->setVerticalAlignment(TextVAlignment::CENTER);
2446}

引用了 _label.

被这些函数引用 initAlignmentOption().

+ 这是这个函数的调用关系图:

◆ setAlignmentRight()

void LabelLayoutBaseTest::setAlignmentRight ( cocos2d::Ref *  sender)
protected

在文件 LabelTestNew.cpp2433 行定义.

2434{
2435 _label->setHorizontalAlignment(TextHAlignment::RIGHT);
2436}

引用了 _label.

被这些函数引用 initAlignmentOption().

+ 这是这个函数的调用关系图:

◆ setAlignmentTop()

void LabelLayoutBaseTest::setAlignmentTop ( cocos2d::Ref *  sender)
protected

在文件 LabelTestNew.cpp2438 行定义.

2439{
2440 _label->setVerticalAlignment(TextVAlignment::TOP);
2441}

引用了 _label.

被这些函数引用 initAlignmentOption().

+ 这是这个函数的调用关系图:

◆ updateDrawNodeSize()

void LabelLayoutBaseTest::updateDrawNodeSize ( const cocos2d::Size &  drawNodeSize)

在文件 LabelTestNew.cpp2482 行定义.

2483{
2484 auto origin = Director::getInstance()->getWinSize();
2485 auto labelSize = _label->getContentSize();
2486
2487 origin.width = origin.width / 2 - (labelSize.width / 2);
2488 origin.height = origin.height / 2 - (labelSize.height / 2);
2489
2490 Vec2 vertices[4]=
2491 {
2492 Vec2(origin.width, origin.height),
2493 Vec2(drawNodeSize.width + origin.width, origin.height),
2494 Vec2(drawNodeSize.width + origin.width, drawNodeSize.height + origin.height),
2495 Vec2(origin.width, drawNodeSize.height + origin.height)
2496 };
2497 _drawNode->clear();
2498 _drawNode->drawLine(vertices[0], vertices[1], Color4F(1.0f, 1.0f, 1.0f, 1.0f));
2499 _drawNode->drawLine(vertices[0], vertices[3], Color4F(1.0f, 1.0f, 1.0f, 1.0f));
2500 _drawNode->drawLine(vertices[2], vertices[3], Color4F(1.0f, 1.0f, 1.0f, 1.0f));
2501 _drawNode->drawLine(vertices[1], vertices[2], Color4F(1.0f, 1.0f, 1.0f, 1.0f));
2502
2503}

引用了 _drawNode , 以及 _label.

被这些函数引用 initDrawNode(), initSliders(), initWrapOption(), LabelCharMapFontTest::LabelCharMapFontTest(), LabelResizeTest::LabelResizeTest(), LabelSystemFontTest::LabelSystemFontTest(), LabelToggleTypeTest::LabelToggleTypeTest(), LabelToggleTypeTest::onChangedRadioButtonSelect(), LabelSystemFontTest::onChangedRadioButtonSelect() , 以及 valueChanged().

+ 这是这个函数的调用关系图:

◆ valueChanged()

void LabelLayoutBaseTest::valueChanged ( cocos2d::Ref *  sender,
cocos2d::extension::Control::EventType  controlEvent 
)

在文件 LabelTestNew.cpp2454 行定义.

2455{
2456 ControlStepper* pControl = (ControlStepper*)sender;
2457 // Change value of label.
2458 auto fontSizeLabel = (Label*)this->getChildByName("fontSize");
2459 float fontSize = (float)pControl->getValue();
2460 fontSizeLabel->setString(StringUtils::format("font size:%d", (int)fontSize));
2461
2462 if (_labelType == 0) {
2463 auto ttfConfig = _label->getTTFConfig();
2464 ttfConfig.fontSize = fontSize;
2465 _label->setTTFConfig(ttfConfig);
2466 }else if(_labelType == 1){
2467 _label->setBMFontSize(fontSize);
2468 }else if (_labelType == 2) {
2469 _label->setSystemFontSize(fontSize);
2470 }
2471 this->updateDrawNodeSize(_label->getContentSize());
2472
2473 //FIXME::When calling getLetter, the label Overflow feature will be invalid.
2474// auto letterSprite = _label->getLetter(1);
2475// auto moveBy = ScaleBy::create(1.0,2.0);
2476// letterSprite->stopAllActions();
2477// letterSprite->runAction(Sequence::create(moveBy, moveBy->clone()->reverse(), nullptr ));
2478//
2479// CCLOG("label line height = %f", _label->getLineHeight());
2480}

引用了 _label, _labelType , 以及 updateDrawNodeSize().

被这些函数引用 initFontSizeChange().

+ 函数调用图:
+ 这是这个函数的调用关系图:

类成员变量说明

◆ _drawNode

cocos2d::DrawNode* LabelLayoutBaseTest::_drawNode
protected

在文件 LabelTestNew.h704 行定义.

被这些函数引用 initDrawNode() , 以及 updateDrawNodeSize().

◆ _label

◆ _labelType

int LabelLayoutBaseTest::_labelType
protected

该类的文档由以下文件生成: