28#include "../testResource.h"
38#define MID_CALLBACK 1000
39#define MID_CALLBACK2 1001
40#define MID_DISABLED 1002
41#define MID_ENABLE 1003
42#define MID_CONFIG 1004
44#define MID_OPACITY 1006
46#define MID_CALLBACK3 1008
47#define MID_BACKCALLBACK 1009
66 _eventDispatcher->addEventListenerWithFixedPriority(
_touchListener, 1);
69 auto spriteNormal = Sprite::create(
s_MenuItem, Rect(0,23*2,115,23));
70 auto spriteSelected = Sprite::create(
s_MenuItem, Rect(0,23*1,115,23));
71 auto spriteDisabled = Sprite::create(
s_MenuItem, Rect(0,23*0,115,23));
79 auto labelAtlas = LabelAtlas::create(
"0123456789",
"fonts/labelatlas.png", 16, 24,
'.');
81 item3->setDisabledColor( Color3B(32,32,64) );
82 item3->setColor( Color3B(200,200,255) );
83 CCLOG(
"test MenuItem Label getString: %s", item3->getString().c_str());
85 auto item4 = MenuItemFont::create(
"I toggle enable items", [&](Ref *sender) {
89 item4->setFontSizeObj(20);
90 item4->setFontName(
"fonts/Marker Felt.ttf");
93 auto label = Label::createWithBMFont(
"fonts/bitmapFontTest3.fnt",
"configuration");
97 item5->setScale( 0.8f );
100 MenuItemFont::setFontName(
"fonts/Marker Felt.ttf");
109 auto color_action = TintBy::create(0.5f, 0, -255, -255);
110 auto color_back = color_action->reverse();
111 auto seq = Sequence::create(color_action, color_back,
nullptr);
112 item7->runAction(RepeatForever::create(seq));
114 auto menu = Menu::create( item1, item2, item3, item4, item5, item6, item7, item8,
nullptr);
115 menu->alignItemsVertically();
119 auto s = Director::getInstance()->getWinSize();
122 for(
const auto &child : menu->getChildren()) {
123 auto dstPoint = child->getPosition();
124 int offset = (int) (s.width/2 + 50);
128 child->setPosition( Vec2( dstPoint.x + offset, dstPoint.y) );
130 EaseElasticOut::create(MoveBy::create(2, Vec2(dstPoint.x - offset,0.0f)), 0.35f)
140 menu->setPosition(Vec2(s.width/2, s.height/2));
142 menu->runAction(ScaleTo::create(1,1));
170 static_cast<LayerMultiplex*
>(_parent)->switchTo(1,
false);
175 static_cast<LayerMultiplex*
>(_parent)->switchTo(3,
false);
181 unscheduleAllCallbacks();
182 log(
"TOUCHES ALLOWED AGAIN");
190 log(
"TOUCHES DISABLED FOR 5 SECONDS");
195 static_cast<LayerMultiplex*
>(_parent)->switchTo(2,
false);
200 static_cast<LayerMultiplex*
>(_parent)->switchTo(4,
false);
211 static_cast<LayerMultiplex*
>(_parent)->switchTo(5,
false);
221 for(
int i=0;i < 2;i++ )
227 item1->setScaleX( 1.5f );
228 item2->setScaleX( 0.5f );
229 item3->setScaleX( 0.5f );
231 auto menu = Menu::create(item1, item2, item3,
nullptr);
233 auto s = Director::getInstance()->getWinSize();
234 menu->setPosition(Vec2(s.width/2, s.height/2));
238 addChild(menu, 0, 100+i);
255 auto menu =
static_cast<Menu*
>( getChildByTag(100+i) );
260 menu->alignItemsHorizontally();
261 auto p = menu->getPosition();
262 menu->setPosition(p + Vec2(0.0f,30.0f));
268 menu->alignItemsHorizontallyWithPadding(40);
269 auto p = menu->getPosition();
270 menu->setPosition(p - Vec2(0.0f,30.0f));
279 auto menu =
static_cast<Menu*
>( getChildByTag(100+i) );
284 menu->alignItemsVertically();
285 auto p = menu->getPosition();
286 menu->setPosition(p + Vec2(100.0f,0.0f));
291 menu->alignItemsVerticallyWithPadding(40);
292 auto p = menu->getPosition();
293 menu->setPosition(p - Vec2(100.0f,0.0f));
300 static_cast<LayerMultiplex*
>(_parent)->switchTo(0,
false);
305 auto menu =
static_cast<Menu*
>(
static_cast<Node*
>(sender)->getParent() );
306 uint8_t opacity = menu->getOpacity();
308 menu->setOpacity(255);
310 menu->setOpacity(128);
330 MenuItemFont::setFontName(
"fonts/Marker Felt.ttf");
331 MenuItemFont::setFontSize(28);
333 auto label = Label::createWithBMFont(
"fonts/bitmapFontTest3.fnt",
"Enable AtlasItem");
334 auto item1 = MenuItemLabel::create(label, [&](Ref *sender) {
339 auto item2 = MenuItemFont::create(
"--- Go Back ---", [&](Ref *sender) {
340 static_cast<LayerMultiplex*
>(_parent)->switchTo(0,
false);
343 auto spriteNormal = Sprite::create(
s_MenuItem, Rect(0,23*2,115,23));
344 auto spriteSelected = Sprite::create(
s_MenuItem, Rect(0,23*1,115,23));
345 auto spriteDisabled = Sprite::create(
s_MenuItem, Rect(0,23*0,115,23));
348 auto item3 = MenuItemSprite::create(spriteNormal, spriteSelected, spriteDisabled, [](Ref *sender) {
349 log(
"sprite clicked!");
354 auto menu = Menu::create( item1, item2, item3,
nullptr);
355 menu->setPosition( Vec2(0,0) );
357 auto s = Director::getInstance()->getWinSize();
359 item1->setPosition( Vec2(s.width/2 - 150, s.height/2) );
360 item2->setPosition( Vec2(s.width/2 - 200, s.height/2) );
361 item3->setPosition( Vec2(s.width/2, s.height/2 - 100) );
363 auto jump = JumpBy::create(3, Vec2(400,0), 50, 4);
364 item2->runAction( RepeatForever::create(Sequence::create( jump, jump->reverse(),
nullptr)));
366 auto spin1 = RotateBy::create(3, 360);
367 auto spin2 = spin1->clone();
368 auto spin3 = spin1->clone();
370 item1->runAction( RepeatForever::create(spin1) );
371 item2->runAction( RepeatForever::create(spin2) );
372 item3->runAction( RepeatForever::create(spin3) );
376 menu->setPosition(Vec2(0,0));
391 MenuItemFont::setFontName(
"American Typewriter");
392 MenuItemFont::setFontSize(18);
393 auto title1 = MenuItemFont::create(
"Sound");
394 title1->setEnabled(
false);
395 MenuItemFont::setFontName(
"fonts/Marker Felt.ttf" );
396 MenuItemFont::setFontSize(34);
398 MenuItemFont::create(
"On" ),
399 MenuItemFont::create(
"Off"),
402 MenuItemFont::setFontName(
"American Typewriter" );
403 MenuItemFont::setFontSize(18);
404 auto title2 = MenuItemFont::create(
"Music" );
405 title2->setEnabled(
false);
406 MenuItemFont::setFontName(
"fonts/Marker Felt.ttf" );
407 MenuItemFont::setFontSize(34);
409 MenuItemFont::create(
"On" ),
410 MenuItemFont::create(
"Off"),
413 MenuItemFont::setFontName(
"American Typewriter" );
414 MenuItemFont::setFontSize(18);
415 auto title3 = MenuItemFont::create(
"Quality" );
416 title3->setEnabled(
false );
417 MenuItemFont::setFontName(
"fonts/Marker Felt.ttf" );
418 MenuItemFont::setFontSize(34);
420 MenuItemFont::create(
"High" ),
421 MenuItemFont::create(
"Low" ),
424 MenuItemFont::setFontName(
"American Typewriter" );
425 MenuItemFont::setFontSize(18);
426 auto title4 = MenuItemFont::create(
"Orientation" );
427 title4->setEnabled(
false);
428 MenuItemFont::setFontName(
"fonts/Marker Felt.ttf" );
429 MenuItemFont::setFontSize(34);
431 MenuItemFont::create(
"Off" ),
435 item4->getSubItems().pushBack( MenuItemFont::create(
"33%" ) );
436 item4->getSubItems().pushBack( MenuItemFont::create(
"66%" ) );
437 item4->getSubItems().pushBack( MenuItemFont::create(
"100%" ) );
440 item4->setSelectedIndex( 2 );
442 MenuItemFont::setFontName(
"fonts/Marker Felt.ttf" );
443 MenuItemFont::setFontSize( 34 );
445 auto label = Label::createWithBMFont(
"fonts/bitmapFontTest3.fnt",
"go back");
448 auto menu = Menu::create(
455 menu->alignItemsInColumns(2, 2, 2, 2, 1, NULL);
459 auto s = Director::getInstance()->getWinSize();
460 menu->setPosition(Vec2(s.width/2, s.height/2));
474 static_cast<LayerMultiplex*
>(_parent)->switchTo(0,
false);
484 auto menu = Menu::create(issue1410, issue1410_2, back,
nullptr);
486 menu->alignItemsVertically();
488 auto s = Director::getInstance()->getWinSize();
489 menu->setPosition(Vec2(s.width/2, s.height/2));
494 auto menu =
static_cast<Menu*
>(
static_cast<Node*
>(sender)->getParent() );
495 menu->setEnabled(
false);
496 menu->setEnabled(
true);
503 auto menu =
static_cast<Menu*
>(
static_cast<MenuItem*
>(pSender)->getParent() );
504 menu->setEnabled(
true);
505 menu->setEnabled(
false);
507 log(
"NO CRASHES. AND MENU SHOULD STOP WORKING");
512 static_cast<LayerMultiplex*
>(_parent)->switchTo(0,
false);
517 auto s = Director::getInstance()->getWinSize();
519 auto label = Label::createWithTTF(
"click item and move, should not crash",
"fonts/arial.ttf", 20);
520 label->setPosition(Vec2(s.width/2, s.height - 30));
523 item = MenuItemFont::create(
"item 1");
528 auto menu = Menu::create(
item, back,
nullptr);
530 menu->alignItemsVertically();
532 menu->setPosition(Vec2(s.width/2, s.height/2));
541 _eventDispatcher->addEventListenerWithFixedPriority(
_touchListener, -129);
547 static_cast<LayerMultiplex*
>(_parent)->switchTo(0,
false);
553 CC_SAFE_RELEASE(
item);
565 item->removeFromParentAndCleanup(
true);
573 if (TestCase::init())
575 MenuItemFont::setFontSize(20);
578 auto layer2 =
new (std::nothrow)
MenuLayer2();
579 auto layer3 =
new (std::nothrow)
MenuLayer3();
580 auto layer4 =
new (std::nothrow)
MenuLayer4();
581 auto layer5 =
new (std::nothrow)
BugsTest();
584 auto layer = LayerMultiplex::create(layer1, layer2, layer3, layer4, layer5, layer6,
nullptr);
#define ADD_TEST_CASE(__className__)
void issue1410v2MenuCallback(cocos2d::Ref *pSender)
void backMenuCallback(cocos2d::Ref *pSender)
void issue1410MenuCallback(cocos2d::Ref *pSender)
void touchEnded(cocos2d::Touch *touch, cocos2d::Event *event)
cocos2d::EventListenerTouchOneByOne * _touchListener
void onQuit(cocos2d::Ref *sender)
void menuMovingCallback(cocos2d::Ref *pSender)
void menuCallbackDisabled(cocos2d::Ref *sender)
void touchMoved(cocos2d::Touch *touch, cocos2d::Event *event)
void touchCancelled(cocos2d::Touch *touch, cocos2d::Event *event)
bool touchBegan(cocos2d::Touch *touch, cocos2d::Event *event)
void menuCallback(cocos2d::Ref *sender)
void menuCallback2(cocos2d::Ref *sender)
void allowTouches(float dt)
void menuCallbackConfig(cocos2d::Ref *sender)
cocos2d::MenuItem * _disabledItem
void menuCallbackBugsTest(cocos2d::Ref *pSender)
static const char s_HighNormal[]
static const char s_PressSendScore[]
static const char s_PlaySelect[]
static const char s_PlayNormal[]
static const char s_AboutNormal[]
static const char s_MenuItem[]
static const char s_HighSelect[]
static const char s_AboutSelect[]
static const char s_SendScore[]