void linkInputLabels() { GraphicLayer* layer = GraphicLayer::sharedLayer(); CCArray* children = layer->getChildren(); if(children != NULL) { for(int i = 0 ; i < children->count(); i++) { RawObject* child = (RawObject*)children->objectAtIndex(i); //Force actualization of content size and fontSize after everything is loaded because the nodeToWorldTransform is only right after if(isKindOfClass(child, InputLabel)) { InputLabel* input = (InputLabel*)child; child->getNode()->setContentSize(child->getNode()->getContentSize()); if(input->getOriginalInfos() != NULL) { ((ui::EditBox*)child->getNode())->setFontSize(input->getOriginalInfos()->getFontSize()); } } if((isKindOfClass(child, InputLabel)) && child->getEventInfos()->objectForKey("LinkTo") != NULL && isKindOfClass(child->getEventInfos()->objectForKey("LinkTo"), CCString)) { InputLabel* input = (InputLabel*)child; if(input->getLinkTo() == NULL) { CCString* linkTo = (CCString*)child->getEventInfos()->objectForKey("LinkTo"); CCArray* matchs = layer->allObjectsWithName(linkTo); for(long j = 0; j < matchs->count(); j++) { RawObject* match = (RawObject*)matchs->objectAtIndex(j); if(isKindOfClass(match, LabelTTF)) { input->setLinkTo((LabelTTF*)match); j = matchs->count(); } } } } else if((isKindOfClass(child, DropDownList)) && child->getEventInfos()->objectForKey("LinkTo") != NULL && isKindOfClass(child->getEventInfos()->objectForKey("LinkTo"), CCString)) { DropDownList* dropDownList = (DropDownList*)child; if(dropDownList->getLinkTo() == NULL) { CCString* linkTo = (CCString*)child->getEventInfos()->objectForKey("LinkTo"); CCArray* matchs = layer->allObjectsWithName(linkTo); for(long j = 0; j < matchs->count(); j++) { RawObject* match = (RawObject*)matchs->objectAtIndex(j); if(isKindOfClass(match, LabelTTF)) { dropDownList->setLinkTo((LabelTTF*)match); j = matchs->count(); } } } } } } }
Image* Scene::getButtonAtPosition(Vec2 position, bool state) { Image* target = NULL; CCArray* objects = GraphicLayer::sharedLayer()->allVisibleObjectsAtPosition(position); for(int i = 0; i < objects->count() && target == NULL; i++) { RawObject* obj = (RawObject*)objects->objectAtIndex(i); if(obj->isVisible() && obj->getEventActivated() && !obj->getEventName().empty() && obj->getEventName()[0] != '\0' && dynamic_cast<Image*>(obj) != NULL) { //If state = false, the object imagefile must finish by "-on" and and have an _OriginalImageFile char *end = strrchr(((Image*)obj)->getImageFile().c_str(), '-'); if(state || (end && strcmp(end, "-on") == 0 && obj->getEventInfos()->objectForKey("_OriginalImageFile") != NULL)) target = (Image*)obj; } } return target; }