private static void AdjustVerticalScrollbar(UIScrollbar verticalScrollbar, UIComponent tabPanel, UIScrollablePanel scrollablePanel)
        {
            verticalScrollbar.width       = 20f;
            verticalScrollbar.height      = tabPanel.height;
            verticalScrollbar.orientation = UIOrientation.Vertical;
            verticalScrollbar.pivot       = UIPivotPoint.BottomLeft;
            verticalScrollbar.AlignTo(tabPanel, UIAlignAnchor.TopRight);
            verticalScrollbar.minValue        = 0;
            verticalScrollbar.value           = 0;
            verticalScrollbar.incrementAmount = 104;
            verticalScrollbar.autoHide        = true;

            UISlicedSprite trackSprite = (UISlicedSprite)verticalScrollbar.Find("trackSprite");

            trackSprite.relativePosition = Vector2.zero;
            trackSprite.autoSize         = true;
            trackSprite.size             = trackSprite.parent.size;
            trackSprite.fillDirection    = UIFillDirection.Vertical;
            trackSprite.spriteName       = ""; // "ScrollbarTrack";

            UISlicedSprite thumbSprite = (UISlicedSprite)verticalScrollbar.Find("thumbSprite");

            thumbSprite.relativePosition = Vector2.zero;
            thumbSprite.fillDirection    = UIFillDirection.Vertical;
            thumbSprite.autoSize         = true;
            thumbSprite.width            = thumbSprite.parent.width - 8;
            thumbSprite.spriteName       = "ScrollbarThumb";

            verticalScrollbar.thumbObject     = thumbSprite;
            scrollablePanel.verticalScrollbar = verticalScrollbar;
        }
        private void CreateScrollPanel()
        {
            TLMUtils.createUIElement(out m_scrollablePanel, m_mainPanel.transform);
            m_scrollablePanel.width  = m_mainPanel.width - 20f;
            m_scrollablePanel.height = m_mainPanel.height - 50f;
            m_scrollablePanel.autoLayoutDirection = LayoutDirection.Vertical;
            m_scrollablePanel.autoLayoutStart     = LayoutStart.TopLeft;
            m_scrollablePanel.autoLayoutPadding   = new RectOffset(0, 0, 0, 0);
            m_scrollablePanel.autoLayout          = true;
            m_scrollablePanel.clipChildren        = true;
            m_scrollablePanel.relativePosition    = new Vector3(5, 45);

            TLMUtils.createUIElement(out UIPanel trackballPanel, m_mainPanel.transform);
            trackballPanel.width  = 10f;
            trackballPanel.height = m_scrollablePanel.height;
            trackballPanel.autoLayoutDirection = LayoutDirection.Horizontal;
            trackballPanel.autoLayoutStart     = LayoutStart.TopLeft;
            trackballPanel.autoLayoutPadding   = new RectOffset(0, 0, 0, 0);
            trackballPanel.autoLayout          = true;
            trackballPanel.relativePosition    = new Vector3(m_mainPanel.width - 15, 45);


            TLMUtils.createUIElement(out m_scrollbar, trackballPanel.transform);
            m_scrollbar.width       = 10f;
            m_scrollbar.height      = m_scrollbar.parent.height;
            m_scrollbar.orientation = UIOrientation.Vertical;
            m_scrollbar.pivot       = UIPivotPoint.BottomLeft;
            m_scrollbar.AlignTo(trackballPanel, UIAlignAnchor.TopRight);
            m_scrollbar.minValue        = 0f;
            m_scrollbar.value           = 0f;
            m_scrollbar.incrementAmount = 25f;

            TLMUtils.createUIElement(out UISlicedSprite scrollBg, m_scrollbar.transform);
            scrollBg.relativePosition = Vector2.zero;
            scrollBg.autoSize         = true;
            scrollBg.size             = scrollBg.parent.size;
            scrollBg.fillDirection    = UIFillDirection.Vertical;
            scrollBg.spriteName       = "ScrollbarTrack";
            m_scrollbar.trackObject   = scrollBg;

            TLMUtils.createUIElement(out UISlicedSprite scrollFg, scrollBg.transform);
            scrollFg.relativePosition           = Vector2.zero;
            scrollFg.fillDirection              = UIFillDirection.Vertical;
            scrollFg.autoSize                   = true;
            scrollFg.width                      = scrollFg.parent.width - 4f;
            scrollFg.spriteName                 = "ScrollbarThumb";
            m_scrollbar.thumbObject             = scrollFg;
            m_scrollablePanel.verticalScrollbar = m_scrollbar;
            m_scrollablePanel.eventMouseWheel  += delegate(UIComponent component, UIMouseEventParameter param)
            {
                m_scrollablePanel.scrollPosition += new Vector2(0f, Mathf.Sign(param.wheelDelta) * -1f * m_scrollbar.incrementAmount);
            };
            m_scrollablePanel.eventMouseLeave += (x, y) =>
            {
                m_previewPanel.isVisible = false;
            };

            m_uiHelper = new UIHelperExtension(m_scrollablePanel);
        }
Beispiel #3
0
        public static UIHelperExtension CreateHorizontalScrollPanel(UIComponent parent, out UIScrollablePanel scrollablePanel, out UIScrollbar scrollbar, float width, float height, Vector3 relativePosition)
        {
            CreateUIElement(out scrollablePanel, parent?.transform);
            scrollablePanel.width  = width;
            scrollablePanel.height = height;
            scrollablePanel.autoLayoutDirection = LayoutDirection.Horizontal;
            scrollablePanel.wrapLayout          = false;
            scrollablePanel.autoLayoutStart     = LayoutStart.TopLeft;
            scrollablePanel.autoLayoutPadding   = new RectOffset(0, 0, 0, 0);
            scrollablePanel.autoLayout          = true;
            scrollablePanel.clipChildren        = true;
            scrollablePanel.relativePosition    = relativePosition;

            CreateUIElement(out UIPanel trackballPanel, parent?.transform);
            trackballPanel.height = 10f;
            trackballPanel.width  = scrollablePanel.width;
            trackballPanel.autoLayoutDirection = LayoutDirection.Horizontal;
            trackballPanel.autoLayoutStart     = LayoutStart.TopLeft;
            trackballPanel.autoLayoutPadding   = new RectOffset(0, 0, 0, 0);
            trackballPanel.autoLayout          = true;
            trackballPanel.relativePosition    = new Vector3(relativePosition.x, relativePosition.y + height + 5);


            CreateUIElement(out scrollbar, trackballPanel.transform);
            scrollbar.height      = 10f;
            scrollbar.width       = scrollbar.parent.width;
            scrollbar.orientation = UIOrientation.Horizontal;
            scrollbar.pivot       = UIPivotPoint.BottomLeft;
            scrollbar.AlignTo(trackballPanel, UIAlignAnchor.TopLeft);
            scrollbar.minValue        = 0f;
            scrollbar.value           = 0f;
            scrollbar.incrementAmount = 25f;

            CreateUIElement(out UISlicedSprite scrollBg, scrollbar.transform);
            scrollBg.relativePosition = Vector2.zero;
            scrollBg.autoSize         = true;
            scrollBg.size             = scrollBg.parent.size;
            scrollBg.fillDirection    = UIFillDirection.Horizontal;
            scrollBg.spriteName       = "ScrollbarTrack";
            scrollbar.trackObject     = scrollBg;

            CreateUIElement(out UISlicedSprite scrollFg, scrollBg.transform);
            scrollFg.relativePosition           = Vector2.zero;
            scrollFg.fillDirection              = UIFillDirection.Horizontal;
            scrollFg.autoSize                   = true;
            scrollFg.width                      = scrollFg.parent.width - 4f;
            scrollFg.spriteName                 = "ScrollbarThumb";
            scrollbar.thumbObject               = scrollFg;
            scrollablePanel.horizontalScrollbar = scrollbar;
            scrollablePanel.eventMouseWheel    += delegate(UIComponent component, UIMouseEventParameter param)
            {
                ((UIScrollablePanel)component).scrollPosition += new Vector2(Mathf.Sign(param.wheelDelta) * -1f * ((UIScrollablePanel)component).horizontalScrollbar.incrementAmount, 0);
            };

            return(new UIHelperExtension(scrollablePanel));
        }
