void EntityEditorPropertyView::handleEvent(Event *event) { if(event->getEventCode() == PropEvent::EVENT_PROP_CHANGE) { PropEvent *propEvent = (PropEvent*) event; PropEvent *newPropEvent = new PropEvent(propEvent->prop, propEvent->sheet, propEvent->beforeData, propEvent->afterData); dispatchEvent(newPropEvent, PropEvent::EVENT_PROP_CHANGE); } else { if(event->getDispatcher() == materialSheet) { if(targetEntity) { updateShaderOptions(); } } } }
void EntityEditorPropertyView::setEntity(Entity *entity) { targetEntity = entity; SceneLight *sceneLight = dynamic_cast<SceneLight*>(entity); lightSheet->setSceneLight(sceneLight); SceneMesh *sceneMesh = dynamic_cast<SceneMesh*>(entity); materialSheet->setSceneMesh(sceneMesh); updateShaderOptions(); SceneLabel *sceneLabel = dynamic_cast<SceneLabel*>(entity); labelSheet->setSceneLabel(sceneLabel); SceneCurve *sceneCurve = dynamic_cast<SceneCurve*>(entity); curveSheet->setCurve(sceneCurve); SceneSprite *sceneSprite = dynamic_cast<SceneSprite*>(entity); spriteSheet->setSprite(sceneSprite); ScenePrimitive *scenePrimitive = dynamic_cast<ScenePrimitive*>(entity); if(!sceneLabel && !sceneSprite) { primitiveSheet->setScenePrimitive(scenePrimitive); } else { primitiveSheet->setScenePrimitive(NULL); } sceneMeshSheet->setSceneMesh(sceneMesh); SceneSound *sound = dynamic_cast<SceneSound*>(entity); soundSheet->setSound(sound); Camera *camera = dynamic_cast<Camera*>(entity); cameraSheet->setCamera(camera); SceneParticleEmitter *emitter = dynamic_cast<SceneParticleEmitter*>(entity); particleSheet->setParticleEmitter(emitter); entitySheet->setEntity(entity); propSheet->setEntity(entity); transformSheet->setEntity(entity); Resize(getWidth(), getHeight()); }