PuzzleSDK
UIFocusTestBase类 参考

#include <UIFocusTest.h>

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

Public 成员函数

 UIFocusTestBase ()
 
virtual ~UIFocusTestBase ()
 
virtual bool init () override
 
virtual void onLeftKeyPressed ()
 
virtual void onRightKeyPressed ()
 
virtual void onUpKeyPressed ()
 
virtual void onDownKeyPressed ()
 
virtual void onFocusChanged (cocos2d::ui::Widget *widgetLostFocus, cocos2d::ui::Widget *widgetGetFocus)
 
void onImageViewClicked (cocos2d::Ref *ref, cocos2d::ui::Widget::TouchEventType touchType)
 
- Public 成员函数 继承自 UIScene
 UIScene ()
 
 ~UIScene ()
 
virtual void onEnter () override
 
- 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
 

Protected 属性

cocos2d::Menu * _dpadMenu
 
cocos2d::ui::Widget * _firstFocusedWidget
 
cocos2d::EventListenerFocus * _eventListener
 
cocos2d::ui::Button * _toggleButton
 
- Protected 属性 继承自 UIScene
cocos2d::Layer * _uiLayer
 
cocos2d::ui::Layout * _widget
 
cocos2d::ui::Text * _sceneTitle
 
- 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
 

详细描述

在文件 UIFocusTest.h40 行定义.

构造及析构函数说明

◆ UIFocusTestBase()

UIFocusTestBase::UIFocusTestBase ( )

在文件 UIFocusTest.cpp47 行定义.

48{
49
50}

◆ ~UIFocusTestBase()

UIFocusTestBase::~UIFocusTestBase ( )
virtual

在文件 UIFocusTest.cpp52 行定义.

53{
54 _eventDispatcher->removeEventListener(_eventListener);
55}
cocos2d::EventListenerFocus * _eventListener
Definition: UIFocusTest.h:59

引用了 _eventListener.

成员函数说明

◆ init()

bool UIFocusTestBase::init ( )
overridevirtual

重载 UIScene .

UIFocusTestHorizontal, UIFocusTestVertical, UIFocusTestNestedLayout1, UIFocusTestNestedLayout2 , 以及 UIFocusTestNestedLayout3 重载.

在文件 UIFocusTest.cpp57 行定义.

58{
59 if (UIScene::init()) {
60 Layout* root = static_cast<Layout*>(_uiLayer->getChildByTag(81));
61
62 Layout* background = dynamic_cast<Layout*>(root->getChildByName("background_Panel"));
63 background->removeFromParentAndCleanup(true);
64
65 _dpadMenu = Menu::create();
66
67 auto winSize = Director::getInstance()->getVisibleSize();
68 auto leftItem = MenuItemFont::create("Left", CC_CALLBACK_0(UIFocusTestBase::onLeftKeyPressed, this));
69 leftItem->setPosition(Vec2(winSize.width - 100, winSize.height/2));
70 _dpadMenu->addChild(leftItem);
71
72
73 auto rightItem = MenuItemFont::create("Right", CC_CALLBACK_0(UIFocusTestBase::onRightKeyPressed, this));
74 rightItem->setPosition(Vec2(winSize.width - 30, winSize.height/2));
75 _dpadMenu->addChild(rightItem);
76
77 auto upItem = MenuItemFont::create("Up", CC_CALLBACK_0(UIFocusTestBase::onUpKeyPressed, this));
78 upItem->setPosition(Vec2(winSize.width - 60, winSize.height/2 + 50));
79 _dpadMenu->addChild(upItem);
80
81 auto downItem = MenuItemFont::create("Down", CC_CALLBACK_0(UIFocusTestBase::onDownKeyPressed, this));
82 downItem->setPosition(Vec2(winSize.width - 60, winSize.height/2 - 50));
83 _dpadMenu->addChild(downItem);
84
85 _dpadMenu->setPosition(Vec2::ZERO);
86 _uiLayer->addChild(_dpadMenu);
87
88 //call this method to enable Dpad focus navigation
89 Widget::enableDpadNavigation(true);
90
91 _eventListener = EventListenerFocus::create();
92 _eventListener->onFocusChanged = CC_CALLBACK_2(UIFocusTestBase::onFocusChanged, this);
93
94 _eventDispatcher->addEventListenerWithFixedPriority(_eventListener, 1);
95
96 _toggleButton = Button::create("cocosui/switch-mask.png");
97 _toggleButton->setTitleText("Toggle Loop");
98 _toggleButton->setPosition(Vec2(60.0f, winSize.height - 50));
99 _toggleButton->setTitleColor(Color3B::RED);
100 _toggleButton->setFocusEnabled(false);
101 this->addChild(_toggleButton);
102
103 return true;
104 }
105
106 return false;
107}
cocos2d::Menu * _dpadMenu
Definition: UIFocusTest.h:57
virtual void onFocusChanged(cocos2d::ui::Widget *widgetLostFocus, cocos2d::ui::Widget *widgetGetFocus)
virtual void onUpKeyPressed()
virtual void onLeftKeyPressed()
virtual void onDownKeyPressed()
virtual void onRightKeyPressed()
cocos2d::ui::Button * _toggleButton
Definition: UIFocusTest.h:60
cocos2d::Layer * _uiLayer
Definition: UIScene.h:44
virtual bool init() override
Definition: UIScene.cpp:46