Beispiel #4
0
        public override void Start()
        {
            base.Start();
            this.autoLayoutDirection     = LayoutDirection.Horizontal;
            this.autoLayoutStart         = LayoutStart.TopLeft;
            this.autoLayoutPadding       = new RectOffset(0, 0, 0, 0);
            this.autoLayout              = true;
            this._scrollablePanel        = this.AddUIComponent <UIScrollablePanel>();
            this._scrollablePanel.width  = this.width - 10f;
            this._scrollablePanel.height = this.height;
            this._scrollablePanel.autoLayoutDirection = LayoutDirection.Vertical;
            this._scrollablePanel.autoLayoutStart     = LayoutStart.TopLeft;
            this._scrollablePanel.autoLayoutPadding   = new RectOffset(0, 0, 0, 0);
            this._scrollablePanel.autoLayout          = true;
            this._scrollablePanel.clipChildren        = true;
            this._scrollablePanel.backgroundSprite    = "UnlockingPanel";
            this._scrollablePanel.color = (Color32)Color.black;
            UIPanel uiPanel = this.AddUIComponent <UIPanel>();

            uiPanel.width  = 10f;
            uiPanel.height = this.height;
            uiPanel.autoLayoutDirection = LayoutDirection.Horizontal;
            uiPanel.autoLayoutStart     = LayoutStart.TopLeft;
            uiPanel.autoLayoutPadding   = new RectOffset(0, 0, 0, 0);
            uiPanel.autoLayout          = true;
            UIScrollbar scrollbar = uiPanel.AddUIComponent <UIScrollbar>();

            scrollbar.width       = 10f;
            scrollbar.height      = scrollbar.parent.height;
            scrollbar.orientation = UIOrientation.Vertical;
            scrollbar.pivot       = UIPivotPoint.BottomLeft;
            scrollbar.AlignTo((UIComponent)uiPanel, UIAlignAnchor.TopRight);
            scrollbar.minValue        = 0.0f;
            scrollbar.value           = 0.0f;
            scrollbar.incrementAmount = 27f;
            this._scrollbar           = scrollbar;
            UISlicedSprite uiSlicedSprite1 = scrollbar.AddUIComponent <UISlicedSprite>();

            uiSlicedSprite1.relativePosition = (Vector3)Vector2.zero;
            uiSlicedSprite1.autoSize         = true;
            uiSlicedSprite1.size             = uiSlicedSprite1.parent.size;
            uiSlicedSprite1.fillDirection    = UIFillDirection.Vertical;
            uiSlicedSprite1.spriteName       = "ScrollbarTrack";
            scrollbar.trackObject            = (UIComponent)uiSlicedSprite1;
            UISlicedSprite uiSlicedSprite2 = uiSlicedSprite1.AddUIComponent <UISlicedSprite>();

            uiSlicedSprite2.relativePosition        = (Vector3)Vector2.zero;
            uiSlicedSprite2.fillDirection           = UIFillDirection.Vertical;
            uiSlicedSprite2.autoSize                = true;
            uiSlicedSprite2.width                   = uiSlicedSprite2.parent.width - 4f;
            uiSlicedSprite2.spriteName              = "ScrollbarThumb";
            scrollbar.thumbObject                   = (UIComponent)uiSlicedSprite2;
            this._scrollablePanel.verticalScrollbar = scrollbar;
            this._scrollablePanel.eventMouseWheel  += (MouseEventHandler)((component, param) => this._scrollablePanel.scrollPosition += new Vector2(0.0f, Mathf.Sign(param.wheelDelta) * -1f * scrollbar.incrementAmount));
        }
        private void CreateScrollPanel()
        {
            KlyteMonoUtils.CreateUIElement(out m_scrollablePanel, MainPanel.transform);
            m_scrollablePanel.width  = MainPanel.width - 20f;
            m_scrollablePanel.height = MainPanel.height - 180f;
            m_scrollablePanel.autoLayoutDirection = LayoutDirection.Vertical;
            m_scrollablePanel.autoLayoutStart     = LayoutStart.TopLeft;
            m_scrollablePanel.autoLayoutPadding   = new RectOffset(0, 0, 0, 0);
            m_scrollablePanel.scrollPadding       = new RectOffset(10, 10, 10, 10);
            m_scrollablePanel.autoLayout          = true;
            m_scrollablePanel.clipChildren        = true;
            m_scrollablePanel.relativePosition    = new Vector3(5, 35);
            m_scrollablePanel.backgroundSprite    = "ScrollbarTrack";

            KlyteMonoUtils.CreateUIElement(out UIPanel trackballPanel, MainPanel.transform);
            trackballPanel.width  = 10f;
            trackballPanel.height = m_scrollablePanel.height;
            trackballPanel.autoLayoutDirection = LayoutDirection.Horizontal;
            trackballPanel.autoLayoutStart     = LayoutStart.TopLeft;
            trackballPanel.autoLayoutPadding   = new RectOffset(0, 0, 0, 0);
            trackballPanel.autoLayout          = true;
            trackballPanel.relativePosition    = new Vector3(MainPanel.width - 15, m_scrollablePanel.relativePosition.y);


            KlyteMonoUtils.CreateUIElement(out m_scrollbar, trackballPanel.transform);
            m_scrollbar.width       = 10f;
            m_scrollbar.height      = m_scrollbar.parent.height;
            m_scrollbar.orientation = UIOrientation.Vertical;
            m_scrollbar.pivot       = UIPivotPoint.BottomLeft;
            m_scrollbar.AlignTo(trackballPanel, UIAlignAnchor.TopRight);
            m_scrollbar.minValue        = 0f;
            m_scrollbar.value           = 0f;
            m_scrollbar.incrementAmount = 25f;

            KlyteMonoUtils.CreateUIElement(out UISlicedSprite scrollBg, m_scrollbar.transform);
            scrollBg.relativePosition = Vector2.zero;
            scrollBg.autoSize         = true;
            scrollBg.size             = scrollBg.parent.size;
            scrollBg.fillDirection    = UIFillDirection.Vertical;
            scrollBg.spriteName       = "ScrollbarTrack";
            m_scrollbar.trackObject   = scrollBg;

            KlyteMonoUtils.CreateUIElement(out UISlicedSprite scrollFg, scrollBg.transform);
            scrollFg.relativePosition           = Vector2.zero;
            scrollFg.fillDirection              = UIFillDirection.Vertical;
            scrollFg.autoSize                   = true;
            scrollFg.width                      = scrollFg.parent.width - 4f;
            scrollFg.spriteName                 = "ScrollbarThumb";
            m_scrollbar.thumbObject             = scrollFg;
            m_scrollablePanel.verticalScrollbar = m_scrollbar;
            m_scrollablePanel.eventMouseWheel  += delegate(UIComponent component, UIMouseEventParameter param)
            {
                m_scrollablePanel.scrollPosition += new Vector2(0f, Mathf.Sign(param.wheelDelta) * -1f * m_scrollbar.incrementAmount);
            };
        }
Beispiel #6
0
        private UIScrollbar CreateVerticalScrollbar(UIPanel panel, UIScrollablePanel scrollablePanel)
        {
            UIScrollbar verticalScrollbar = panel.AddUIComponent <UIScrollbar>();

            verticalScrollbar.name        = "VerticalScrollbar";
            verticalScrollbar.width       = V_SCROLLBAR_WIDTH;
            verticalScrollbar.height      = tabPages.height;
            verticalScrollbar.orientation = UIOrientation.Vertical;
            verticalScrollbar.pivot       = UIPivotPoint.TopLeft;
            verticalScrollbar.AlignTo(panel, UIAlignAnchor.TopRight);
            verticalScrollbar.minValue        = 0;
            verticalScrollbar.value           = 0;
            verticalScrollbar.incrementAmount = 50;
            verticalScrollbar.autoHide        = true;

            UISlicedSprite trackSprite = verticalScrollbar.AddUIComponent <UISlicedSprite>();

            trackSprite.relativePosition  = Vector2.zero;
            trackSprite.autoSize          = true;
            trackSprite.size              = trackSprite.parent.size;
            trackSprite.fillDirection     = UIFillDirection.Vertical;
            trackSprite.spriteName        = "ScrollbarTrack";
            verticalScrollbar.trackObject = trackSprite;

            UISlicedSprite thumbSprite = trackSprite.AddUIComponent <UISlicedSprite>();

            thumbSprite.relativePosition  = Vector2.zero;
            thumbSprite.fillDirection     = UIFillDirection.Vertical;
            thumbSprite.autoSize          = true;
            thumbSprite.width             = thumbSprite.parent.width;
            thumbSprite.spriteName        = "ScrollbarThumb";
            verticalScrollbar.thumbObject = thumbSprite;

            verticalScrollbar.eventValueChanged += (component, value) =>
            {
                scrollablePanel.scrollPosition = new Vector2(0, value);
            };

            panel.eventMouseWheel += (component, eventParam) =>
            {
                verticalScrollbar.value -= (int)eventParam.wheelDelta * verticalScrollbar.incrementAmount;
            };

            scrollablePanel.eventMouseWheel += (component, eventParam) =>
            {
                verticalScrollbar.value -= (int)eventParam.wheelDelta * verticalScrollbar.incrementAmount;
            };

            scrollablePanel.verticalScrollbar = verticalScrollbar;

            return(verticalScrollbar);
        }
