void SceneEditorScreenMain::OnSelectBody(BaseObject * owner, void * userData, void * callerData) { UIButton *btn = (UIButton *)owner; for(int32 i = 0; i < (int32)bodies.size(); ++i) { if(bodies[i]->bodyControl->GetParent()) { if(btn == bodies[i]->headerButton) { // click on selected body - nothing to do return; } if(libraryControl->GetParent()) { RemoveControl(libraryControl); bodies[i]->bodyControl->UpdateLibraryState(false, libraryControl->GetRect().dx); } RemoveControl(bodies[i]->bodyControl); bodies[i]->headerButton->SetSelected(false, false); } } AddControl(bodies[btn->GetTag()]->bodyControl); bodies[btn->GetTag()]->headerButton->SetSelected(true, false); if(libraryControl->GetParent()) { BringChildFront(libraryControl); } }
void SceneEditorScreenMain::OnCloseBody(BaseObject * owner, void * userData, void * callerData) { UIButton *btn = (UIButton *)owner; int32 tag = btn->GetTag(); bool needToSwitchBody = false; Vector<BodyItem*>::iterator it = bodies.begin(); for(int32 i = 0; i < (int32)bodies.size(); ++i, ++it) { if(btn == bodies[i]->closeButton) { if(bodies[i]->bodyControl->GetParent()) { RemoveControl(libraryControl); RemoveControl(bodies[i]->bodyControl); needToSwitchBody = true; } RemoveControl(bodies[i]->headerButton); SafeRelease(bodies[i]->headerButton); SafeRelease(bodies[i]->closeButton); SafeRelease(bodies[i]->bodyControl); SafeDelete(*it); bodies.erase(it); break; } } for(int32 i = 0; i < (int32)bodies.size(); ++i) { bodies[i]->headerButton->SetRect( Rect(TAB_BUTTONS_OFFSET + i * (ControlsFactory::BUTTON_WIDTH), BODY_Y_OFFSET - ControlsFactory::BUTTON_HEIGHT, ControlsFactory::BUTTON_WIDTH, ControlsFactory::BUTTON_HEIGHT)); bodies[i]->headerButton->SetTag(i); if(bodies[i]->closeButton) { bodies[i]->closeButton->SetTag(i); } bodies[i]->bodyControl->SetTag(i); } if(bodies.size()) { if(tag) { --tag; } //set as current bodies[tag]->headerButton->PerformEvent(UIControl::EVENT_TOUCH_UP_INSIDE); } }
void SceneEditorScreenMain::OnCloseBody(BaseObject * owner, void *, void *) { UIButton *btn = (UIButton *)owner; int32 tag = btn->GetTag(); Vector<BodyItem*>::iterator it = bodies.begin(); for(int32 i = 0; i < (int32)bodies.size(); ++i, ++it) { if(btn == bodies[i]->closeButton) { if(bodies[i]->bodyControl->GetParent()) { RemoveControl(bodies[i]->bodyControl); } RemoveControl(bodies[i]->headerButton); SceneDataManager::Instance()->ReleaseScene(bodies[i]->bodyControl->GetScene()); SafeRelease(bodies[i]->headerButton); SafeRelease(bodies[i]->closeButton); SafeRelease(bodies[i]->bodyControl); SafeDelete(*it); bodies.erase(it); break; } } for(int32 i = 0; i < (int32)bodies.size(); ++i) { bodies[i]->headerButton->SetRect(Rect(i * (ControlsFactory::BUTTON_WIDTH + 1), 0, ControlsFactory::BUTTON_WIDTH, ControlsFactory::BUTTON_HEIGHT)); bodies[i]->headerButton->SetTag(i); if(bodies[i]->closeButton) { bodies[i]->closeButton->SetTag(i); } bodies[i]->bodyControl->SetTag(i); } if(bodies.size()) { if(tag) { --tag; } //set as current ActivateBodyItem(bodies[tag], true); } }
void SceneEditorScreenMain::OnSelectBody(BaseObject * owner, void *, void *) { UIButton *btn = (UIButton *)owner; for(int32 i = 0; i < (int32)bodies.size(); ++i) { if(bodies[i]->bodyControl->GetParent()) { if(btn == bodies[i]->headerButton) { // click on selected body - nothing to do return; } RemoveControl(bodies[i]->bodyControl); bodies[i]->headerButton->SetSelected(false, false); } } ActivateBodyItem(bodies[btn->GetTag()], false); }