/* ================== HUDLayer::LoadResources ================== */ void HUDLayer::LoadResources() { Pim::SpriteBatchNode *batch = new Pim::SpriteBatchNode("hudbutton.png"); AddChild(batch); Pim::Sprite *spr = new Pim::Sprite; spr->rect = Pim::Rect(0,0,40,100); spr->UseBatchNode(batch); buttonNext = new MyButton(spr,NULL,NULL,NULL); buttonNext->SetCallback((DemoScene*)GetParentScene()); buttonNext->position = Pim::Vec2(780,300); batch->AddChild(buttonNext); spr = new Pim::Sprite; spr->scale.x = -1; spr->rect = Pim::Rect(0,0,40,100); spr->UseBatchNode(batch); buttonPrev = new MyButton(spr, NULL, NULL, NULL); buttonPrev->SetCallback((DemoScene*)GetParentScene()); buttonPrev->position = Pim::Vec2(20,300); batch->AddChild(buttonPrev); }
void EC_DynamicComponent::RemoveAllAttributes(AttributeChange::Type change) { for(unsigned i = attributes_.size() - 1; i < attributes_.size(); --i) { // Trigger scenemanager signal Scene::SceneManager* scene = GetParentScene(); if (scene) scene->EmitAttributeRemoved(this, attributes_[i], change); QString name = QString::fromStdString(attributes_[i]->GetNameString()); // Trigger internal signal(s) emit AttributeAboutToBeRemoved(attributes_[i]); SAFE_DELETE(attributes_[i]); attributes_.erase(attributes_.begin() + i); emit AttributeRemoved(name); } }
void EC_DynamicComponent::RemoveAttribute(const QString &name, AttributeChange::Type change) { for(AttributeVector::iterator iter = attributes_.begin(); iter != attributes_.end(); iter++) { if((*iter)->GetNameString() == name.toStdString()) { // Trigger scenemanager signal Scene::SceneManager* scene = GetParentScene(); if (scene) scene->EmitAttributeRemoved(this, *iter, change); // Trigger internal signal(s) emit AttributeAboutToBeRemoved(*iter); SAFE_DELETE(*iter); attributes_.erase(iter); emit AttributeRemoved(name); break; } } }
IAttribute *EC_DynamicComponent::CreateAttribute(const QString &typeName, const QString &name, AttributeChange::Type change) { if(ContainsAttribute(name)) return IComponent::GetAttribute(name); IAttribute *attribute = framework_->GetComponentManager()->CreateAttribute(this, typeName.toStdString(), name.toStdString()); if(!attribute) { LogError("Failed to create new attribute:" + name + " in dynamic component:" + Name()); return 0; } // Trigger scenemanager signal Scene::SceneManager* scene = GetParentScene(); if (scene) scene->EmitAttributeAdded(this, attribute, change); // Trigger internal signal emit AttributeAdded(attribute); EmitAttributeChanged(attribute, change); return attribute; }