예제 #1
0
 public static string ToCssClass(this FlexAlignment alignment, FlexAlignmentScope scope, Breakpoint breakpoint)
 {
     return(alignment == FlexAlignment.None
         ? string.Empty
         : new CssClassBuilder("align")
            .Append(() => scope.GetCssClassPart())
            .Append(() => breakpoint.GetCssClassPart(), () => breakpoint != Breakpoint.None)
            .Append(() => alignment.GetCssClassPart())
            .Build());
 }
예제 #2
0
    void Start()
    {
        rt           = GetComponent <RectTransform>();
        rt.anchorMin = Vector2.zero;
        rt.anchorMax = Vector2.one;
        if (!isListeningToSceneChanges)
        {
            SceneManager.activeSceneChanged += (replaces, active) => { IdsBaked = false; };
            isListeningToSceneChanges        = true;
        }

        BakeIds();

        var k = prefsKey;

        if (PlayerPrefs.HasKey(k))
        {
            var d = JsonUtility.FromJson <Data>(PlayerPrefs.GetString(k));
            if (changeableWidth && d.widthCoef < minWidth)
            {
                d.widthCoef = minWidth;
            }
            if ((d.alignment & allowedAlignmens) == 0)
            {
                d.alignment = NextAllowedAlignment();
            }
            d.heightCoef = Mathf.Max(d.heightCoef, data.heightCoef);
            if (!allowHide)
            {
                d.hidden = false;
            }
            data = d;
        }

        Align();

        if (allowHide)
        {
            trayButton = Instantiate(buttonPrefab).GetComponent <Button>();
            trayButton.GetComponentInChildren <Text>().text = "Show " + Options.NicifyOptionName(gameObject.name);

            trayButton.onClick.AddListener(() =>
            {
                gameObject.SetActive(true);
                trayButton.gameObject.SetActive(false);
                data.hidden = false;
            });

            hideButton = Instantiate(buttonPrefab).GetComponent <Button>();
            hideButton.GetComponentInChildren <Text>().text = "Hide";
            hideButton.onClick.AddListener(() =>
            {
                trayButton.gameObject.SetActive(true);
                gameObject.SetActive(false);
                data.hidden = true;
            });

            trayButton.transform.SetParent(trayButtonsParent);
            hideButton.transform.SetParent(controlsParent ?? transform);

            if (data.hidden)
            {
                hideButton.onClick.Invoke();
            }
            else
            {
                trayButton.gameObject.SetActive(false);
            }
            LayoutRebuilder.ForceRebuildLayoutImmediate(trayButtonsParent as RectTransform);
        }
        if (allowedAlignmens != 0 && allowedAlignmens != data.alignment)
        {
            switchAlignmenButton        = Instantiate(buttonPrefab).GetComponent <Button>();
            switchAlignmentCaption      = switchAlignmenButton.GetComponentInChildren <Text>();
            switchAlignmentCaption.text = "Align >";
            switchAlignmenButton.transform.SetParent(controlsParent ?? transform);
            switchAlignmenButton.onClick.AddListener(() =>
            {
                var a = NextAllowedAlignment();
                if (a == FlexAlignment.right)
                {
                    switchAlignmentCaption.text = "Align <";
                }
                else
                {
                    switchAlignmentCaption.text = "Align >";
                }
                alignment = a;
            });
        }
        if (changeableWidth)
        {
            widthSlider          = Instantiate(widthSliderPrefab).GetComponent <Slider>();
            widthSlider.minValue = minWidth;
            widthSlider.maxValue = maxWidth;
            widthSlider.value    = data.widthCoef;
            widthSlider.onValueChanged.AddListener((v) =>
            {
                data.widthCoef = v;
                if (applyWidthCanges == null)
                {
                    applyWidthCanges = StartCoroutine(DelayActionWhile(Align, () =>
                    {
                        if (Input.GetMouseButton(0))
                        {
                            return(true);
                        }
                        else
                        {
                            applyWidthCanges = null;
                            return(false);
                        }
                    }));
                }
            });
            widthSlider.transform.SetParent(controlsParent ?? transform);
            LayoutRebuilder.ForceRebuildLayoutImmediate((controlsParent ?? transform) as RectTransform);
        }
    }
 public void ToCssClassSucceeds(FlexAlignment alignment, FlexAlignmentScope scope, Breakpoint breakpoint, string expected)
 {
     alignment.ToCssClass(scope, breakpoint).Should().Be(expected);
 }