void Start()
 {
     parentHelper = NGUITools.FindInParents <FrameLayoutHelper>(gameObject);
     if (parentHelper != null)
     {
         if (parentHelper.FrameSize.x != 0)
         {
             LayoutFrame(parentHelper.FrameSize);
         }
     }
 }
Example #2
0
    public override void OnInspectorGUI()
    {
        helper = (FrameLayoutHelper)target;
        if (helper.bgSprite != null)
        {
            frameSize = helper.bgSprite.Dimensions;
        }
        else
        {
            base.OnInspectorGUI();
            return;
        }

        EditorGUILayout.BeginVertical();
        {
            base.OnInspectorGUI();
            if (frameSize.x == 0 || frameSize.y == 0)
            {
                frameSize = helper.bgSprite.Dimensions;
            }

            Vector2        fSize = EditorGUILayout.Vector2Field("FrameSize:", frameSize);
            UIWidget.Pivot p     = (UIWidget.Pivot)EditorGUILayout.EnumPopup("Frame Pivot:", pivot);
            if (fSize.x != frameSize.x || frameSize.y != fSize.y)
            {
                if (fSize.x > 1 && fSize.y > 1)
                {
                    helper.LayoutFrame(fSize);
                    frameSize = fSize;

                    FrameTitleLayoutHelper ftlHelper = helper.GetComponentInChildren <FrameTitleLayoutHelper>();
                    if (ftlHelper != null)
                    {
                        ftlHelper.LayoutFrame(fSize);
                    }
                }
            }

            if (p != pivot)
            {
                pivot = p;
                helper.PivotFrame(pivot, frameSize);
            }
        }
        EditorGUILayout.EndVertical();
    }
    //void Update()
    //{
    //    if (parentHelper != null)
    //    {
    //        if (parentHelper.FrameSize.x != 0)
    //        {
    //            LayoutFrame(parentHelper.FrameSize);
    //        }
    //    }
    //}

    public void LayoutFrame(Vector2 fSize)
    {
        if (parentHelper == null)
        {
            parentHelper = NGUITools.FindInParents <FrameLayoutHelper>(gameObject);
        }

        transform.localPosition = Vector3.zero;

        if (parentHelper == null)
        {
            return;
        }

        if (bgSprite != null)
        {
            bgSprite.Dimensions = new Vector2(fSize.x, bgSprite.Dimensions.y);
        }
        if (shadowGO != null)
        {
            shadowGO.transform.localPosition = new Vector3(fSize.x * 0.5f, -36f, 0f);
            UISprite[] childs = shadowGO.GetComponentsInChildren <UISprite>();
            foreach (UISprite child in childs)
            {
                child.Dimensions = new Vector2(fSize.x * 0.5f - 2, child.Dimensions.y);
            }
        }
        if (lineGO != null)
        {
            lineGO.transform.localPosition = new Vector3(fSize.x * 0.5f, 0, 0);
            UISprite[] childs = lineGO.GetComponentsInChildren <UISprite>();
            foreach (UISprite child in childs)
            {
                child.Dimensions = new Vector2(fSize.x * 0.5f * 0.7f, child.Dimensions.y);
            }
        }
    }