zfoverride
 virtual void layoutOnLayout(ZF_IN const ZFUIRect &bounds)
 {
     zfsuper::layoutOnLayout(bounds);
     if(bounds.size.height >= bounds.size.width)
     {
         this->imageViewSmall()->layout(ZFUIRectApplyMargin(
             ZFUIRectMake(0, 0, bounds.size.width, bounds.size.height / 2),
             ZFUIMarginMake(5)));
         this->imageViewLarge()->layout(ZFUIRectApplyMargin(
             ZFUIRectMake(0, bounds.size.height / 2, bounds.size.width, bounds.size.height / 2),
             ZFUIMarginMake(5)));
     }
     else
     {
         this->imageViewSmall()->layout(ZFUIRectMake(0, 0, bounds.size.width, bounds.size.height / 2));
         this->imageViewLarge()->layout(ZFUIRectMake(bounds.size.width / 2, 0, bounds.size.width, bounds.size.height / 2));
     }
 }
    void prepareSettingButton(ZF_IN ZFUIWindow *window,
                              ZF_IN ZFUILinearLayout *layout)
    {
        zfblockedAlloc(ZFArrayEditable, settings);

        ZFUIKit_test_prepareSettingForLayoutRequest(settings, layout);

        ZFUIKit_test_prepareSettingForNormalProperty(settings, layout, ZFUIOrientationEnum, ZFPropertyAccess(ZFUILinearLayout, layoutOrientation),
            ZFCoreArrayPODCreate(ZFUIOrientationEnum
                , ZFUIOrientation::e_Right
                , ZFUIOrientation::e_Bottom
                , ZFUIOrientation::e_Left
                , ZFUIOrientation::e_Top
                ));

        ZFUIKit_test_prepareSettingForNormalProperty(settings, layout, ZFUIMargin, ZFPropertyAccess(ZFUILinearLayout, layoutChildMargin),
            ZFCoreArrayPODCreate(ZFUIMargin
                , ZFUIMarginZero
                , ZFUIMarginMake(8)
                , ZFUIMarginMake(12)
                , ZFUIMarginMake(24)
                ));

        ZFUIKit_test_prepareSettingForNormalProperty(settings, layout, zfint, ZFPropertyAccess(ZFUILinearLayout, layoutChildSpace),
            ZFCoreArrayPODCreate(zfint
                , 0
                , 8
                , 12
                , 24
                ));

        ZFUIKit_test_prepareSettingForNormalProperty(settings, layout->layoutParam(), ZFUISizeParam, ZFPropertyAccess(ZFUIViewLayoutParam, sizeParam),
            ZFCoreArrayPODCreate(ZFUISizeParam
                , ZFUISizeParamWrapWidthWrapHeight
                , ZFUISizeParamFillWidthWrapHeight
                , ZFUISizeParamWrapWidthFillHeight
                , ZFUISizeParamFillWidthFillHeight
                ));

        ZFUIKit_test_prepareSettingButtonWithTestWindow(window, settings);
    }
ZFUIMargin ZFImpl_sys_Android_ZFUIMarginFromZFAndroidMargin(ZF_IN jobject jobjMargin)
{
    JNIEnv *jniEnv = JNIGetJNIEnv();
    jclass jclsMargin = ZFImpl_sys_Android_jclassZFAndroidMargin();
    static jfieldID jfIdLeft = JNIUtilGetFieldID(jniEnv, jclsMargin, zfTextA("left"), JNIType::S_int.getId());
    static jfieldID jfIdTop = JNIUtilGetFieldID(jniEnv, jclsMargin, zfTextA("top"), JNIType::S_int.getId());
    static jfieldID jfIdRight = JNIUtilGetFieldID(jniEnv, jclsMargin, zfTextA("right"), JNIType::S_int.getId());
    static jfieldID jfIdBottom = JNIUtilGetFieldID(jniEnv, jclsMargin, zfTextA("bottom"), JNIType::S_int.getId());
    zfint x = JNIUtilGetIntField(jniEnv, jobjMargin, jfIdLeft);
    zfint y = JNIUtilGetIntField(jniEnv, jobjMargin, jfIdTop);
    return ZFUIMarginMake(
        JNIUtilGetIntField(jniEnv, jobjMargin, jfIdLeft),
        JNIUtilGetIntField(jniEnv, jobjMargin, jfIdTop),
        JNIUtilGetIntField(jniEnv, jobjMargin, jfIdRight),
        JNIUtilGetIntField(jniEnv, jobjMargin, jfIdBottom));
}