@@ -35,6 +35,28 @@ bool checkbox(const char* text, T* ptr, bool(T::* get)() const, R(T::* set)(bool
3535}
3636
3737void DevTools::drawNodeAttributes (CCNode* node) {
38+ drawBasicAttributes (node);
39+ drawColorAttributes (node);
40+ drawLabelAttributes (node);
41+ drawAxisGapAttribute (node);
42+
43+ ImGui::NewLine ();
44+ ImGui::Separator ();
45+ ImGui::NewLine ();
46+
47+ drawTextureAttributes (node);
48+ drawMenuItemAttributes (node);
49+
50+ drawLayoutOptionsAttributes (node);
51+
52+ ImGui::NewLine ();
53+ ImGui::Separator ();
54+ ImGui::NewLine ();
55+
56+ drawLayoutAttributes (node);
57+ }
58+
59+ void DevTools::drawBasicAttributes (CCNode* node) {
3860 if (ImGui::Button (" Deselect" )) {
3961 return this ->selectNode (nullptr );
4062 }
@@ -138,7 +160,9 @@ void DevTools::drawNodeAttributes(CCNode* node) {
138160 &CCNode::isIgnoreAnchorPointForPosition,
139161 &CCNode::ignoreAnchorPointForPosition
140162 );
141-
163+ }
164+
165+ void DevTools::drawColorAttributes (CCNode* node) {
142166 if (auto rgbaNode = typeinfo_cast<CCRGBAProtocol*>(node)) {
143167
144168 if (auto gradient = typeinfo_cast<CCLayerGradient*>(node)) {
@@ -194,14 +218,18 @@ void DevTools::drawNodeAttributes(CCNode* node) {
194218 ImGui::SameLine ();
195219 checkbox (" Cascade Opacity" , rgbaNode, &CCRGBAProtocol::isCascadeOpacityEnabled, &CCRGBAProtocol::setCascadeOpacityEnabled);
196220 }
221+ }
197222
223+ void DevTools::drawLabelAttributes (CCNode* node) {
198224 if (auto labelNode = typeinfo_cast<CCLabelProtocol*>(node)) {
199225 std::string str = labelNode->getString ();
200226 if (ImGui::InputText (" Text" , &str, 256 )) {
201227 labelNode->setString (str.c_str ());
202228 }
203229 }
204-
230+ }
231+
232+ void DevTools::drawAxisGapAttribute (CCNode* node) {
205233 if (auto gap = typeinfo_cast<AxisGap*>(node)){
206234 float axisGap = gap->getGap ();
207235 if (ImGui::DragFloat (" Axis Gap" , &axisGap)) {
@@ -211,11 +239,9 @@ void DevTools::drawNodeAttributes(CCNode* node) {
211239 }
212240 }
213241 }
242+ }
214243
215- ImGui::NewLine ();
216- ImGui::Separator ();
217- ImGui::NewLine ();
218-
244+ void DevTools::drawTextureAttributes (CCNode* node) {
219245 if (auto textureProtocol = typeinfo_cast<CCTextureProtocol*>(node)) {
220246 if (auto texture = textureProtocol->getTexture ()) {
221247 if (auto spriteNode = typeinfo_cast<CCSprite*>(node)) {
@@ -268,7 +294,9 @@ void DevTools::drawNodeAttributes(CCNode* node) {
268294 ImGui::Separator ();
269295 ImGui::NewLine ();
270296 }
271-
297+ }
298+
299+ void DevTools::drawMenuItemAttributes (CCNode* node) {
272300 if (auto menuItemNode = typeinfo_cast<CCMenuItem*>(node)) {
273301 const auto selector = menuItemNode->m_pfnSelector ;
274302 if (!selector) {
@@ -311,7 +339,9 @@ void DevTools::drawNodeAttributes(CCNode* node) {
311339 ImGui::Separator ();
312340 ImGui::NewLine ();
313341 }
342+ }
314343
344+ void DevTools::drawLayoutOptionsAttributes (CCNode* node) {
315345 if (auto rawOpts = node->getLayoutOptions ()) {
316346 ImGui::Text (" Layout options: %s" , typeid (*rawOpts).name ());
317347
@@ -323,6 +353,7 @@ void DevTools::drawNodeAttributes(CCNode* node) {
323353 ImGui::SameLine ();
324354 if (ImGui::Button (U8STR (FEATHER_TRASH_2 " Remove Layout Options" ))) {
325355 node->setLayoutOptions (nullptr );
356+ return ;
326357 }
327358 if (auto opts = typeinfo_cast<SimpleAxisLayoutOptions*>(rawOpts)) {
328359 bool updateLayout = false ;
@@ -636,11 +667,9 @@ void DevTools::drawNodeAttributes(CCNode* node) {
636667 node->setLayoutOptions (AnchorLayoutOptions::create ());
637668 }
638669 }
670+ }
639671
640- ImGui::NewLine ();
641- ImGui::Separator ();
642- ImGui::NewLine ();
643-
672+ void DevTools::drawLayoutAttributes (CCNode* node){
644673 if (auto rawLayout = node->getLayout ()) {
645674 ImGui::Text (" Layout: %s" , typeid (*rawLayout).name ());
646675
@@ -650,6 +679,7 @@ void DevTools::drawNodeAttributes(CCNode* node) {
650679 ImGui::SameLine ();
651680 if (ImGui::Button (U8STR (FEATHER_TRASH_2 " Remove Layout" ))) {
652681 node->setLayout (nullptr );
682+ return ;
653683 }
654684 ImGui::SameLine ();
655685 if (ImGui::Button (U8STR (FEATHER_PLUS " Add Test Child" ))) {
0 commit comments