示例#1
0
        public static UICheckboxDropDown CreateCheckboxDropDown(UIComponent parent)
        {
            UICheckboxDropDown dropDown = parent.AddUIComponent <UICheckboxDropDown>();

            dropDown.atlas                = GetAtlas("Ingame");
            dropDown.size                 = new Vector2(120f, 30f);
            dropDown.listBackground       = "GenericPanelLight";
            dropDown.itemHeight           = 30;
            dropDown.itemHover            = "ListItemHover";
            dropDown.itemHighlight        = "ListItemHighlight";
            dropDown.normalBgSprite       = "ButtonMenu";
            dropDown.disabledBgSprite     = "ButtonMenuDisabled";
            dropDown.hoveredBgSprite      = "ButtonMenuHovered";
            dropDown.focusedBgSprite      = "ButtonMenu";
            dropDown.listWidth            = 120;
            dropDown.listHeight           = 350;
            dropDown.foregroundSpriteMode = UIForegroundSpriteMode.Stretch;
            dropDown.popupColor           = new Color32(45, 52, 61, 255);
            dropDown.popupTextColor       = new Color32(170, 170, 170, 255);
            dropDown.zOrder               = 1;
            dropDown.textScale            = 0.8f;
            dropDown.verticalAlignment    = UIVerticalAlignment.Middle;
            dropDown.horizontalAlignment  = UIHorizontalAlignment.Left;
            dropDown.textFieldPadding     = new RectOffset(8, 0, 8, 0);
            dropDown.itemPadding          = new RectOffset(14, 0, 8, 0);
            dropDown.uncheckedSprite      = "check-unchecked";
            dropDown.checkedSprite        = "check-checked";

            UIButton button = dropDown.AddUIComponent <UIButton>();

            dropDown.triggerButton         = button;
            button.atlas                   = GetAtlas("Ingame");
            button.text                    = "";
            button.size                    = dropDown.size;
            button.relativePosition        = new Vector3(0f, 0f);
            button.textVerticalAlignment   = UIVerticalAlignment.Middle;
            button.textHorizontalAlignment = UIHorizontalAlignment.Left;
            button.normalFgSprite          = "IconDownArrow";
            button.hoveredFgSprite         = "IconDownArrowHovered";
            button.pressedFgSprite         = "IconDownArrowPressed";
            button.focusedFgSprite         = "IconDownArrowFocused";
            button.disabledFgSprite        = "IconDownArrowDisabled";
            button.foregroundSpriteMode    = UIForegroundSpriteMode.Fill;
            button.horizontalAlignment     = UIHorizontalAlignment.Right;
            button.verticalAlignment       = UIVerticalAlignment.Middle;
            button.zOrder                  = 0;
            button.textScale               = 0.8f;

            dropDown.eventSizeChanged += new PropertyChangedEventHandler <Vector2>((c, t) =>
            {
                button.size = t; dropDown.listWidth = (int)t.x;
            });

            return(dropDown);
        }
        internal static void Init(UICheckboxDropDown dd)
        {
            try {
                LogCalled();
                dd.size = new Vector2(370, 22);
                dd.verticalAlignment    = UIVerticalAlignment.Middle;
                dd.horizontalAlignment  = UIHorizontalAlignment.Center;
                dd.builtinKeyNavigation = true;

                dd.atlas           = TextureUtil.InMapEditor;
                dd.normalBgSprite  = "TextFieldPanel";
                dd.uncheckedSprite = "check-unchecked";
                dd.checkedSprite   = "check-checked";

                dd.listBackground    = "GenericPanelWhite";
                dd.listWidth         = 188;
                dd.listHeight        = 900;
                dd.clampListToScreen = true;
                dd.listPosition      = UICheckboxDropDown.PopupListPosition.Automatic;

                dd.itemHeight    = 25;
                dd.itemHover     = "ListItemHover";
                dd.itemHighlight = "ListItemHighlight";

                dd.popupColor     = Color.black;
                dd.popupTextColor = Color.white;

                dd.triggerButton = dd.AddUIComponent <UIButton>();
                UIButton triggerBtn = dd.triggerButton as UIButton;
                triggerBtn.size = dd.size;
                triggerBtn.textVerticalAlignment   = UIVerticalAlignment.Middle;
                triggerBtn.textHorizontalAlignment = UIHorizontalAlignment.Left;
                triggerBtn.atlas                = TextureUtil.Ingame;
                triggerBtn.normalFgSprite       = "IconDownArrow";
                triggerBtn.hoveredFgSprite      = "IconDownArrowHovered";
                triggerBtn.pressedFgSprite      = "IconDownArrowPressed";
                triggerBtn.normalBgSprite       = "TextFieldPanel";
                triggerBtn.foregroundSpriteMode = UIForegroundSpriteMode.Scale;
                triggerBtn.horizontalAlignment  = UIHorizontalAlignment.Right;
                triggerBtn.verticalAlignment    = UIVerticalAlignment.Middle;
                triggerBtn.relativePosition     = new Vector3(0, 0);

                // Scrollbar
                dd.listScrollbar                 = dd.AddUIComponent <UIScrollbar>();
                dd.listScrollbar.width           = 12f;
                dd.listScrollbar.height          = dd.listHeight;
                dd.listScrollbar.orientation     = UIOrientation.Vertical;
                dd.listScrollbar.pivot           = UIPivotPoint.TopRight;
                dd.listScrollbar.thumbPadding    = new RectOffset(0, 0, 5, 5);
                dd.listScrollbar.minValue        = 0;
                dd.listScrollbar.value           = 0;
                dd.listScrollbar.incrementAmount = dd.listHeight / 10;
                dd.listScrollbar.AlignTo(dd, UIAlignAnchor.TopRight);
                dd.listScrollbar.autoHide  = true; // false ?
                dd.listScrollbar.isVisible = false;

                UISlicedSprite tracSprite = dd.listScrollbar.AddUIComponent <UISlicedSprite>();
                tracSprite.relativePosition = Vector2.zero;
                tracSprite.autoSize         = true;
                tracSprite.size             = tracSprite.parent.size;
                tracSprite.fillDirection    = UIFillDirection.Vertical;
                tracSprite.spriteName       = "ScrollbarTrack";

                dd.listScrollbar.trackObject = tracSprite;

                UISlicedSprite thumbSprite = tracSprite.AddUIComponent <UISlicedSprite>();
                thumbSprite.relativePosition = Vector2.zero;
                thumbSprite.fillDirection    = UIFillDirection.Vertical;
                thumbSprite.autoSize         = true;
                thumbSprite.width            = thumbSprite.parent.width - 8;
                thumbSprite.spriteName       = "ScrollbarThumb";
                dd.listScrollbar.thumbObject = thumbSprite;

                dd.eventDropdownOpen   += OnDropDownOpen;
                triggerBtn.buttonsMask |= UIMouseButton.Right;
                dd.eventMouseDown      += (_, p) => HandleMouseDown(dd, p);
            } catch (Exception ex) {
                Log.Exception(ex);
            }
        }