Beispiel #7
0
        protected override void OnSizeChanged()
        {
            base.OnSizeChanged();

            if (m_panel == null)
            {
                return;
            }

            m_panel.size = size;

            m_scrollbar.height             = height;
            m_scrollbar.trackObject.height = height;
            m_scrollbar.AlignTo(this, UIAlignAnchor.TopRight);

            CheckRows();
        }
Beispiel #8
0
        protected override void OnSizeChanged()
        {
            base.OnSizeChanged();

            if (height > itemHeight && scrollbar == null)
            {
                DestroyScrollbars(parent);

                // Scrollbar
                UIScrollbar scroll = parent.AddUIComponent <UIScrollbar>();
                scroll.width        = 20f;
                scroll.height       = parent.parent.height;
                scroll.orientation  = UIOrientation.Vertical;
                scroll.pivot        = UIPivotPoint.BottomLeft;
                scroll.thumbPadding = new RectOffset(0, 0, 5, 5);
                scroll.AlignTo(scroll.parent, UIAlignAnchor.TopRight);
                scroll.minValue        = 0;
                scroll.value           = 0;
                scroll.incrementAmount = 50;

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

                scroll.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";

                scroll.thumbObject = thumbSprite;

                scrollbar = scroll;
            }
            else if (height <= itemHeight && scrollbar != null)
            {
                DestroyScrollbars(parent);
            }
        }
Beispiel #9
0
        protected override void OnSizeChanged()
        {
            // Debug.Log("CargoSpy - UIFastList.OnSizeChanged()");
            base.OnSizeChanged();

            if (m_panel == null)
            {
                return;
            }

            m_panel.size = size;

            m_scrollbar.height             = height;
            m_scrollbar.trackObject.height = height;
            m_scrollbar.AlignTo(this, UIAlignAnchor.TopRight);

            CheckRows();
        }
Beispiel #10
0
        protected override void OnSizeChanged()
        {
            base.OnSizeChanged();

            if (height > itemHeight && scrollbar == null)
            {
                DestroyScrollbars(parent);

                // Scrollbar
                UIScrollbar scroll = parent.AddUIComponent <UIScrollbar>();
                scroll.width        = 20f;
                scroll.height       = parent.parent.height;
                scroll.orientation  = UIOrientation.Vertical;
                scroll.pivot        = UIPivotPoint.BottomLeft;
                scroll.thumbPadding = new RectOffset(0, 0, 5, 5);
                scroll.AlignTo(scroll.parent, UIAlignAnchor.TopRight);
                scroll.minValue        = 0;
                scroll.value           = 0;
                scroll.incrementAmount = 50;

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

                scroll.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";

                scroll.thumbObject = thumbSprite;

                scrollbar = scroll;
            }
            else if (height <= itemHeight && scrollbar != null)
            {
                DestroyScrollbars(parent);
            }

            // adjust scrollbars in dropdown menus(needed for Yet Another Toolbar & Resize It)
            if (UIFilterExtra.instance != null)
            {
                SamsamTS.UIUtils.DestroyDropDownScrollBar(UIFilterExtra.instance.optionDropDownMenu);
                SamsamTS.UIUtils.CreateDropDownScrollBar(UIFilterExtra.instance.optionDropDownMenu);
                SamsamTS.UIUtils.DestroyDropDownScrollBar(UIFilterExtra.instance.assetCreatorDropDownMenu);
                SamsamTS.UIUtils.CreateDropDownScrollBar(UIFilterExtra.instance.assetCreatorDropDownMenu);
                SamsamTS.UIUtils.DestroyDropDownScrollBar(UIFilterExtra.instance.DLCDropDownMenu);
                SamsamTS.UIUtils.CreateDropDownScrollBar(UIFilterExtra.instance.DLCDropDownMenu);
            }
            if (UIFilterTag.instance != null)
            {
                SamsamTS.UIUtils.DestroyDropDownScrollBar(UIFilterTag.instance.tagDropDownMenu);
                SamsamTS.UIUtils.CreateDropDownScrollBar(UIFilterTag.instance.tagDropDownMenu);
            }
        }
Beispiel #11
0
        private void SetupControls()
        {
            if (m_panel != null)
            {
                return;
            }

            // Panel
            m_panel                  = AddUIComponent <UIPanel>();
            m_panel.width            = width - 10f;
            m_panel.height           = height;
            m_panel.backgroundSprite = m_backgroundSprite;
            m_panel.color            = m_color;
            m_panel.clipChildren     = true;
            m_panel.relativePosition = Vector2.zero;

            // Scrollbar
            m_scrollbar             = AddUIComponent <UIScrollbar>();
            m_scrollbar.width       = 20f;
            m_scrollbar.height      = height;
            m_scrollbar.orientation = UIOrientation.Vertical;
            m_scrollbar.pivot       = UIPivotPoint.BottomLeft;
            m_scrollbar.AlignTo(this, UIAlignAnchor.TopRight);
            m_scrollbar.minValue        = 0;
            m_scrollbar.value           = 0;
            m_scrollbar.incrementAmount = 50;

            UISlicedSprite tracSprite = m_scrollbar.AddUIComponent <UISlicedSprite>();

            tracSprite.relativePosition = Vector2.zero;
            tracSprite.autoSize         = true;
            tracSprite.size             = tracSprite.parent.size;
            tracSprite.fillDirection    = UIFillDirection.Vertical;
            tracSprite.spriteName       = "ScrollbarTrack";

            m_scrollbar.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";

            m_scrollbar.thumbObject = thumbSprite;

            // Rows
            CheckRows();

            m_scrollbar.eventValueChanged += (c, t) =>
            {
                if (m_lock || m_rowHeight <= 0)
                {
                    return;
                }

                m_lock = true;

                listPosition = m_scrollbar.value * (m_rowsData.m_size - height / m_rowHeight) / (height - m_scrollbar.scrollSize - 1f);
                m_lock       = false;
            };
        }
