PuzzleSDK
UIListViewTest_Padding类 参考abstract

#include <UIListViewTest.h>

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

Protected 成员函数

virtual bool init () override
 
virtual cocos2d::ui::ScrollView::Direction getListViewDirection () const =0
 
void sliderEvent (cocos2d::Ref *pSender, cocos2d::ui::Slider::EventType type)
 

Protected 属性

cocos2d::ui::ListView * _listView
 
cocos2d::ui::Text * _titleLabel
 
cocos2d::ui::Text * _indexLabels [5]
 
cocos2d::ui::Text * _paddingLabels [4]
 
- 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 成员函数 继承自 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
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 

详细描述

在文件 UIListViewTest.h191 行定义.

成员函数说明

◆ getListViewDirection()

virtual cocos2d::ui::ScrollView::Direction UIListViewTest_Padding::getListViewDirection ( ) const
protectedpure virtual

UIListViewTest_PaddingVertical , 以及 UIListViewTest_PaddingHorizontal 内被实现.

被这些函数引用 init().

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

◆ init()

bool UIListViewTest_Padding::init ( )
overrideprotectedvirtual

重载 UIScene .

在文件 UIListViewTest.cpp887 行定义.

888{
889 if(!UIScene::init())
890 {
891 return false;
892 }
893
894 Size layerSize = _uiLayer->getContentSize();
895
896 _titleLabel = Text::create("Set Padding", "fonts/Marker Felt.ttf", 32);
897 _titleLabel->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
898 _titleLabel->setPosition(Vec2(layerSize / 2) + Vec2(0.0f, _titleLabel->getContentSize().height * 3.15f));
899 _uiLayer->addChild(_titleLabel, 3);
900
901 // Create the list view
902 _listView = ListView::create();
903 _listView->setDirection(getListViewDirection());
904 _listView->setBounceEnabled(true);
905 _listView->setBackGroundImage("cocosui/green_edit.png");
906 _listView->setBackGroundImageScale9Enabled(true);
907 _listView->setContentSize(layerSize / 2);
908 _listView->setScrollBarPositionFromCorner(Vec2(7, 7));
909 _listView->setItemsMargin(2.0f);
910 _listView->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
911 _listView->setGravity(ListView::Gravity::TOP);
912 _listView->setPosition(layerSize / 2);
913 _uiLayer->addChild(_listView);
914
915
916 // Guide line for center align
917 {
918 DrawNode* pNode = DrawNode::create();
919 Vec2 center = layerSize / 2;
920 if(getListViewDirection() == ScrollView::Direction::HORIZONTAL)
921 {
922 float halfY = 110;
923 pNode->drawLine(Vec2(center.x, center.y - halfY), Vec2(center.x, center.y + halfY), Color4F(0, 0, 0, 1));
924 }
925 else
926 {
927 float halfX = 150;
928 pNode->drawLine(Vec2(center.x - halfX, center.y), Vec2(center.x + halfX, center.y), Color4F(0, 0, 0, 1));
929 }
930 pNode->setLineWidth(2);
931 _uiLayer->addChild(pNode);
932 }
933
934 // Slider for setting padding
935 {
936 auto title = Text::create("Padding", "fonts/Marker Felt.ttf", 14);
937 title->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
938 title->setPosition(Vec2(30.0f, 170.0f));
939 _uiLayer->addChild(title);
940 for (int i = 0; i < 4; ++i)
941 {
942 auto slider = Slider::create();
943 slider->loadBarTexture("cocosui/sliderTrack.png");
944 slider->loadSlidBallTextures("cocosui/sliderThumb.png", "cocosui/sliderThumb.png", "");
945 slider->loadProgressBarTexture("cocosui/sliderProgress.png");
946 slider->setScale9Enabled(true);
947 slider->setCapInsets(Rect(0.0f, 0.0f, 0.0f, 0.0f));
948 slider->setContentSize(Size(30.0f, 10.0f));
949 slider->setPosition(Vec2(60.0f, 150.0f - (25 * i)));
950 slider->addEventListener(CC_CALLBACK_2(UIListViewTest_Padding::sliderEvent, this));
951 slider->setTag(i);
952 _uiLayer->addChild(slider);
953
954 std::string str;
955 if (i == 0) str = "Left";
956 else if (i == 1) str = "Top";
957 else if (i == 2) str = "Right";
958 else if (i == 3) str = "Bottom";
959
960 // Show title of slider
961 {
962 auto text = Text::create(str, "fonts/Marker Felt.ttf", 12);
963 text->setAnchorPoint(Vec2::ANCHOR_MIDDLE_LEFT);
964 text->setPosition(Vec2(3, 150 - (25 * i)));
965 _uiLayer->addChild(text);
966 }
967 // Show value of paddings
968 {
969 auto text = Text::create(str + "\nPadding=0", "fonts/Marker Felt.ttf", 12);
970 text->setAnchorPoint(Vec2::ANCHOR_MIDDLE_LEFT);
971 text->setPosition(Vec2(layerSize.width - 65, 200.0f - (40 * i)));
972 _uiLayer->addChild(text);
973
974 _paddingLabels[i] = text;
975 }
976 }
977 }
978
979 // Show the indexes of items on each boundary.
980 {
981 for(int i = 0; i < 5; ++i)
982 {
983 _indexLabels[i] = Text::create(" ", "fonts/Marker Felt.ttf", 12);
984 _indexLabels[i]->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
985 _uiLayer->addChild(_indexLabels[i]);
986 }
987 float deltaX = 145, deltaY = 90;
988 _indexLabels[0]->setPosition(_uiLayer->getContentSize() / 2 + Size(-deltaX, 0.0f)); // left
989 _indexLabels[1]->setPosition(_uiLayer->getContentSize() / 2 + Size(deltaX, 0.0f)); // right
990 _indexLabels[2]->setPosition(_uiLayer->getContentSize() / 2 + Size(0.0f, deltaY)); // top
991 _indexLabels[3]->setPosition(_uiLayer->getContentSize() / 2 + Size(0.0f, -deltaY)); // bottom
992 _indexLabels[4]->setPosition(_uiLayer->getContentSize() / 2 + Size(deltaX, deltaY)); // center
993
994 // Callback
995 _listView->ScrollView::addEventListener([this](Ref* ref, ScrollView::EventType eventType) {
996 ListView* listView = dynamic_cast<ListView*>(ref);
997 if(listView == nullptr || eventType != ScrollView::EventType::CONTAINER_MOVED)
998 {
999 return;
1000 }
1001 auto left = listView->getLeftmostItemInCurrentView();
1002 auto right = listView->getRightmostItemInCurrentView();
1003 auto top = listView->getTopmostItemInCurrentView();
1004 auto bottom = listView->getBottommostItemInCurrentView();
1005 auto center = listView->getCenterItemInCurrentView();
1006
1007 _indexLabels[0]->setString(StringUtils::format("Left\nindex=%zd", listView->getIndex(left)));
1008 _indexLabels[1]->setString(StringUtils::format("RIght\nindex=%zd", listView->getIndex(right)));
1009 _indexLabels[2]->setString(StringUtils::format("Top index=%zd", listView->getIndex(top)));
1010 _indexLabels[3]->setString(StringUtils::format("Bottom index=%zd", listView->getIndex(bottom)));
1011 _indexLabels[4]->setString(StringUtils::format("Center\nindex=%zd", listView->getIndex(center)));
1012 });
1013 }
1014
1015 // Add list items
1016 static const Size BUTTON_SIZE(100, 70);
1017 for (int i = 0; i < 40; ++i)
1018 {
1019 auto pButton = Button::create("cocosui/button.png", "cocosui/buttonHighlighted.png");
1020 pButton->setContentSize(BUTTON_SIZE);
1021 pButton->setScale9Enabled(true);
1022 pButton->setTitleText(StringUtils::format("Button-%d", i));
1023 _listView->pushBackCustomItem(pButton);
1024 }
1025 return true;
1026}
virtual std::string title() const
Definition: BaseTest.h:59
cocos2d::ui::Text * _titleLabel
cocos2d::ui::Text * _indexLabels[5]
void sliderEvent(cocos2d::Ref *pSender, cocos2d::ui::Slider::EventType type)
cocos2d::ui::ListView * _listView
virtual cocos2d::ui::ScrollView::Direction getListViewDirection() const =0
cocos2d::ui::Text * _paddingLabels[4]
cocos2d::Layer * _uiLayer
Definition: UIScene.h:44
virtual bool init() override
Definition: UIScene.cpp:46

