MCPcopy Create free account
hub / github.com/Open-GD/OpenGD / init

Method init

Source/BoomScrollLayer.cpp:108–167  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

106}
107
108bool BoomScrollLayer::init(std::vector<ax::Layer*> layers, int currentPage)
109{
110 if (!Layer::init()) return false;
111
112 _totalPages = layers.size();
113
114 currentPage = std::clamp(currentPage, 0, _totalPages);
115
116 _layers = layers;
117 _currentPage = currentPage;
118 _internalLayer = Layer::create();
119 _internalLayer->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
120 auto dir = Director::getInstance();
121 const auto& winSize = dir->getWinSize();
122 if (_internalLayer->getChildrenCount() < _totalPages)
123 {
124 int i = 0;
125 for (auto l : _layers)
126 {
127 if (!l) return false;
128 // l->setPositionX(winSize.width * i);
129 // _internalLayer->addChild(l);
130 l->retain();
131 i++;
132 }
133 }
134
135 _internalLayer->addChild(_layers[currentPage]);
136 _layers[currentPage]->setName("1");
137 _layers[currentPage]->release();
138
139 _leftPage = currentPage - 1 < 0 ? _layers.size() - 1 : currentPage - 1;
140 _internalLayer->addChild(_layers[_leftPage]);
141 _layers[_leftPage]->setPositionX(winSize.width * -1.f);
142 _layers[_leftPage]->release();
143
144 _rightPage = currentPage + 1 >= _layers.size() ? 0 : currentPage + 1;
145 _internalLayer->addChild(_layers[_rightPage]);
146 _layers[_rightPage]->setPositionX(winSize.width);
147 _layers[_rightPage]->release();
148
149 //selectPage(currentPage);
150
151 addChild(_internalLayer);
152
153 // auto listener = EventListenerTouchOneByOne::create();
154
155 // listener->setEnabled(true);
156 // listener->setSwallowTouches(true);
157
158 //trigger when you start touch
159
160 // listener->onTouchBegan = AX_CALLBACK_2(BoomScrollLayer::onTouchBegan, this);
161 // listener->onTouchEnded = AX_CALLBACK_2(BoomScrollLayer::onTouchEnded, this);
162 // listener->onTouchMoved = AX_CALLBACK_2(BoomScrollLayer::onTouchMoved, this);
163
164 // dir->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
165

Callers 1

createMethod · 0.45

Calls 2

createFunction · 0.85
sizeMethod · 0.80

Tested by

no test coverage detected