Exemplo n.º 1
0
        public KsmGuiToggleListElement(KsmGuiToggleList <T> parent, T toggleId, string text) : base(parent)
        {
            ToggleComponent            = TopObject.AddComponent <Toggle>();
            ToggleComponent.transition = Selectable.Transition.None;
            ToggleComponent.navigation = new Navigation()
            {
                mode = Navigation.Mode.None
            };
            ToggleComponent.isOn             = false;
            ToggleComponent.toggleTransition = Toggle.ToggleTransition.Fade;
            ToggleComponent.group            = parent.ToggleGroupComponent;

            this.parent = parent;
            parent.ChildToggles.Add(this);
            ToggleId = toggleId;
            ToggleComponent.onValueChanged.AddListener(NotifyParent);

            Image image = TopObject.AddComponent <Image>();

            image.color = KsmGuiStyle.boxColor;

            SetLayoutElement(false, false, -1, -1, -1, 14);

            KsmGuiVerticalLayout highlightImage = new KsmGuiVerticalLayout(this);
            Image bgImage = highlightImage.TopObject.AddComponent <Image>();

            bgImage.color           = KsmGuiStyle.selectedBoxColor;
            bgImage.raycastTarget   = false;
            ToggleComponent.graphic = bgImage;

            TextObject = new KsmGuiText(highlightImage, text);
            TextObject.SetLayoutElement(true);
        }
Exemplo n.º 2
0
        public KsmGuiButton
        (
            KsmGuiBase parent,
            string buttonText,
            UnityAction onClick,
            string tooltipText    = null,
            int width             = -1,
            int height            = 18,
            Texture2D iconTexture = null,
            int iconWidth         = 16,
            int iconHeight        = 16
        ) : base(parent, 2, 3, 3, 0, 0, TextAnchor.MiddleCenter)
        {
            // buttons are 18 px high and expand horizontaly in their container by default, but a fixed width can be defined in the ctor
            // in any case, SetLayoutElement can be called after to customise the button size.
            if (width <= 0)
            {
                SetLayoutElement(true, false, -1, height);
            }
            else
            {
                SetLayoutElement(false, false, width, height);
            }

            ImageComponent            = TopObject.AddComponent <Image>();
            ImageComponent.sprite     = Textures.KsmGuiSpriteBtnNormal;
            ImageComponent.type       = Image.Type.Sliced;
            ImageComponent.fillCenter = true;

            ButtonComponent             = TopObject.AddComponent <Button>();
            ButtonComponent.transition  = Selectable.Transition.SpriteSwap;
            ButtonComponent.spriteState = KsmGuiStyle.buttonSpriteSwap;
            ButtonComponent.navigation  = new Navigation()
            {
                mode = Navigation.Mode.None
            };                                                                                         // fix the transitions getting stuck

            SetButtonOnClick(onClick);

            SetIconTexture(iconTexture, iconWidth, iconHeight);

            TextObject = new KsmGuiText(this, buttonText, null, TextAlignmentOptions.Center);
            TextObject.SetLayoutElement(true);
            TextObject.TopTransform.SetParentFixScale(TopTransform);

            if (tooltipText != null)
            {
                SetTooltipText(tooltipText);
            }
        }
Exemplo n.º 3
0
        public KsmGuiHeader(KsmGuiBase parent, string title, Color backgroundColor = default, int textPreferredWidth = -1)
            : base(parent, 2, 0, 0, 0, 0, TextAnchor.UpperLeft)
        {
            // default : black background
            Image image = TopObject.AddComponent <Image>();

            if (backgroundColor == default)
            {
                image.color = Color.black;
            }
            else
            {
                image.color = backgroundColor;
            }


            TextObject = new KsmGuiText(this, title, null, TextAlignmentOptions.Center);
            TextObject.TextComponent.fontStyle = FontStyles.UpperCase;
            TextObject.SetLayoutElement(true, false, textPreferredWidth, -1, -1, 16);
        }