引用了 _indexLabels, _listView, _paddingLabels, _titleLabel, UIScene::_uiLayer, getListViewDirection(), UIScene::init(), sliderEvent() , 以及 TestCase::title().

+ 函数调用图:

◆ sliderEvent()

void UIListViewTest_Padding::sliderEvent ( cocos2d::Ref *  pSender,
cocos2d::ui::Slider::EventType  type 
)
protected

在文件 UIListViewTest.cpp1028 行定义.

1029{
1030 if (type == Slider::EventType::ON_PERCENTAGE_CHANGED)
1031 {
1032 auto slider = dynamic_cast<Slider*>(pSender);
1033 // left
1034 if (slider && slider->getTag() == 0)
1035 {
1036 int left = slider->getPercent() / 100.f * 50.f;
1037 CCLOG("Left Padding: %d", left);
1038 _listView->setLeftPadding(left);
1039 _paddingLabels[0]->setString(StringUtils::format("Left\nPadding=%d", left));
1040 }
1041 // top
1042 if (slider && slider->getTag() == 1)
1043 {
1044 int top = slider->getPercent() / 100.f * 50.f;
1045 CCLOG("Top Padding: %d", top);
1046 _listView->setTopPadding(top);
1047 _paddingLabels[1]->setString(StringUtils::format("Top\nPadding=%d", top));
1048 }
1049 // right
1050 if (slider && slider->getTag() == 2)
1051 {
1052 int right = slider->getPercent() / 100.f * 50.f;
1053 CCLOG("Right Padding: %d", right);
1054 _listView->setRightPadding(right);
1055 _paddingLabels[2]->setString(StringUtils::format("Right\nPadding=%d", right));
1056 }
1057 // bottom
1058 if (slider && slider->getTag() == 3)
1059 {
1060 int bottom = slider->getPercent() / 100.f * 50.f;
1061 CCLOG("Bottom Padding: %d", bottom);
1062 _listView->setBottomPadding(bottom);
1063 _paddingLabels[3]->setString(StringUtils::format("Bottom\nPadding=%d", bottom));
1064 }
1065 }
1066}

引用了 _listView , 以及 _paddingLabels.

被这些函数引用 init().

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

类成员变量说明

◆ _indexLabels

cocos2d::ui::Text* UIListViewTest_Padding::_indexLabels[5]
protected

在文件 UIListViewTest.h201 行定义.

被这些函数引用 init().

◆ _listView

cocos2d::ui::ListView* UIListViewTest_Padding::_listView
protected

在文件 UIListViewTest.h199 行定义.

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

◆ _paddingLabels

cocos2d::ui::Text* UIListViewTest_Padding::_paddingLabels[4]
protected

在文件 UIListViewTest.h202 行定义.

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

◆ _titleLabel

cocos2d::ui::Text* UIListViewTest_Padding::_titleLabel
protected

在文件 UIListViewTest.h200 行定义.

被这些函数引用 init().


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