引用了 _dpadMenu, _eventListener, _toggleButton, UIScene::_uiLayer, UIScene::init(), onDownKeyPressed(), onFocusChanged(), onLeftKeyPressed(), onRightKeyPressed() , 以及 onUpKeyPressed().

被这些函数引用 UIFocusTestHorizontal::init(), UIFocusTestVertical::init(), UIFocusTestNestedLayout1::init(), UIFocusTestNestedLayout2::init() , 以及 UIFocusTestNestedLayout3::init().

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

◆ onDownKeyPressed()

void UIFocusTestBase::onDownKeyPressed ( )
virtual

在文件 UIFocusTest.cpp145 行定义.

146{
147 cocos2d::EventKeyboard::KeyCode cocos2dKey =EventKeyboard::KeyCode::KEY_DPAD_DOWN;
148 cocos2d::EventKeyboard event(cocos2dKey, false);
149 cocos2d::Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
150
151}

被这些函数引用 init().

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

◆ onFocusChanged()

void UIFocusTestBase::onFocusChanged ( cocos2d::ui::Widget *  widgetLostFocus,
cocos2d::ui::Widget *  widgetGetFocus 
)
virtual

在文件 UIFocusTest.cpp153 行定义.

154{
155 if (widgetGetFocus && widgetGetFocus->isFocusEnabled()) {
156 widgetGetFocus->setColor(Color3B::RED);
157 }
158
159 if (widgetLostFocus && widgetLostFocus->isFocusEnabled()) {
160 widgetLostFocus->setColor(Color3B::WHITE);
161 }
162
163 if (widgetLostFocus && widgetGetFocus) {
164 CCLOG("on focus change, %d widget get focus, %d widget lose focus", widgetGetFocus->getTag(), widgetLostFocus->getTag());
165 }
166}

被这些函数引用 init().

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

◆ onImageViewClicked()

void UIFocusTestBase::onImageViewClicked ( cocos2d::Ref *  ref,
cocos2d::ui::Widget::TouchEventType  touchType 
)

在文件 UIFocusTest.cpp109 行定义.

110{
111 if (touchType == Widget::TouchEventType::ENDED) {
112 Widget *w = (Widget*)ref;
113 if (w->isFocusEnabled()) {
114 w->setFocusEnabled(false);
115 w->setColor(Color3B::YELLOW);
116 }else{
117 w->setFocusEnabled(true);
118 w->setColor(Color3B::WHITE);
119 }
120 }
121}

被这些函数引用 UIFocusTestHorizontal::init(), UIFocusTestVertical::init(), UIFocusTestNestedLayout1::init(), UIFocusTestNestedLayout2::init() , 以及 UIFocusTestNestedLayout3::init().

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

◆ onLeftKeyPressed()

void UIFocusTestBase::onLeftKeyPressed ( )
virtual

在文件 UIFocusTest.cpp123 行定义.

124{
125 cocos2d::EventKeyboard::KeyCode cocos2dKey =EventKeyboard::KeyCode::KEY_DPAD_LEFT;
126 cocos2d::EventKeyboard event(cocos2dKey, false);
127 cocos2d::Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
128}

被这些函数引用 init().

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

◆ onRightKeyPressed()

void UIFocusTestBase::onRightKeyPressed ( )
virtual

在文件 UIFocusTest.cpp130 行定义.

131{
132 cocos2d::EventKeyboard::KeyCode cocos2dKey =EventKeyboard::KeyCode::KEY_DPAD_RIGHT;
133 cocos2d::EventKeyboard event(cocos2dKey, false);
134 cocos2d::Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
135}

被这些函数引用 init().

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

◆ onUpKeyPressed()

void UIFocusTestBase::onUpKeyPressed ( )
virtual

在文件 UIFocusTest.cpp137 行定义.

138{
139 cocos2d::EventKeyboard::KeyCode cocos2dKey =EventKeyboard::KeyCode::KEY_DPAD_UP;
140 cocos2d::EventKeyboard event(cocos2dKey, false);
141 cocos2d::Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
142
143}

被这些函数引用 init().

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

类成员变量说明

◆ _dpadMenu

cocos2d::Menu* UIFocusTestBase::_dpadMenu
protected

在文件 UIFocusTest.h57 行定义.

被这些函数引用 init().

◆ _eventListener

cocos2d::EventListenerFocus* UIFocusTestBase::_eventListener
protected

在文件 UIFocusTest.h59 行定义.

被这些函数引用 init() , 以及 ~UIFocusTestBase().

◆ _firstFocusedWidget

cocos2d::ui::Widget* UIFocusTestBase::_firstFocusedWidget
protected

◆ _toggleButton

cocos2d::ui::Button* UIFocusTestBase::_toggleButton
protected

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