Beispiel #12
0
        public void SetupScrollPanel()
        {
            //this probably needs to exist, otherwise the autoLayout of this UITransportPanel places the scrollbar weird
            _panelForScrollPanel = AddUIComponent <UIPanel>();
            // needed so that the colorpicker finds the right parent
            _panelForScrollPanel.gameObject.AddComponent <UICustomControl>();

            _panelForScrollPanel.width = width - 6;
            //_captions reporting 450 height? fixed value of 20
            _panelForScrollPanel.height = height - _title.height - 20 * 2 - autoLayoutPadding.bottom * 4 - autoLayoutPadding.top * 4;

            // taken from http://www.reddit.com/r/CitiesSkylinesModding/comments/2zrz0k/extended_public_transport_ui_provides_addtional/cpnet5q
            _scrollablePanel        = _panelForScrollPanel.AddUIComponent <UIScrollablePanel>();
            _scrollablePanel.width  = _scrollablePanel.parent.width - 5f;
            _scrollablePanel.height = _scrollablePanel.parent.height;

            _scrollablePanel.autoLayout          = true;
            _scrollablePanel.autoLayoutDirection = LayoutDirection.Vertical;
            _scrollablePanel.autoLayoutStart     = LayoutStart.TopLeft;
            _scrollablePanel.autoLayoutPadding   = new RectOffset(2, 5, 0, 0);
            _scrollablePanel.clipChildren        = true;

            _scrollablePanel.pivot = UIPivotPoint.TopLeft;
            _scrollablePanel.AlignTo(_scrollablePanel.parent, UIAlignAnchor.TopLeft);

            UIScrollbar scrollbar = _panelForScrollPanel.AddUIComponent <UIScrollbar>();

            scrollbar.width       = scrollbar.parent.width - _scrollablePanel.width;
            scrollbar.height      = _scrollablePanel.height;
            scrollbar.orientation = UIOrientation.Vertical;
            scrollbar.pivot       = UIPivotPoint.BottomLeft;
            scrollbar.AlignTo(scrollbar.parent, UIAlignAnchor.TopRight);
            scrollbar.minValue        = 0;
            scrollbar.value           = 0;
            scrollbar.incrementAmount = 50;

            UISlicedSprite tracSprite = scrollbar.AddUIComponent <UISlicedSprite>();

            tracSprite.relativePosition = Vector2.zero;
            tracSprite.autoSize         = true;
            tracSprite.size             = tracSprite.parent.size;
            tracSprite.fillDirection    = UIFillDirection.Vertical;
            tracSprite.spriteName       = "ScrollbarTrack";

            scrollbar.trackObject = tracSprite;

            UISlicedSprite thumbSprite = tracSprite.AddUIComponent <UISlicedSprite>();

            thumbSprite.relativePosition = Vector2.zero;
            thumbSprite.fillDirection    = UIFillDirection.Vertical;
            thumbSprite.autoSize         = true;
            thumbSprite.width            = thumbSprite.parent.width;
            thumbSprite.spriteName       = "ScrollbarThumb";

            scrollbar.thumbObject = thumbSprite;

            _scrollablePanel.verticalScrollbar = scrollbar;
            _scrollablePanel.eventMouseWheel  += (component, param) =>
            {
                var sign = Math.Sign(param.wheelDelta);
                _scrollablePanel.scrollPosition += new Vector2(0, sign * (-1) * 20);
            };
        }
        //public void ButtonEnabler(UITextureSprite sPrite) {

        //if (sPrite == FavCimsCBMenuSprite) {

        //FavCimsCBMenuSprite.texture = FavCimsCBETexture;
        //FavCimsBBMenuSprite.texture = FavCimsBBDTexture;
        //FavCimsSBMenuSprite.texture = FavCimsSBDTexture;

        //} else if (sPrite == FavCimsBBMenuSprite) {

        //FavCimsCBMenuSprite.texture = FavCimsCBDTexture;
        //FavCimsBBMenuSprite.texture = FavCimsBBETexture;
        //FavCimsSBMenuSprite.texture = FavCimsSBDTexture;

        //} else if (sPrite == FavCimsSBMenuSprite) {

        //FavCimsCBMenuSprite.texture = FavCimsCBDTexture;
        //FavCimsBBMenuSprite.texture = FavCimsBBDTexture;
        //FavCimsSBMenuSprite.texture = FavCimsSBETexture;

        //}
        //return;
        //}

        public override void Start()
        {
            var uiView = UIView.GetAView();

            this.name    = "FavCimsPanel";
            this.width   = 1200;
            this.height  = 700;
            this.opacity = 0.95f;
            this.eventVisibilityChanged += (component, value) => change_visibility_event();

            //Main Panel BG Texture
            Texture FavCimsMainBGTexture = ResourceLoader.loadTexture((int)this.width, (int)this.height, "UIMainPanel.mainbg.png");

            FavCimsMainBGTexture.wrapMode   = TextureWrapMode.Clamp;
            FavCimsMainBGTexture.filterMode = FilterMode.Bilinear;
            //FavCimsMainBGTexture.anisoLevel = 9; Set 1 Bad to 9 Very God
            FavCimsMainBGTexture.name = "FavCimsMainBGTexture";
            UITextureSprite FavCimsMainBGSprite;

            FavCimsMainBGSprite                  = this.AddUIComponent <UITextureSprite> ();
            FavCimsMainBGSprite.name             = "FavCimsMainBGSprite";
            FavCimsMainBGSprite.texture          = FavCimsMainBGTexture;
            FavCimsMainBGSprite.relativePosition = new Vector3(0, 0);

            FavCimsMainBGSprite.eventMouseDown += delegate {
                if (Input.GetMouseButton(0))
                {
                    if (this.GetComponentInChildren <WindowController> () != null)
                    {
                        this.PanelMover = this.GetComponentInChildren <WindowController> ();
                        this.PanelMover.ComponentToMove = this;
                        this.PanelMover.Stop            = false;
                        this.PanelMover.Start();
                    }
                    else
                    {
                        this.PanelMover = this.AddUIComponent(typeof(WindowController)) as WindowController;
                        this.PanelMover.ComponentToMove = this;
                    }
                    this.opacity = 0.5f;
                }
            };

            FavCimsMainBGSprite.eventMouseUp += delegate {
                if (this.PanelMover != null)
                {
                    this.PanelMover.Stop            = true;
                    this.PanelMover.ComponentToMove = null;
                    this.PanelMover = null;
                }
                this.opacity = 1f;
            };

            //Main Panel Title Texture
            Texture FavCimsTitleTexture;

            FavCimsTitleTexture = ResourceLoader.loadTexture((int)this.width, 58, "UIMainPanel.favcimstitle.png");

            FavCimsTitleTexture.wrapMode   = TextureWrapMode.Clamp;
            FavCimsTitleTexture.filterMode = FilterMode.Bilinear;
            FavCimsTitleTexture.mipMapBias = -0.5f;
            //FavCimsTitleTexture.anisoLevel = 9; // Set 1 Bad to 9 Very God

            FavCimsTitleTexture.name   = "FavCimsTitleTexture";
            FavCimsTitleSprite         = FavCimsMainBGSprite.AddUIComponent <UITextureSprite> ();
            FavCimsTitleSprite.name    = "FavCimsTitleSprite";
            FavCimsTitleSprite.texture = FavCimsTitleTexture;
            float FavCimsTitleSpriteRelPosX = ((this.width / 2) - (float)FavCimsTitleTexture.width / 2);

            FavCimsTitleSprite.relativePosition = new Vector3(FavCimsTitleSpriteRelPosX, 0);

            ///////////////////////////////////////////////
            //Game Default Close Button
            //////////////////////////////////////////////

            UIButton FavCimsMenuCloseButton = this.AddUIComponent <UIButton> ();

            FavCimsMenuCloseButton.name            = "FavCimsMenuCloseButton";
            FavCimsMenuCloseButton.width           = 32;
            FavCimsMenuCloseButton.height          = 32;
            FavCimsMenuCloseButton.normalBgSprite  = "buttonclose";
            FavCimsMenuCloseButton.hoveredBgSprite = "buttonclosehover";
            FavCimsMenuCloseButton.pressedBgSprite = "buttonclosepressed";
            FavCimsMenuCloseButton.opacity         = 1;
            FavCimsMenuCloseButton.useOutline      = true;
            FavCimsMenuCloseButton.playAudioEvents = true;

            FavCimsMenuCloseButton.eventClick += (component, eventParam) => FavoritesCimsButton.FavCimsPanelToggle();

            //Printing
            FavCimsMenuCloseButton.relativePosition = new Vector3(this.width - (FavCimsMenuCloseButton.width * 1.5f), ((float)FavCimsTitleTexture.height / 2) - FavCimsMenuCloseButton.height / 2);

            ///////////////////////////////////////////////
            //Main Panel Menu Background Texture
            ///////////////////////////////////////////////

            Texture FavCimsBGMenuTexture;

            FavCimsBGMenuTexture = ResourceLoader.loadTexture((int)this.width - 10, 70, "UIMainPanel.submenubar.png");

            FavCimsBGMenuTexture.wrapMode   = TextureWrapMode.Clamp;
            FavCimsBGMenuTexture.filterMode = FilterMode.Bilinear;
            FavCimsBGMenuTexture.name       = "FavCimsBGMenuTexture";
            UITextureSprite FavCimsBGMenuSprite = FavCimsMainBGSprite.AddUIComponent <UITextureSprite> ();

            FavCimsBGMenuSprite.name    = "FavCimsBGMenuSprite";
            FavCimsBGMenuSprite.texture = FavCimsBGMenuTexture;
            float FavCimsBGMenuSpriteRelPosX = ((this.width / 2) - (float)FavCimsBGMenuTexture.width / 2);

            FavCimsBGMenuSprite.relativePosition = new Vector3(FavCimsBGMenuSpriteRelPosX, 58);

            //Citizen Button Texture (Enabled & Disabled)
            FavCimsCBETexture = ResourceLoader.loadTexture(200, 59, "UIMainPanel.citizenbuttonenabled.png");
            FavCimsCBDTexture = ResourceLoader.loadTexture(200, 59, "UIMainPanel.citizenbuttondisabled.png");

            FavCimsCBETexture.wrapMode   = TextureWrapMode.Clamp;
            FavCimsCBETexture.filterMode = FilterMode.Bilinear;
            FavCimsCBETexture.name       = "FavCimsCBETexture";
            FavCimsCBETexture.mipMapBias = -0.5f;
            FavCimsCBDTexture.wrapMode   = TextureWrapMode.Clamp;
            FavCimsCBDTexture.filterMode = FilterMode.Bilinear;
            FavCimsCBDTexture.name       = "FavCimsCBDTexture";
            FavCimsCBDTexture.mipMapBias = -0.5f;

            FavCimsCBMenuSprite         = FavCimsMainBGSprite.AddUIComponent <UITextureSprite> ();
            FavCimsCBMenuSprite.name    = "FavCimsBGMenuSprite";
            FavCimsCBMenuSprite.texture = FavCimsCBETexture;

            //Citizens Transparent Button (For Easy Text Change)
            FavCimsBCMenuButton                  = this.AddUIComponent <UIButton> ();
            FavCimsBCMenuButton.name             = "FavCimsBCMenuButton";
            FavCimsBCMenuButton.width            = FavCimsCBMenuSprite.width;
            FavCimsBCMenuButton.height           = FavCimsCBMenuSprite.height;
            FavCimsBCMenuButton.useOutline       = true;
            FavCimsBCMenuButton.playAudioEvents  = true;
            FavCimsBCMenuButton.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsBCMenuButton.textScale        = 1.8f;
            FavCimsBCMenuButton.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsBCMenuButton.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsBCMenuButton.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsBCMenuButton.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsBCMenuButton.textPadding.left = 15;
            FavCimsBCMenuButton.useDropShadow    = true;
            FavCimsBCMenuButton.tooltipBox       = uiView.defaultTooltipBox;

            //Printing
            FavCimsCBMenuSprite.relativePosition = new Vector3(27, 69);
            FavCimsBCMenuButton.relativePosition = new Vector3(27, 69);

            ///////////////////////////////////////////////
            //Buildings Button Texture (Enabled & Disabled)
            //////////////////////////////////////////////

            /*
             * FavCimsBBETexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.buildingsbuttonenabled.png");
             * FavCimsBBDTexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.buildingsbuttondisabled.png");
             *
             * FavCimsBBETexture.wrapMode = TextureWrapMode.Clamp;
             * FavCimsBBETexture.filterMode = FilterMode.Bilinear;
             * FavCimsBBETexture.name = "FavCimsBBETexture";
             * FavCimsBBETexture.mipMapBias = -0.5f;
             * FavCimsBBDTexture.wrapMode = TextureWrapMode.Clamp;
             * FavCimsBBDTexture.filterMode = FilterMode.Bilinear;
             * FavCimsBBDTexture.name = "FavCimsBBETexture";
             * FavCimsBBDTexture.mipMapBias = -0.5f;
             * FavCimsBBMenuSprite = FavCimsMainBGSprite.AddUIComponent<UITextureSprite> ();
             * FavCimsBBMenuSprite.name = "FavCimsBBMenuSprite";
             * FavCimsBBMenuSprite.texture = FavCimsBBDTexture;
             *
             * //Buildings Transparent Button (For Easy Text Change)
             * FavCimsBBMenuButton = this.AddUIComponent<UIButton> ();
             * FavCimsBBMenuButton.name = "FavCimsBBMenuButton";
             * FavCimsBBMenuButton.width = FavCimsBBETexture.width;
             * FavCimsBBMenuButton.height = FavCimsBBETexture.height;
             * FavCimsBBMenuButton.useOutline = true;
             * FavCimsBBMenuButton.playAudioEvents = true;
             * FavCimsBBMenuButton.font = UIDynamicFont.FindByName ("OpenSans-Regular");
             * FavCimsBBMenuButton.textScale = 1.8f;
             * FavCimsBBMenuButton.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
             * FavCimsBBMenuButton.hoveredTextColor = new Color32 (204, 102, 0, 20);
             * FavCimsBBMenuButton.pressedTextColor = new Color32 (153, 0, 0, 0);
             * FavCimsBBMenuButton.focusedTextColor = new Color32 (102, 153, 255, 147);
             * FavCimsBBMenuButton.textPadding.left = 20;
             * FavCimsBBMenuButton.useDropShadow = true;
             * FavCimsBBMenuButton.tooltipBox = uiView.defaultTooltipBox;
             *
             * //Printing
             * //FavCimsBBMenuSprite.relativePosition = new Vector3 (FavCimsCBMenuSprite.position.x + FavCimsBBMenuSprite.width + 21, 69); //html => margin-left:21px;
             * //FavCimsBBMenuButton.relativePosition = new Vector3 (FavCimsBCMenuButton.position.x + FavCimsBBMenuButton.width + 35, 69);
             *
             * ///////////////////////////////////////////////
             * //Stats Button Texture (Enabled & Disabled)
             * //////////////////////////////////////////////
             *
             * FavCimsSBETexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.statsbuttonenabled.png");
             * FavCimsSBDTexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.statsbuttondisabled.png");
             *
             * FavCimsSBETexture.wrapMode = TextureWrapMode.Clamp;
             * FavCimsSBETexture.filterMode = FilterMode.Bilinear;
             * FavCimsSBETexture.name = "FavCimsSBETexture";
             * FavCimsSBETexture.mipMapBias = -0.5f;
             * FavCimsSBDTexture.wrapMode = TextureWrapMode.Clamp;
             * FavCimsSBDTexture.filterMode = FilterMode.Bilinear;
             * FavCimsSBDTexture.name = "FavCimsSBETexture";
             * FavCimsSBDTexture.mipMapBias = -0.5f;
             * FavCimsSBMenuSprite = FavCimsMainBGSprite.AddUIComponent<UITextureSprite> ();
             * FavCimsSBMenuSprite.name = "FavCimsSBMenuSprite";
             * FavCimsSBMenuSprite.texture = FavCimsSBDTexture;
             *
             * //Stats Transparent Button (For Easy Text Change)
             * FavCimsBSMenuButton = this.AddUIComponent<UIButton> ();
             * FavCimsBSMenuButton.name = "FavCimsBSMenuButton";
             * FavCimsBSMenuButton.width = FavCimsSBETexture.width;
             * FavCimsBSMenuButton.height = FavCimsSBETexture.height;
             * FavCimsBSMenuButton.useOutline = true;
             * FavCimsBSMenuButton.playAudioEvents = true;
             * FavCimsBSMenuButton.font = UIDynamicFont.FindByName ("OpenSans-Regular");
             * FavCimsBSMenuButton.textScale = 1.8f;
             * FavCimsBSMenuButton.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
             * FavCimsBSMenuButton.hoveredTextColor = new Color32 (204, 102, 0, 20);
             * FavCimsBSMenuButton.pressedTextColor = new Color32 (153, 0, 0, 0);
             * FavCimsBSMenuButton.focusedTextColor = new Color32 (102, 153, 255, 147);
             * FavCimsBSMenuButton.textPadding.left = 0;
             * FavCimsBSMenuButton.useDropShadow = true;
             * FavCimsBSMenuButton.tooltipBox = uiView.defaultTooltipBox;
             *
             * //Printing
             * //FavCimsSBMenuSprite.relativePosition = new Vector3 (FavCimsBBMenuSprite.position.x + FavCimsSBMenuSprite.width + 21, 69); //html => margin-left:21px;
             * //FavCimsBSMenuButton.relativePosition = new Vector3 (FavCimsBBMenuButton.position.x + FavCimsBSMenuButton.width + 21, 69); //html => margin-left:21px;
             *
             * ///////////////////////////////////////////////
             * //Click Operation for Main Buttons
             * //////////////////////////////////////////////
             *
             * //FavCimsBCMenuButton.eventClick += (component, eventParam) => ButtonEnabler (FavCimsCBMenuSprite);
             * //FavCimsBBMenuButton.eventClick += (component, eventParam) => ButtonEnabler (FavCimsBBMenuSprite);
             * //FavCimsBSMenuButton.eventClick += (component, eventParam) => ButtonEnabler (FavCimsSBMenuSprite);
             */

            ///////////////////////////////////////////////
            //Citizens Panel
            //////////////////////////////////////////////

            CitizensPanel                  = this.AddUIComponent <UIPanel> ();
            CitizensPanel.name             = "CitizensPanel";
            CitizensPanel.width            = 1190;
            CitizensPanel.height           = 558;
            CitizensPanel.relativePosition = new Vector3(((this.width / 2) - (float)CitizensPanel.width / 2), 128);

            ///////////////////////////////////////////////
            //Citizens Panel Body Background
            //////////////////////////////////////////////

            FavCimsMainBodyTexture = ResourceLoader.loadTexture(1190, 558, "UIMainPanel.bodybg.png");

            FavCimsMainBodyTexture.wrapMode   = TextureWrapMode.Clamp;
            FavCimsMainBodyTexture.filterMode = FilterMode.Bilinear;
            FavCimsMainBodyTexture.name       = "FavCimsMainBodyTexture";

            FavCimsBodySprite         = CitizensPanel.AddUIComponent <UITextureSprite> ();
            FavCimsBodySprite.name    = "FavCimsCBGBodySprite";
            FavCimsBodySprite.texture = FavCimsMainBodyTexture;
            //Printing
            FavCimsBodySprite.relativePosition = Vector3.zero;

            ///////////////////////////////////////////////
            //Index Column Background
            //////////////////////////////////////////////

            Texture FavCimsIndexBgBar = ResourceLoader.loadTexture(1146, 26, "UIMainPanel.indexerbgbar.png");

            FavCimsIndexBgBar.wrapMode   = TextureWrapMode.Clamp;
            FavCimsIndexBgBar.filterMode = FilterMode.Bilinear;
            FavCimsIndexBgBar.name       = "FavCimsIndexBgBar";
            FavCimsIndexBgBar.mipMapBias = -0.5f;
            UITextureSprite FavCimsIndexBgBarSprite = CitizensPanel.AddUIComponent <UITextureSprite> ();

            FavCimsIndexBgBarSprite.name    = "FavCimsIndexBgBarSprite";
            FavCimsIndexBgBarSprite.texture = FavCimsIndexBgBar;

            //Printing
            FavCimsIndexBgBarSprite.relativePosition = new Vector3(21, 7);

            ////////////////////////////////////////////////
            //Index Columns (Button for future sort order...)
            ////////////////////////////////////////////////

            //Status
            FavCimsHappinesColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsHappinesColText.name   = "FavCimsHappinesColText";
            FavCimsHappinesColText.width  = 60;
            FavCimsHappinesColText.height = FavCimsIndexBgBar.height;
            FavCimsHappinesColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsHappinesColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsHappinesColText.playAudioEvents         = true;
            FavCimsHappinesColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsHappinesColText.textScale        = 0.7f;
            FavCimsHappinesColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsHappinesColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsHappinesColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsHappinesColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsHappinesColText.textPadding.left = 0;
            FavCimsHappinesColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Status
            FavCimsHappinesColText.relativePosition = new Vector3(FavCimsIndexBgBarSprite.relativePosition.x + 6, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Name
            FavCimsNameColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsNameColText.name   = "FavCimsNameColText";
            FavCimsNameColText.width  = 180;
            FavCimsNameColText.height = FavCimsIndexBgBar.height;
            FavCimsNameColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsNameColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsNameColText.playAudioEvents         = true;
            FavCimsNameColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsNameColText.textScale        = 0.7f;
            FavCimsNameColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsNameColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsNameColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsNameColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsNameColText.textPadding.left = 0;
            FavCimsNameColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Name
            FavCimsNameColText.relativePosition = new Vector3(FavCimsHappinesColText.relativePosition.x + FavCimsHappinesColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Age Phase
            FavCimsAgePhaseColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsAgePhaseColText.name   = "FavCimsAgePhaseColText";
            FavCimsAgePhaseColText.width  = 120;
            FavCimsAgePhaseColText.height = FavCimsIndexBgBar.height;
            FavCimsAgePhaseColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsAgePhaseColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsAgePhaseColText.playAudioEvents         = true;
            FavCimsAgePhaseColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsAgePhaseColText.textScale        = 0.7f;
            FavCimsAgePhaseColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsAgePhaseColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsAgePhaseColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsAgePhaseColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsAgePhaseColText.textPadding.left = 0;
            FavCimsAgePhaseColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Age Phase
            FavCimsAgePhaseColText.relativePosition = new Vector3(FavCimsNameColText.relativePosition.x + FavCimsNameColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Age
            FavCimsAgeColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsAgeColText.name   = "FavCimsAgeColText";
            FavCimsAgeColText.width  = 40;
            FavCimsAgeColText.height = FavCimsIndexBgBar.height;
            FavCimsAgeColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsAgeColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsAgeColText.playAudioEvents         = true;
            FavCimsAgeColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsAgeColText.textScale        = 0.7f;
            FavCimsAgeColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsAgeColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsAgeColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsAgeColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsAgeColText.textPadding.left = 0;
            FavCimsAgeColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Age
            FavCimsAgeColText.relativePosition = new Vector3(FavCimsAgePhaseColText.relativePosition.x + FavCimsAgePhaseColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Education
            FavCimsEduColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsEduColText.name   = "FavCimsEduColText";
            FavCimsEduColText.width  = 140;
            FavCimsEduColText.height = FavCimsIndexBgBar.height;
            FavCimsEduColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsEduColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsEduColText.playAudioEvents         = true;
            FavCimsEduColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsEduColText.textScale        = 0.7f;
            FavCimsEduColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsEduColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsEduColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsEduColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsEduColText.textPadding.left = 0;
            FavCimsEduColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Education
            FavCimsEduColText.relativePosition = new Vector3(FavCimsAgeColText.relativePosition.x + FavCimsAgeColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Home
            FavCimsHomeColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsHomeColText.name   = "FavCimsHomeColText";
            FavCimsHomeColText.width  = 184;
            FavCimsHomeColText.height = FavCimsIndexBgBar.height;
            FavCimsHomeColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsHomeColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsHomeColText.playAudioEvents         = true;
            FavCimsHomeColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsHomeColText.textScale        = 0.7f;
            FavCimsHomeColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsHomeColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsHomeColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsHomeColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsHomeColText.textPadding.left = 0;
            FavCimsHomeColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Home
            FavCimsHomeColText.relativePosition = new Vector3(FavCimsEduColText.relativePosition.x + FavCimsEduColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Working Place
            FavCimsWorkingPlaceColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsWorkingPlaceColText.name   = "FavCimsWorkingPlaceColText";
            FavCimsWorkingPlaceColText.width  = 180;
            FavCimsWorkingPlaceColText.height = FavCimsIndexBgBar.height;
            FavCimsWorkingPlaceColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsWorkingPlaceColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsWorkingPlaceColText.playAudioEvents         = true;
            FavCimsWorkingPlaceColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsWorkingPlaceColText.textScale        = 0.7f;
            FavCimsWorkingPlaceColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsWorkingPlaceColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsWorkingPlaceColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsWorkingPlaceColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsWorkingPlaceColText.textPadding.left = 0;
            FavCimsWorkingPlaceColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Working Place
            FavCimsWorkingPlaceColText.relativePosition = new Vector3(FavCimsHomeColText.relativePosition.x + FavCimsHomeColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Last Activity
            FavCimsLastActColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsLastActColText.name   = "FavCimsLastActColText";
            FavCimsLastActColText.width  = 180;
            FavCimsLastActColText.height = FavCimsIndexBgBar.height;
            FavCimsLastActColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsLastActColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsLastActColText.playAudioEvents         = true;
            FavCimsLastActColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsLastActColText.textScale        = 0.7f;
            FavCimsLastActColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsLastActColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsLastActColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsLastActColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsLastActColText.textPadding.left = 0;
            FavCimsLastActColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Last Activity
            FavCimsLastActColText.relativePosition = new Vector3(FavCimsWorkingPlaceColText.relativePosition.x + FavCimsWorkingPlaceColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Close Button
            FavCimsCloseButtonCol        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsCloseButtonCol.name   = "FavCimsCloseButtonCol";
            FavCimsCloseButtonCol.width  = 50;
            FavCimsCloseButtonCol.height = FavCimsIndexBgBar.height;
            FavCimsCloseButtonCol.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsCloseButtonCol.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsCloseButtonCol.playAudioEvents         = true;
            FavCimsCloseButtonCol.font              = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsCloseButtonCol.textScale         = 0.7f;
            FavCimsCloseButtonCol.textColor         = new Color32(204, 204, 51, 40);      //r,g,b,a
            FavCimsCloseButtonCol.hoveredTextColor  = new Color32(204, 102, 0, 20);
            FavCimsCloseButtonCol.pressedTextColor  = new Color32(153, 0, 0, 0);
            FavCimsCloseButtonCol.focusedTextColor  = new Color32(102, 153, 255, 147);
            FavCimsCloseButtonCol.textPadding.right = 6;
            FavCimsCloseButtonCol.tooltipBox        = uiView.defaultTooltipBox;

            //Printing Close Button
            FavCimsCloseButtonCol.relativePosition = new Vector3(FavCimsLastActColText.relativePosition.x + FavCimsLastActColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            ///////////////////////////////////////////////
            /////Rows Panel Body
            ///////////////////////////////////////////////

            FavCimsCitizenRowsPanel        = CitizensPanel.AddUIComponent <UIScrollablePanel> ();
            FavCimsCitizenRowsPanel.name   = "FavCimsCitizenRowsPanel";
            FavCimsCitizenRowsPanel.width  = FavCimsIndexBgBarSprite.width - 12;
            FavCimsCitizenRowsPanel.height = 500;

            FavCimsCitizenRowsPanel.autoLayoutDirection = LayoutDirection.Vertical;
            FavCimsCitizenRowsPanel.autoLayout          = true;
            FavCimsCitizenRowsPanel.clipChildren        = true;
            FavCimsCitizenRowsPanel.autoLayoutPadding   = new RectOffset(0, 0, 0, 0);
            FavCimsCitizenRowsPanel.relativePosition    = new Vector3(FavCimsIndexBgBarSprite.relativePosition.x + 6, FavCimsIndexBgBarSprite.relativePosition.y + FavCimsIndexBgBarSprite.height);

            //Damn ScrollBar
            UIScrollablePanel FavCimsCitizenRowsPanelScrollBar = CitizensPanel.AddUIComponent <UIScrollablePanel> ();

            FavCimsCitizenRowsPanelScrollBar.name             = "FavCimsCitizenRowsPanelScrollBar";
            FavCimsCitizenRowsPanelScrollBar.width            = 10;
            FavCimsCitizenRowsPanelScrollBar.height           = 500;
            FavCimsCitizenRowsPanelScrollBar.relativePosition = new Vector3(FavCimsIndexBgBarSprite.relativePosition.x + FavCimsIndexBgBarSprite.width, FavCimsCitizenRowsPanel.relativePosition.y);

            UIScrollbar FavCimsMainPanelScrollBar = FavCimsCitizenRowsPanelScrollBar.AddUIComponent <UIScrollbar> ();

            FavCimsMainPanelScrollBar.width       = 10;
            FavCimsMainPanelScrollBar.height      = FavCimsCitizenRowsPanel.height;
            FavCimsMainPanelScrollBar.orientation = UIOrientation.Vertical;
            FavCimsMainPanelScrollBar.pivot       = UIPivotPoint.TopRight;
            FavCimsMainPanelScrollBar.AlignTo(FavCimsMainPanelScrollBar.parent, UIAlignAnchor.TopRight);
            FavCimsMainPanelScrollBar.minValue        = 0;
            FavCimsMainPanelScrollBar.value           = 0;
            FavCimsMainPanelScrollBar.incrementAmount = 40;

            UISlicedSprite FavCimsMainPanelTrackSprite = FavCimsMainPanelScrollBar.AddUIComponent <UISlicedSprite> ();

            FavCimsMainPanelTrackSprite.relativePosition = FavCimsMainPanelScrollBar.relativePosition;
            FavCimsMainPanelTrackSprite.autoSize         = true;
            FavCimsMainPanelTrackSprite.size             = FavCimsMainPanelTrackSprite.parent.size;
            FavCimsMainPanelTrackSprite.fillDirection    = UIFillDirection.Vertical;
            FavCimsMainPanelTrackSprite.spriteName       = "ScrollbarTrack";

            FavCimsMainPanelScrollBar.trackObject = FavCimsMainPanelTrackSprite;

            UISlicedSprite thumbSprite = FavCimsMainPanelScrollBar.AddUIComponent <UISlicedSprite> ();

            thumbSprite.relativePosition              = FavCimsMainPanelScrollBar.relativePosition;
            thumbSprite.autoSize                      = true;
            thumbSprite.width                         = thumbSprite.parent.width;
            thumbSprite.fillDirection                 = UIFillDirection.Vertical;
            thumbSprite.spriteName                    = "ScrollbarThumb";
            FavCimsMainPanelScrollBar.thumbObject     = thumbSprite;
            FavCimsCitizenRowsPanel.verticalScrollbar = FavCimsMainPanelScrollBar;

            /* Thx to CNightwing for this piece of code */
            FavCimsCitizenRowsPanel.eventMouseWheel += (component, eventParam) => {
                var sign = Math.Sign(eventParam.wheelDelta);
                FavCimsCitizenRowsPanel.scrollPosition += new Vector2(0, sign * (-1) * FavCimsMainPanelScrollBar.incrementAmount);
            };
            /* End */

            FavCimsCitizenRowsPanel.eventComponentAdded   += (component, eventParam) => ReorderRowsBackgrounds();
            FavCimsCitizenRowsPanel.eventComponentRemoved += (component, eventParam) => ReorderRowsBackgrounds();

            ///////////////////////////////////////////////
            /////Rows Panel Footer
            ///////////////////////////////////////////////

            UITextureSprite FavCimsFooterBgBarSprite = CitizensPanel.AddUIComponent <UITextureSprite> ();

            FavCimsFooterBgBarSprite.name    = "FavCimsFooterBgBarSprite";
            FavCimsFooterBgBarSprite.width   = FavCimsIndexBgBarSprite.width;
            FavCimsFooterBgBarSprite.height  = 15;
            FavCimsFooterBgBarSprite.texture = FavCimsIndexBgBar;

            //Printing
            FavCimsFooterBgBarSprite.relativePosition = new Vector3(21, FavCimsCitizenRowsPanel.relativePosition.y + FavCimsCitizenRowsPanel.height);
            //Row End

            //Load Initial Row (People Renamed)
            foreach (KeyValuePair <InstanceID, string> FavCitizen in FavCimsCore.FavoriteCimsList())
            {
                if (FavCitizen.Key.Type == InstanceType.Citizen)                  // || FavCitizen.Key.Type == InstanceType.CitizenInstance
                {
                    CitizenRow FavCimsCitizenSingleRowPanel = FavCimsCitizenRowsPanel.AddUIComponent(typeof(CitizenRow)) as CitizenRow;
                    FavCimsCitizenSingleRowPanel.MyInstanceID    = FavCitizen.Key;
                    FavCimsCitizenSingleRowPanel.MyInstancedName = FavCitizen.Value;
                }
            }
        }
        public override void Start()
        {
            base.Start();
            if (this._showPanel)
            {
                this.backgroundSprite = "ButtonMenu";
                this.eventMouseEnter += (MouseEventHandler)((component, param) => (component as DropDown).backgroundSprite = "ButtonMenuHovered");
                this.eventMouseLeave += (MouseEventHandler)((component, param) => (component as DropDown).backgroundSprite = "ButtonMenu");
            }
            this.zOrder = 1;
            UIButton uiButton = this.AddUIComponent <UIButton>();

            uiButton.width            = this.width;
            uiButton.height           = this.height;
            uiButton.relativePosition = new Vector3(0.0f, 0.0f);
            if ((UnityEngine.Object) this.Font != (UnityEngine.Object)null)
            {
                uiButton.font = this.Font;
            }
            uiButton.textScale               = 0.8f;
            uiButton.textVerticalAlignment   = UIVerticalAlignment.Middle;
            uiButton.textHorizontalAlignment = UIHorizontalAlignment.Left;
            uiButton.textPadding             = new RectOffset(6, 0, 4, 0);
            uiButton.normalFgSprite          = "IconDownArrow";
            uiButton.hoveredFgSprite         = "IconDownArrowHovered";
            uiButton.pressedFgSprite         = "IconDownArrowPressed";
            uiButton.focusedFgSprite         = "IconDownArrow";
            uiButton.disabledFgSprite        = "IconDownArrowDisabled";
            uiButton.foregroundSpriteMode    = UIForegroundSpriteMode.Fill;
            uiButton.horizontalAlignment     = UIHorizontalAlignment.Right;
            uiButton.verticalAlignment       = UIVerticalAlignment.Middle;
            uiButton.zOrder      = 0;
            uiButton.eventClick += new MouseEventHandler(this.OnButtonClick);
            this._triggerButton  = uiButton;
            this.Text            = "Default";
            UIPanel uiPanel1 = this.AddUIComponent(typeof(UIPanel)) as UIPanel;

            uiPanel1.name                = "PopUpPanel";
            uiPanel1.isVisible           = false;
            uiPanel1.width               = (double)this.ListWidth > 0.0 ? this.ListWidth : this.width;
            uiPanel1.height              = (float)(this._itemHeight * this._maxVisibleItems);
            uiPanel1.autoLayoutDirection = LayoutDirection.Horizontal;
            uiPanel1.autoLayoutStart     = LayoutStart.TopLeft;
            uiPanel1.autoLayoutPadding   = new RectOffset(0, 0, 0, 0);
            uiPanel1.autoLayout          = true;
            uiPanel1.backgroundSprite    = "GenericPanelWhite";
            uiPanel1.color               = (Color32)Color.black;
            uiPanel1.AlignTo(this._dropDownPanelAlignParent, UIAlignAnchor.TopLeft);
            this._dropDownPanel = uiPanel1;
            UIScrollablePanel uiScrollablePanel = uiPanel1.AddUIComponent <UIScrollablePanel>();

            uiScrollablePanel.width  = uiPanel1.width - 10f;
            uiScrollablePanel.height = uiPanel1.height;
            uiScrollablePanel.autoLayoutDirection = LayoutDirection.Vertical;
            uiScrollablePanel.autoLayoutStart     = LayoutStart.TopLeft;
            uiScrollablePanel.autoLayoutPadding   = new RectOffset(0, 0, 0, 0);
            uiScrollablePanel.autoLayout          = true;
            uiScrollablePanel.clipChildren        = true;
            uiScrollablePanel.backgroundSprite    = "GenericPanelWhite";
            uiScrollablePanel.color = (Color32)Color.black;
            this._scrollablePanel   = uiScrollablePanel;
            UIPanel uiPanel2 = uiPanel1.AddUIComponent <UIPanel>();

            uiPanel2.width  = 10f;
            uiPanel2.height = uiPanel2.parent.height;
            uiPanel2.autoLayoutDirection = LayoutDirection.Horizontal;
            uiPanel2.autoLayoutStart     = LayoutStart.TopLeft;
            uiPanel2.autoLayoutPadding   = new RectOffset(0, 0, 0, 0);
            uiPanel2.autoLayout          = true;
            this._scrollbarPanel         = uiPanel2;
            UIScrollbar scrollbar = uiPanel2.AddUIComponent <UIScrollbar>();

            scrollbar.width       = 10f;
            scrollbar.height      = uiPanel2.height;
            scrollbar.orientation = UIOrientation.Vertical;
            scrollbar.pivot       = UIPivotPoint.BottomLeft;
            scrollbar.AlignTo((UIComponent)uiPanel2, UIAlignAnchor.TopRight);
            scrollbar.minValue        = 0.0f;
            scrollbar.value           = 0.0f;
            scrollbar.incrementAmount = (float)this._itemHeight;
            this._scrollbar           = scrollbar;
            UISlicedSprite uiSlicedSprite1 = scrollbar.AddUIComponent <UISlicedSprite>();

            uiSlicedSprite1.relativePosition = (Vector3)Vector2.zero;
            uiSlicedSprite1.autoSize         = true;
            uiSlicedSprite1.size             = uiSlicedSprite1.parent.size;
            uiSlicedSprite1.fillDirection    = UIFillDirection.Vertical;
            uiSlicedSprite1.spriteName       = "ScrollbarTrack";
            scrollbar.trackObject            = (UIComponent)uiSlicedSprite1;
            UISlicedSprite uiSlicedSprite2 = uiSlicedSprite1.AddUIComponent <UISlicedSprite>();

            uiSlicedSprite2.relativePosition        = (Vector3)Vector2.zero;
            uiSlicedSprite2.fillDirection           = UIFillDirection.Vertical;
            uiSlicedSprite2.autoSize                = true;
            uiSlicedSprite2.width                   = uiSlicedSprite2.parent.width - 4f;
            uiSlicedSprite2.spriteName              = "ScrollbarThumb";
            scrollbar.thumbObject                   = (UIComponent)uiSlicedSprite2;
            this._scrollablePanel.verticalScrollbar = scrollbar;
            this._scrollablePanel.eventMouseWheel  += (MouseEventHandler)((component, param) => this._scrollablePanel.scrollPosition += new Vector2(0.0f, Mathf.Sign(param.wheelDelta) * -1f * scrollbar.incrementAmount));
        }
        private void SetupScrollPanel()
        {
            ModLogger.Debug("Setting up scroll panel");

            // Create the main panel hosting the scrollable panel
            _mainPanel = AddUIComponent <UIPanel>();
            _mainPanel.gameObject.AddComponent <UICustomControl>();
            _mainPanel.width = width - UIConstants.MainWindowMainPanelWidthOffset;
            int[] offsettingItems = new int[] { UIConstants.TitlePanelHeight, UIConstants.CaptionPanelLabelOffset, UIConstants.CaptionPanelHeight, UIConstants.FilterPanelHeight, autoLayoutPadding.bottom * 4, autoLayoutPadding.top * 4 };
            _mainPanel.height = height - offsettingItems.Sum();

            // taken from http://www.reddit.com/r/CitiesSkylinesModding/comments/2zrz0k/extended_public_transport_ui_provides_addtional/cpnet5q
            _scrollablePanel                     = _mainPanel.AddUIComponent <UIScrollablePanel>();
            _scrollablePanel.width               = _scrollablePanel.parent.width - UIConstants.MainWindowScrollablePanelWidthOffset - 10;
            _scrollablePanel.height              = _scrollablePanel.parent.height;
            _scrollablePanel.autoLayout          = true;
            _scrollablePanel.autoLayoutDirection = LayoutDirection.Vertical;
            _scrollablePanel.autoLayoutStart     = LayoutStart.TopLeft;
            _scrollablePanel.autoLayoutPadding   = UIConstants.AutoLayoutPadding;
            _scrollablePanel.clipChildren        = true;
            _scrollablePanel.pivot               = UIPivotPoint.TopLeft;
            _scrollablePanel.AlignTo(_scrollablePanel.parent, UIAlignAnchor.TopLeft);
            _scrollablePanel.relativePosition = new Vector3(5, 0);

            UIScrollbar scrollbar = _mainPanel.AddUIComponent <UIScrollbar>();

            scrollbar.width       = scrollbar.parent.width - _scrollablePanel.width;
            scrollbar.height      = scrollbar.parent.height;
            scrollbar.orientation = UIOrientation.Vertical;
            scrollbar.pivot       = UIPivotPoint.BottomLeft;
            scrollbar.AlignTo(scrollbar.parent, UIAlignAnchor.TopRight);
            scrollbar.minValue        = 0;
            scrollbar.value           = 0;
            scrollbar.incrementAmount = UIConstants.ScrollbarIncrementCount;

            UISlicedSprite trackSprite = scrollbar.AddUIComponent <UISlicedSprite>();

            trackSprite.relativePosition = Vector2.zero;
            trackSprite.autoSize         = true;
            trackSprite.size             = trackSprite.parent.size;
            trackSprite.fillDirection    = UIFillDirection.Vertical;
            trackSprite.spriteName       = UIConstants.ScrollbarTrackSprite;

            scrollbar.trackObject = trackSprite;

            UISlicedSprite thumbSprite = trackSprite.AddUIComponent <UISlicedSprite>();

            thumbSprite.relativePosition = Vector2.zero;
            thumbSprite.fillDirection    = UIFillDirection.Vertical;
            thumbSprite.autoSize         = true;
            thumbSprite.width            = thumbSprite.parent.width;
            thumbSprite.spriteName       = UIConstants.ScrollbarThumbSprite;

            scrollbar.thumbObject = thumbSprite;

            _scrollablePanel.verticalScrollbar = scrollbar;
            _scrollablePanel.eventMouseWheel  += (component, param) =>
            {
                var sign = Math.Sign(param.wheelDelta);
                _scrollablePanel.scrollPosition += new Vector2(0, sign * (-1) * UIConstants.ScrollbarMouseWheelOffset);
            };

            ModLogger.Debug("Scroll panel set up");
        }