| 308 | } |
| 309 | |
| 310 | void ModuleContainer::TakeModule(IDrawableModule* module) |
| 311 | { |
| 312 | assert(module->GetOwningContainer()); //module must already be in a container |
| 313 | ofVec2f oldOwnerPos = module->GetOwningContainer()->GetOwnerPosition(); |
| 314 | if (module->GetOwningContainer()->mOwner) |
| 315 | module->GetOwningContainer()->mOwner->RemoveChild(module); |
| 316 | RemoveFromVector(module, module->GetOwningContainer()->mModules); |
| 317 | |
| 318 | std::string newName = GetUniqueName(module->Name(), mModules); |
| 319 | |
| 320 | mModules.push_back(module); |
| 321 | MoveToFront(module); |
| 322 | |
| 323 | ofVec2f offset = oldOwnerPos - GetOwnerPosition(); |
| 324 | module->SetPosition(module->GetPosition(true).x + offset.x, |
| 325 | module->GetPosition(true).y + offset.y); |
| 326 | module->SetOwningContainer(this); |
| 327 | if (mOwner) |
| 328 | mOwner->AddChild(module); |
| 329 | else //root modulecontainer |
| 330 | module->SetName(newName.c_str()); |
| 331 | } |
| 332 | |
| 333 | void ModuleContainer::DeleteModule(IDrawableModule* module, bool fail /*= true*/) |
| 334 | { |
no test coverage detected