ZFPROPERTY_OVERRIDE_SETTER_DEFINE(ZFUILinearLayout, zfint, layoutChildSpace)
{
    zfbool changed = (this->layoutChildSpace() != newValue);
    zfsuperI(ZFUILinearLayoutStyle)::layoutChildSpaceSet(newValue);
    if(changed)
    {
        this->layoutRequest();
    }
}
ZFPROPERTY_OVERRIDE_SETTER_DEFINE(ZFUILinearLayout, ZFUIMargin, layoutChildMargin)
{
    zfbool changed = (this->layoutChildMargin() != newValue);
    zfsuperI(ZFUILinearLayoutStyle)::layoutChildMarginSet(newValue);
    if(changed)
    {
        this->layoutRequest();
    }
}
ZFPROPERTY_OVERRIDE_SETTER_DEFINE(ZFUILinearLayout, ZFUIOrientationEnum, layoutOrientation)
{
    zfbool changed = (this->layoutOrientation() != newValue);
    zfsuperI(ZFUILinearLayoutStyle)::layoutOrientationSet(newValue);
    if(changed)
    {
        this->layoutRequest();
    }
}
예제 #4
0
zfbool ZFEnum::serializableOnSerializeCategoryToData(ZF_IN_OUT ZFSerializableData &ownerData,
                                                     ZF_IN ZFSerializable *referencedOwnerOrNull,
                                                     ZF_OUT_OPT zfstring *outErrorHintToAppend /* = zfnull */)
{
    if(!zfsuperI(ZFSerializable)::serializableOnSerializeCategoryToData(ownerData, referencedOwnerOrNull, outErrorHintToAppend)) {return zffalse;}
    zfself *ref = ZFCastZFObject(zfself *, referencedOwnerOrNull);

    { // enum
        ZFSerializableData categoryData;
        categoryData.itemClassSet(ZFSerializableKeyword_node);
        categoryData.categorySet(ZFSerializableKeyword_ZFEnum_enum);
        categoryData.propertyValueSet(this->enumName());

        zfbool needAdd = zftrue;
        if(ref != zfnull)
        {
            if(ref->enumValue() == this->enumValue())
            {
                needAdd = zffalse;
            }
        }
        if(needAdd)
        {
            const ZFSerializableData *refInfo = this->serializableRefInfoGetForCategory(ZFSerializableKeyword_ZFEnum_enum);
            if(refInfo != zfnull)
            {
                ZFSerializableData tmpData;
                if(!refInfo->referenceLoadTo(tmpData, outErrorHintToAppend))
                {
                    return zffalse;
                }
                ZFSerializableUtil::resolveReferencedData(categoryData, *refInfo);
            }
            else if(this->enumValue() == ZFEnumValueInvalid)
            {
                needAdd = zffalse;
            }
        }
        if(needAdd)
        {
            ownerData.elementAdd(categoryData);
        }
    }
    return zftrue;
}
예제 #5
0
zfbool ZFEnum::serializableOnSerializeCategoryFromData(ZF_IN const ZFSerializableData &ownerData,
                                                       ZF_OUT_OPT zfstring *outErrorHintToAppend /* = zfnull */,
                                                       ZF_OUT_OPT const ZFSerializableData **outErrorPos /* = zfnull */)
{
    if(!zfsuperI(ZFSerializable)::serializableOnSerializeCategoryFromData(ownerData, outErrorHintToAppend, outErrorPos)) {return zffalse;}

    { // enum
        const ZFSerializableData *categoryData = ZFSerializableUtil::checkElementByCategory(ownerData, ZFSerializableKeyword_ZFEnum_enum);
        if(categoryData != zfnull)
        {
            ZFEnumValue enumValue = ZFEnumValueInvalid;
            const zfchar *propertyValue = categoryData->propertyValue();
            if(propertyValue != zfnull)
            {
                if(!zfscmpTheSame(propertyValue, ZFEnumValueNameInvalid))
                {
                    enumValue = this->enumValueForName(propertyValue);
                    if(enumValue == ZFEnumValueInvalid)
                    {
                        ZFSerializableUtil::errorOccurred(outErrorHintToAppend, outErrorPos, *categoryData,
                            zfText("invalid value %s for enum %s"), propertyValue, this->classData()->className());
                        return zffalse;
                    }
                }
            }
            this->enumValueSet(enumValue);

            categoryData->resolveMark();

            if(categoryData->referenceInfoExist())
            {
                this->serializableRefInfoSetForCategory(ZFSerializableKeyword_ZFEnum_enum, categoryData->referenceInfoCopy());
            }
        }
        else
        {
            this->enumValueSet(ZFEnumValueInvalid);
        }
    }
    return zftrue;
}