// Called when an element is destroyed.
void RocketAnimationPlugin::OnElementDestroy(Rocket::Core::Element* element) {
	BasicAnimationTracker *ad = GetElementData(element);
	if (ad != NULL) {
		m_animations.remove(ad);
		delete ad;
	}
}
void RocketAnimationPlugin::AnimateElement(Rocket::Core::Element *element, AnimationType type, float duration, BasicAnimationActuator *actuator) {
	BasicAnimationTracker *animation = GetElementData(element);
	if (animation == NULL && !element->IsClassSet("noanim")) {
		animation = new BasicAnimationTracker(element, type, duration, actuator);
		SetElementData(element, animation);
		m_animations.push_back(animation);
	}
}
void RocketAnimationPlugin::CancelAnimation(Rocket::Core::Element *element, bool reset) {
	BasicAnimationTracker *animation = GetElementData(element);
	if (animation != NULL) {
		if (reset) {
			animation->Reset();
		}
		m_animations.remove(animation);
		delete animation;
		SetElementData(element, NULL);
	}
}
bool RocketAnimationPlugin::HasAnimation(Rocket::Core::Element *element) {
	return GetElementData(element) != NULL;
}
Beispiel #5
0
CoreVariable* CSettings::LoadSetting(PCoreString Name)
{
    CoreVariable *Var = GetCoreVariable(Name);
    if (Var == NULL)
        return NULL;

    std::vector<std::string> RawData;
    LoadRawData(&RawData);

    for (int i = 0; i < (int)RawData.size(); ++i)
    {
        std::string VarName = GetElementData("Name", RawData[i]);

        if (strstr(VarName.c_str(), Name))
        {
            eCoreVariableType VarType = GetElementDataType((PCoreString)GetElementData("Type", RawData[i]).c_str());
            std::string VarValue = GetElementData("Value", RawData[i]);

            if (VarType == eCoreVariableType::VAR_UNKNOWN)
                continue;

            if (VarType == eCoreVariableType::VAR_INTEGER || VarType == eCoreVariableType::VAR_BOOL)
            {
                if (VarValue.find_first_not_of("0123456789") != EOF)
                    *(PINT)Var->Variable = Var->iDefault;
                else
                    *(PINT)Var->Variable = atoi(VarValue.c_str());
            }

            if (VarType == eCoreVariableType::VAR_FLOAT || VarType == eCoreVariableType::VAR_DOUBLE)
            {
                if (VarValue.find_first_not_of("1234567890.") != EOF)
                {
                    if (VarType == eCoreVariableType::VAR_FLOAT) *(PFLOAT)Var->Variable = Var->fDefault;
                    if (VarType == eCoreVariableType::VAR_DOUBLE) *(PDOUBLE)Var->Variable = Var->dDefault;
                }
                else
                {
                    if (VarType == eCoreVariableType::VAR_FLOAT) *(PFLOAT)Var->Variable = (float)atof(VarValue.c_str());
                    if (VarType == eCoreVariableType::VAR_DOUBLE) *(PDOUBLE)Var->Variable = atof(VarValue.c_str());
                }
            }

            if (VarType == eCoreVariableType::VAR_STRING) strcpy_s((PCoreString)Var->Variable, VarValue.size() + 1, VarValue.c_str());

            if (VarType == eCoreVariableType::VAR_COLOR)
            {
                COLOR32* Color = (COLOR32*)Var->Variable;
                bool Red = VarName.find("Red") != EOF;
                bool Green = VarName.find("Green") != EOF;
                bool Blue = VarName.find("Blue") != EOF;
                bool Alpha = VarName.find("Alpha") != EOF;

                if (VarValue.find_first_not_of("0123456789") != EOF)
                {
                    if (Red) Color->r = Var->clrDefault.r;
                    if (Green) Color->g = Var->clrDefault.g;
                    if (Blue) Color->b = Var->clrDefault.b;
                    if (Alpha) Color->a = Var->clrDefault.a;
                }
                else
                {
                    if (Red) Color->r = atoi(VarValue.c_str());
                    if (Green) Color->g = atoi(VarValue.c_str());
                    if (Blue) Color->b = atoi(VarValue.c_str());
                    if (Alpha) Color->a = atoi(VarValue.c_str());

                }
            }

            BoundVariable(Var);
        }
    }

    return Var;
}