Esempio n. 1
0
        // runs only once, do internal init here
        public override void Awake()
        {
            base.Awake();

            // Note - parent may not be set yet
            ScrollPanel = AddUIComponent <UIScrollablePanel>();
            ScrollBar   = AddUIComponent <UIScrollbar>();
            TrackSprite = ScrollBar.AddUIComponent <UISlicedSprite>();
            ThumbSprite = TrackSprite.AddUIComponent <UISlicedSprite>();
        }
Esempio n. 2
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));
        }
Esempio n. 3
0
        /// <summary>
        /// Creates a vertical scrollbar
        /// </summary>
        /// <param name="parent">Parent component</param>
        /// <param name="scrollPanel">Panel to scroll</param>
        /// <returns></returns>
        public static UIScrollbar AddScrollbar(UIComponent parent, UIScrollablePanel scrollPanel)
        {
            // Basic setup.
            UIScrollbar newScrollbar = parent.AddUIComponent <UIScrollbar>();

            newScrollbar.orientation     = UIOrientation.Vertical;
            newScrollbar.pivot           = UIPivotPoint.TopLeft;
            newScrollbar.minValue        = 0;
            newScrollbar.value           = 0;
            newScrollbar.incrementAmount = 50f;
            newScrollbar.autoHide        = true;
            newScrollbar.width           = 10f;

            // Tracking sprite.
            UISlicedSprite trackSprite = newScrollbar.AddUIComponent <UISlicedSprite>();

            trackSprite.relativePosition = Vector2.zero;
            trackSprite.autoSize         = true;
            trackSprite.anchor           = UIAnchorStyle.All;
            trackSprite.size             = trackSprite.parent.size;
            trackSprite.fillDirection    = UIFillDirection.Vertical;
            trackSprite.spriteName       = "ScrollbarTrack";
            newScrollbar.trackObject     = trackSprite;

            // Thumb sprite.
            UISlicedSprite thumbSprite = trackSprite.AddUIComponent <UISlicedSprite>();

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

            // Event handler - scroll panel.
            newScrollbar.eventValueChanged += (component, value) => scrollPanel.scrollPosition = new Vector2(0, value);

            // Event handler - mouse wheel (scrollbar and panel).
            parent.eventMouseWheel      += (component, mouseEvent) => newScrollbar.value -= mouseEvent.wheelDelta * newScrollbar.incrementAmount;
            scrollPanel.eventMouseWheel += (component, mouseEvent) => newScrollbar.value -= mouseEvent.wheelDelta * newScrollbar.incrementAmount;

            // Event handler to handle resize of scroll panel.
            scrollPanel.eventSizeChanged += (component, newSize) =>
            {
                newScrollbar.relativePosition += new Vector3(scrollPanel.width, 0);
                newScrollbar.height            = scrollPanel.height;
            };

            // Attach to scroll panel.
            scrollPanel.verticalScrollbar = newScrollbar;

            return(newScrollbar);
        }
Esempio n. 4
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);
        }
Esempio n. 5
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);
            }
        }
Esempio n. 6
0
        public static UIScrollablePanel CreateScrollBox(UIComponent parent, UITextureAtlas atlas_a)
        {
            //code from tmpe
            UIScrollablePanel scrollablePanel = parent.AddUIComponent <UIScrollablePanel>();

            scrollablePanel.backgroundSprite = string.Empty;
            scrollablePanel.size             = new Vector2(130, 240);
            scrollablePanel.relativePosition = new Vector3(0, 0);
            scrollablePanel.clipChildren     = true;

            scrollablePanel.FitTo(parent);
            scrollablePanel.scrollWheelDirection = UIOrientation.Vertical;
            scrollablePanel.builtinKeyNavigation = true;

            UIScrollbar verticalScroll = parent.AddUIComponent <UIScrollbar>();

            verticalScroll.stepSize         = 1;
            verticalScroll.relativePosition = new Vector2(parent.width - 15, 0);
            verticalScroll.orientation      = UIOrientation.Vertical;
            verticalScroll.size             = new Vector2(20, parent.size.y);
            verticalScroll.incrementAmount  = 25;
            verticalScroll.scrollEasingType = EasingType.BackEaseOut;

            scrollablePanel.verticalScrollbar = verticalScroll;

            UISlicedSprite track = verticalScroll.AddUIComponent <UISlicedSprite>();

            track.spriteName       = "ScrollbarTrack";
            track.relativePosition = Vector3.zero;
            track.size             = new Vector2(16, parent.size.y);

            verticalScroll.trackObject = track;

            UISlicedSprite thumb = track.AddUIComponent <UISlicedSprite>();

            thumb.spriteName           = "ScrollbarThumb";
            thumb.autoSize             = true;
            thumb.relativePosition     = Vector3.zero;
            verticalScroll.thumbObject = thumb;

            return(scrollablePanel);
        }
Esempio n. 7
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;
            };
        }
Esempio n. 8
0
        public void Initialize()
        {
            DebugLog.LogToFileOnly("IncompatibleModsPanel initialize");
            isVisible = true;

            backgroundSprite = "MenuPanel3";
            color            = new Color32(75, 75, 135, 255);
            width            = 600;
            height           = 440;

            Vector2 resolution = UIView.GetAView().GetScreenResolution();

            relativePosition = new Vector3(resolution.x / 2 - 300, resolution.y / 3);

            warningIcon                  = AddUIComponent <UISprite>();
            warningIcon.size             = new Vector2(40f, 40f);
            warningIcon.spriteName       = "IconWarning";
            warningIcon.relativePosition = new Vector3(15, 15);
            warningIcon.zOrder           = 0;

            title                  = AddUIComponent <UILabel>();
            title.autoSize         = true;
            title.padding          = new RectOffset(10, 10, 15, 15);
            title.relativePosition = new Vector2(60, 12);
            title.text             = Localization.Get("INCOMPATIBILITY_CHECK_TIP");

            UIPanel panel = AddUIComponent <UIPanel>();

            panel.relativePosition = new Vector2(20, 70);
            panel.size             = new Vector2(565, 320);

            UIScrollablePanel scrollablePanel = panel.AddUIComponent <UIScrollablePanel>();

            scrollablePanel.backgroundSprite = "";
            scrollablePanel.size             = new Vector2(550, 340);
            scrollablePanel.relativePosition = new Vector3(0, 0);
            scrollablePanel.clipChildren     = true;
            if (IncompatibleMods.Count != 0)
            {
                int     acc = 0;
                UIPanel item;
                IncompatibleMods.ForEach((pair) => {
                    item = CreateEntry(ref scrollablePanel, pair.Value, pair.Key);
                    item.relativePosition = new Vector2(0, acc);
                    item.size             = new Vector2(560, 50);
                    acc += 50;
                });
                item = null;
            }
            scrollablePanel.FitTo(panel);
            scrollablePanel.scrollWheelDirection = UIOrientation.Vertical;
            scrollablePanel.builtinKeyNavigation = true;

            UIScrollbar verticalScroll = panel.AddUIComponent <UIScrollbar>();

            verticalScroll.stepSize         = 1;
            verticalScroll.relativePosition = new Vector2(panel.width - 15, 0);
            verticalScroll.orientation      = UIOrientation.Vertical;
            verticalScroll.size             = new Vector2(20, 320);
            verticalScroll.incrementAmount  = 25;
            verticalScroll.scrollEasingType = EasingType.BackEaseOut;

            scrollablePanel.verticalScrollbar = verticalScroll;

            UISlicedSprite track = verticalScroll.AddUIComponent <UISlicedSprite>();

            track.spriteName       = "ScrollbarTrack";
            track.relativePosition = Vector3.zero;
            track.size             = new Vector2(16, 320);

            verticalScroll.trackObject = track;

            UISlicedSprite thumb = track.AddUIComponent <UISlicedSprite>();

            thumb.spriteName           = "ScrollbarThumb";
            thumb.autoSize             = true;
            thumb.relativePosition     = Vector3.zero;
            verticalScroll.thumbObject = thumb;

            closeButton                  = AddUIComponent <UIButton>();
            closeButton.eventClick      += CloseButtonClick;
            closeButton.relativePosition = new Vector3(width - closeButton.width - 45, 15f);
            closeButton.normalBgSprite   = "buttonclose";
            closeButton.hoveredBgSprite  = "buttonclosehover";
            closeButton.pressedBgSprite  = "buttonclosepressed";

            BringToFront();
        }
Esempio n. 9
0
        public override void Start()
        {
            // Generates the following UI:
            // /NAME-----------\ <-- UIDragHandle
            // |---------------|-|
            // |               | |<-- _messageBox, _getscrollablepanel
            // |               | |
            // |---------------| |
            // |               | |<-- _chatText
            // |---------------|-|
            //                 |-|<-- _resize
            //                  ^
            //                  ¦-- _scrollbar, _trackingsprite, _trackingthumb

            backgroundSprite = "GenericPanel";
            name             = "ChatLogPanel";
            color            = new Color32(22, 22, 22, 240);

            // Activates the dragging of the window
            _draghandle      = AddUIComponent <UIDragHandle>();
            _draghandle.name = "ChatLogPanelDragHandle";

            // Grab the view for calculating width and height of game
            UIView view = UIView.GetAView();

            // Center this window in the game
            relativePosition = new Vector3(10.0f, view.fixedHeight - 440.0f);

            width       = 500;
            height      = 310;
            minimumSize = new Vector2(300, 310);

            // Add resize component
            _resize                  = AddUIComponent <UIResizeHandle>();
            _resize.position         = new Vector2((width - 20), (-height + 10));
            _resize.width            = 20f;
            _resize.height           = 20f;
            _resize.color            = new Color32(255, 255, 255, 255);
            _resize.backgroundSprite = "GenericTabPressed";
            _resize.name             = "ChatLogPanelResize";

            // Add scrollable panel component
            _scrollablepanel              = AddUIComponent <UIScrollablePanel>();
            _scrollablepanel.width        = 490;
            _scrollablepanel.height       = 240;
            _scrollablepanel.position     = new Vector2(10, -30);
            _scrollablepanel.clipChildren = true;
            _scrollablepanel.name         = "ChatLogPanelScrollablePanel";

            // Add title
            _title           = AddUIComponent <UILabel>();
            _title.position  = new Vector2(10, -5);
            _title.text      = "Multiplayer Chat";
            _title.textScale = 0.8f;
            _title.autoSize  = true;
            _title.name      = "ChatLogPanelTitle";

            // Add messagebox component
            _messageBox            = _scrollablepanel.AddUIComponent <UILabel>();
            _messageBox.isVisible  = true;
            _messageBox.isEnabled  = true;
            _messageBox.autoSize   = false;
            _messageBox.autoHeight = true;
            _messageBox.width      = 470;
            _messageBox.height     = 240;
            _messageBox.position   = new Vector2(10, -30);
            _messageBox.textScale  = 0.8f;
            _messageBox.wordWrap   = true;
            _messageBox.name       = "ChatLogPanelMessageBox";

            // Add scrollbar component
            _scrollbar                 = AddUIComponent <UIScrollbar>();
            _scrollbar.name            = "Scrollbar";
            _scrollbar.width           = 20f;
            _scrollbar.height          = _scrollablepanel.height;
            _scrollbar.orientation     = UIOrientation.Vertical;
            _scrollbar.pivot           = UIPivotPoint.TopLeft;
            _scrollbar.position        = new Vector2(480, -30);
            _scrollbar.minValue        = 0;
            _scrollbar.value           = 0;
            _scrollbar.incrementAmount = 50;
            _scrollbar.name            = "ChatLogPanelScrollBar";

            // Add scrollbar background sprite component
            _trackingsprite               = _scrollbar.AddUIComponent <UISlicedSprite>();
            _trackingsprite.position      = new Vector2(0, 0);
            _trackingsprite.autoSize      = true;
            _trackingsprite.size          = _trackingsprite.parent.size;
            _trackingsprite.fillDirection = UIFillDirection.Vertical;
            _trackingsprite.spriteName    = "ScrollbarTrack";
            _trackingsprite.name          = "ChatLogPanelTrack";
            _scrollbar.trackObject        = _trackingsprite;
            _scrollbar.trackObject.height = _scrollbar.height;

            // Add scrollbar thumb component
            _trackingthumb               = _scrollbar.AddUIComponent <UISlicedSprite>();
            _trackingthumb.position      = new Vector2(0, 0);
            _trackingthumb.fillDirection = UIFillDirection.Vertical;
            _trackingthumb.autoSize      = true;
            _trackingthumb.width         = _trackingthumb.parent.width - 8;
            _trackingthumb.spriteName    = "ScrollbarThumb";
            _trackingthumb.name          = "ChatLogPanelThumb";

            _scrollbar.thumbObject             = _trackingthumb;
            _scrollbar.isVisible               = true;
            _scrollbar.isEnabled               = true;
            _scrollablepanel.verticalScrollbar = _scrollbar;

            // Add text field component (used for inputting)
            _chatText                      = (UITextField)AddUIComponent(typeof(UITextField));
            _chatText.width                = width;
            _chatText.height               = 30;
            _chatText.position             = new Vector2(0, -280);
            _chatText.atlas                = UiHelpers.GetAtlas("Ingame");
            _chatText.normalBgSprite       = "TextFieldPanelHovered";
            _chatText.builtinKeyNavigation = true;
            _chatText.isInteractive        = true;
            _chatText.readOnly             = false;
            _chatText.horizontalAlignment  = UIHorizontalAlignment.Left;
            _chatText.eventKeyDown        += OnChatKeyDown;
            _chatText.textColor            = new Color32(0, 0, 0, 255);
            _chatText.padding              = new RectOffset(6, 6, 6, 6);
            _chatText.selectionSprite      = "EmptySprite";
            _chatText.name                 = "ChatLogPanelChatText";

            WelcomeChatMessage();

            // Add resizable adjustments
            eventSizeChanged += (component, param) =>
            {
                _scrollablepanel.width  = (width - 30);
                _scrollablepanel.height = (height - 70);
                _messageBox.width       = (width - 30);
                _chatText.width         = width;
                _scrollbar.height       = _scrollablepanel.height;
                _trackingsprite.size    = _trackingsprite.parent.size;
                _chatText.position      = new Vector3(0, (-height + 30));
                _resize.position        = new Vector2((width - 20), (-height + 10));
                _scrollbar.position     = new Vector2((width - 20), (-30));
            };

            base.Start();
        }
Esempio n. 10
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 Initialize()
        {
            Log._Debug("IncompatibleModsPanel initialize");
            if (mainPanel != null)
            {
                mainPanel.OnDestroy();
            }

            isVisible = true;

            mainPanel = AddUIComponent <UIPanel>();
            mainPanel.backgroundSprite = "UnlockingPanel2";
            mainPanel.color            = new Color32(75, 75, 135, 255);
            width            = 600;
            height           = 440;
            mainPanel.width  = 600;
            mainPanel.height = 440;

            Vector2 resolution = UIView.GetAView().GetScreenResolution();

            relativePosition           = new Vector3(resolution.x / 2 - 300, resolution.y / 3);
            mainPanel.relativePosition = Vector3.zero;

            warningIcon                  = mainPanel.AddUIComponent <UISprite>();
            warningIcon.size             = new Vector2(40f, 40f);
            warningIcon.spriteName       = "IconWarning";
            warningIcon.relativePosition = new Vector3(15, 15);
            warningIcon.zOrder           = 0;

            title                  = mainPanel.AddUIComponent <UILabel>();
            title.autoSize         = true;
            title.padding          = new RectOffset(10, 10, 15, 15);
            title.relativePosition = new Vector2(60, 12);
            title.text             = Translation.GetString("Traffic_Manager_detected_incompatible_mods");

            closeButton                  = mainPanel.AddUIComponent <UIButton>();
            closeButton.eventClick      += CloseButtonClick;
            closeButton.relativePosition = new Vector3(width - closeButton.width - 45, 15f);
            closeButton.normalBgSprite   = "buttonclose";
            closeButton.hoveredBgSprite  = "buttonclosehover";
            closeButton.pressedBgSprite  = "buttonclosepressed";

            UIPanel panel = mainPanel.AddUIComponent <UIPanel>();

            panel.relativePosition = new Vector2(20, 70);
            panel.size             = new Vector2(565, 320);

            UIHelper helper = new UIHelper(mainPanel);

            runModsCheckerOnStartup = helper.AddCheckbox(Translation.GetString("Scan_for_known_incompatible_mods_on_startup"), State.GlobalConfig.Instance.Main.ScanForKnownIncompatibleModsAtStartup, RunModsCheckerOnStartup_eventCheckChanged) as UICheckBox;
            runModsCheckerOnStartup.relativePosition = new Vector3(20, height - 30f);

            UIScrollablePanel scrollablePanel = panel.AddUIComponent <UIScrollablePanel>();

            scrollablePanel.backgroundSprite = "";
            scrollablePanel.size             = new Vector2(550, 340);
            scrollablePanel.relativePosition = new Vector3(0, 0);
            scrollablePanel.clipChildren     = true;
            if (IncompatibleMods.Count != 0)
            {
                int     acc = 0;
                UIPanel item;
                IncompatibleMods.ForEach((pair) => {
                    item = CreateEntry(ref scrollablePanel, pair.Value, pair.Key);
                    item.relativePosition = new Vector2(0, acc);
                    item.size             = new Vector2(560, 50);
                    acc += 50;
                });
                item = null;
            }

            scrollablePanel.FitTo(panel);
            scrollablePanel.scrollWheelDirection = UIOrientation.Vertical;
            scrollablePanel.builtinKeyNavigation = true;

            UIScrollbar verticalScroll = panel.AddUIComponent <UIScrollbar>();

            verticalScroll.stepSize         = 1;
            verticalScroll.relativePosition = new Vector2(panel.width - 15, 0);
            verticalScroll.orientation      = UIOrientation.Vertical;
            verticalScroll.size             = new Vector2(20, 320);
            verticalScroll.incrementAmount  = 25;
            verticalScroll.scrollEasingType = EasingType.BackEaseOut;

            scrollablePanel.verticalScrollbar = verticalScroll;

            UISlicedSprite track = verticalScroll.AddUIComponent <UISlicedSprite>();

            track.spriteName       = "ScrollbarTrack";
            track.relativePosition = Vector3.zero;
            track.size             = new Vector2(16, 320);

            verticalScroll.trackObject = track;

            UISlicedSprite thumb = track.AddUIComponent <UISlicedSprite>();

            thumb.spriteName           = "ScrollbarThumb";
            thumb.autoSize             = true;
            thumb.relativePosition     = Vector3.zero;
            verticalScroll.thumbObject = thumb;


            blurEffect = GameObject.Find("ModalEffect").GetComponent <UIComponent>();
            AttachUIComponent(blurEffect.gameObject);
            blurEffect.size             = new Vector2(resolution.x, resolution.y);
            blurEffect.absolutePosition = new Vector3(0, 0);
            blurEffect.SendToBack();
            if (blurEffect != null)
            {
                blurEffect.isVisible = true;
                ValueAnimator.Animate("ModalEffect", delegate(float val) { blurEffect.opacity = val; }, new AnimatedFloat(0f, 1f, 0.7f, EasingType.CubicEaseOut));
            }

            BringToFront();
        }
Esempio n. 12
0
        private void Setup()
        {
            width                = parent.width;
            height               = 122f;
            autoLayout           = true;
            autoLayoutDirection  = LayoutDirection.Horizontal;
            padding              = new RectOffset(10, 0, 0, 0);
            autoLayoutPadding    = new RectOffset(0, 0, 0, 0);
            isInteractive        = true;
            builtinKeyNavigation = true;
            relativePosition     = new Vector2(410.0f, 0.0f);

            ScrollablePanel                      = AddUIComponent <UIScrollablePanel>();
            ScrollablePanel.zOrder               = 0;
            ScrollablePanel.width                = 366f;
            ScrollablePanel.height               = height;
            ScrollablePanel.autoLayout           = true;
            ScrollablePanel.wrapLayout           = true;
            ScrollablePanel.clipChildren         = true;
            ScrollablePanel.backgroundSprite     = "TextFieldPanel";
            ScrollablePanel.autoLayoutDirection  = LayoutDirection.Horizontal;
            ScrollablePanel.autoLayoutPadding    = new RectOffset(2, 2, 2, 2);
            ScrollablePanel.color                = new Color32(255, 255, 255, 255);
            ScrollablePanel.isInteractive        = true;
            ScrollablePanel.builtinKeyNavigation = true;
            ScrollablePanel.scrollWheelDirection = UIOrientation.Vertical;
            ScrollablePanel.scrollWithArrowKeys  = true;
            Dictionary <string, Texture2D> brushes = ForestBrush.Instance.GetBrushBitmaps();

            foreach (KeyValuePair <string, Texture2D> brush in brushes)
            {
                UIButton button = ScrollablePanel.AddUIComponent <UIButton>();
                button.atlas          = ResourceLoader.Atlas;
                button.normalBgSprite = ResourceLoader.GenericPanel;
                if (UserMod.Settings.SelectedBrush != null &&
                    UserMod.Settings.SelectedBrush.Options != null &&
                    UserMod.Settings.SelectedBrush.Options.BitmapID == brush.Key)
                {
                    button.normalBgSprite = string.Empty;
                }
                button.color        = new Color32(170, 170, 170, 255);
                button.hoveredColor = new Color32(210, 210, 210, 255);
                button.focusedColor = Color.white;
                button.pressedColor = Color.white;
                button.size         = new Vector2(57.0f, 57.0f);
                UITextureSprite sprite = button.AddUIComponent <UITextureSprite>();
                sprite.size             = button.size - new Vector2(4.0f, 4.0f);
                sprite.relativePosition = new Vector2(2.0f, 2.0f);
                sprite.texture          = brush.Value;
                button.objectUserData   = brush.Key;
                button.eventClicked    += Button_eventClicked;
                BrushButtons.Add(brush.Key, button);
            }

            UIScrollbar scrollbar = AddUIComponent <UIScrollbar>();

            scrollbar.zOrder          = 1;
            scrollbar.width           = 13f;
            scrollbar.height          = ScrollablePanel.height;
            scrollbar.orientation     = UIOrientation.Vertical;
            scrollbar.minValue        = 0;
            scrollbar.value           = 0;
            scrollbar.incrementAmount = 61;

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

            tracSprite.atlas            = ResourceLoader.Atlas;
            tracSprite.relativePosition = new Vector3(0, 0);
            tracSprite.autoSize         = true;
            tracSprite.size             = tracSprite.parent.size;
            tracSprite.fillDirection    = UIFillDirection.Vertical;
            tracSprite.spriteName       = ResourceLoader.LevelBarBackground;

            scrollbar.trackObject = tracSprite;

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

            thumbSprite.atlas            = ResourceLoader.Atlas;
            thumbSprite.relativePosition = Vector2.zero;
            thumbSprite.fillDirection    = UIFillDirection.Vertical;
            thumbSprite.autoSize         = true;
            thumbSprite.width            = 13f;
            thumbSprite.spriteName       = ResourceLoader.LevelBarForeground;

            scrollbar.thumbObject = thumbSprite;

            ScrollablePanel.verticalScrollbar = scrollbar;

            owner = (ForestBrushPanel)parent;
        }
        // runs only once, do internal connections and setup here
        public override void Start()
        {
            base.Start();

            if (ParentBetterLoadPanelWrapper == null)
            {
                return;
            }

            // setup now that we are in parent
            //this.width = ParentBetterLoadPanelWrapper.width;
            //this.height = ParentBetterLoadPanelWrapper.height - ParentBetterLoadPanelWrapper.TitleSubPanel.height;
            this.isVisible            = true;
            this.isEnabled            = true;
            this.canFocus             = true;
            this.isInteractive        = true;
            this.builtinKeyNavigation = true;
            //this.relativePosition = Vector3.zero;
            this.autoLayout   = false;
            this.clipChildren = false; //temp
            int inset = 5;

            // something like:
            //
            // [Name]^v    [City]^v   [Timestamp]^v
            //
            int thirds       = (int)(this.width / 3f);
            int workingWidth = 0;


            SaveNameLabel.text     = Locale.Get(LocaleID.SAVEGAME_TITLE);// "Save Name";
            SaveNameLabel.autoSize = true;
            //SaveNameLabel.width = thirds;
            SaveNameLabel.relativePosition = new Vector3(workingWidth + inset, inset, 0);

            SortAsc_SaveName.relativePosition     = new Vector3(SaveNameLabel.relativePosition.x + SaveNameLabel.width + inset, SaveNameLabel.relativePosition.y, 0);
            SortAsc_SaveName.normalFgSprite       = "IconUpArrowFocused";
            SortAsc_SaveName.hoveredFgSprite      = "IconDownArrowFocused";
            SortAsc_SaveName.foregroundSpriteMode = UIForegroundSpriteMode.Scale;
            SortAsc_SaveName.size        = new Vector2(16, 16);
            SortAsc_SaveName.eventClick += SortAsc_SaveName_eventClick;

            workingWidth += thirds;

            CityNameLabel.text     = Locale.Get(LocaleID.CITY_NAME); //"City Name";
            CityNameLabel.autoSize = true;
            //CityNameLabel.width = thirds;
            CityNameLabel.relativePosition = new Vector3(workingWidth, SortAsc_SaveName.relativePosition.y, 0);

            SortAsc_CityName.relativePosition     = new Vector3(CityNameLabel.relativePosition.x + CityNameLabel.width + inset, CityNameLabel.relativePosition.y, 0);
            SortAsc_CityName.normalFgSprite       = "IconUpArrowDisabled";
            SortAsc_CityName.hoveredFgSprite      = "IconUpArrowFocused";
            SortAsc_CityName.foregroundSpriteMode = UIForegroundSpriteMode.Scale;
            SortAsc_CityName.size        = new Vector2(16, 16);
            SortAsc_CityName.eventClick += SortAsc_CityName_eventClick;

            workingWidth += thirds;

            TimestampLabel.text     = "Timestamp";
            TimestampLabel.autoSize = true;
            //TimestampLabel.width = thirds;
            TimestampLabel.relativePosition = new Vector3(workingWidth, SortAsc_CityName.relativePosition.y, 0);

            SortAsc_Timestamp.relativePosition     = new Vector3(TimestampLabel.relativePosition.x + TimestampLabel.width + inset, TimestampLabel.relativePosition.y, 0);
            SortAsc_Timestamp.normalFgSprite       = "IconUpArrowDisabled";
            SortAsc_Timestamp.hoveredFgSprite      = "IconUpArrowFocused";
            SortAsc_Timestamp.foregroundSpriteMode = UIForegroundSpriteMode.Scale;
            SortAsc_Timestamp.size        = new Vector2(16, 16);
            SortAsc_Timestamp.eventClick += SortAsc_Timestamp_eventClick;


            SavesPanel.relativePosition = new Vector3(inset, SortAsc_Timestamp.relativePosition.y + SortAsc_Timestamp.height + 2 * inset, 0);
            SavesPanel.backgroundSprite = "GenericPanel";
            SavesPanel.autoSize         = false;
            SavesPanel.width            = (this.width - 25 - 3 * inset);
            SavesPanel.height           = (this.height - SavesPanel.relativePosition.y - inset);

            // hackish, but we want these two to line up
            ParentBetterLoadPanelWrapper.DetailsPanel.relativePosition = new Vector3(ParentBetterLoadPanelWrapper.DetailsPanel.relativePosition.x, SavesPanel.relativePosition.y + this.relativePosition.y, 0);

            SavesPanel.autoLayout    = true;
            SavesPanel.isInteractive = true;
            SavesPanel.clipChildren  = true;
            SavesPanel.useGUILayout  = true;
            SavesPanel.canFocus      = true;

            SavesPanel.autoLayoutDirection  = LayoutDirection.Vertical;
            SavesPanel.autoLayoutPadding    = new RectOffset(0, 0, 1, 1);
            SavesPanel.autoLayoutStart      = LayoutStart.TopLeft;
            SavesPanel.builtinKeyNavigation = true;//conflicts with onkeypress?
            SavesPanel.scrollWithArrowKeys  = false;


            //SavesPanel.freeScroll = true;
            SavesPanel.scrollWheelDirection = UIOrientation.Vertical;

            vertSB = this.AddUIComponent <UIScrollbar>();
            vertSB.useGUILayout = true;

            vertSB.width            = 25;//?
            vertSB.height           = SavesPanel.height;
            vertSB.orientation      = UIOrientation.Vertical;
            vertSB.isInteractive    = true;
            vertSB.isVisible        = true;
            vertSB.enabled          = true;
            vertSB.relativePosition = new Vector3(SavesPanel.width, SavesPanel.relativePosition.y, 0);
            vertSB.minValue         = 0;
            vertSB.value            = 0;
            vertSB.incrementAmount  = 10;
            vertSB.maxValue         = SavesPanel.height;

            tracSprit = vertSB.AddUIComponent <UISlicedSprite>();
            tracSprit.relativePosition = Vector2.zero;
            tracSprit.autoSize         = true;
            tracSprit.size             = vertSB.size;
            tracSprit.fillDirection    = UIFillDirection.Horizontal;
            tracSprit.spriteName       = "ScrollbarTrack";
            vertSB.trackObject         = tracSprit;

            thumbSprit = tracSprit.AddUIComponent <UISlicedSprite>();
            thumbSprit.relativePosition = Vector2.zero;
            thumbSprit.fillDirection    = UIFillDirection.Horizontal;
            thumbSprit.autoSize         = true;
            thumbSprit.width            = tracSprit.width;
            thumbSprit.spriteName       = "ScrollbarThumb";
            vertSB.thumbObject          = thumbSprit;

            SavesPanel.verticalScrollbar = vertSB;
            SavesPanel.scrollWheelAmount = 10;

            Refresh();

            SavesPanel.enabled = true;
        }
        //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));
        }
Esempio n. 16
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);
            }
        }
        /// <summary>
        /// Initialises the dialog, populates it with list of incompatible mods, and adds it to the modal stack.
        /// If the modal stack was previously empty, a blur effect is added over the screen background.
        /// </summary>
        public void Initialize()
        {
            Log._Debug("IncompatibleModsPanel initialize");
            if (mainPanel_ != null)
            {
                mainPanel_.OnDestroy();
            }

            modListChanged_ = false;
            isVisible       = true;

            mainPanel_ = AddUIComponent <UIPanel>();
            mainPanel_.backgroundSprite = "UnlockingPanel2";
            mainPanel_.color            = new Color32(75, 75, 135, 255);
            width             = 600;
            height            = 440;
            mainPanel_.width  = 600;
            mainPanel_.height = 440;

            Vector2 resolution = UIView.GetAView().GetScreenResolution();

            relativePosition            = new Vector3((resolution.x / 2) - 300, resolution.y / 3);
            mainPanel_.relativePosition = Vector3.zero;

            warningIcon_                  = mainPanel_.AddUIComponent <UISprite>();
            warningIcon_.size             = new Vector2(40f, 40f);
            warningIcon_.spriteName       = "IconWarning";
            warningIcon_.relativePosition = new Vector3(15, 15);
            warningIcon_.zOrder           = 0;

            title_                  = mainPanel_.AddUIComponent <UILabel>();
            title_.autoSize         = true;
            title_.padding          = new RectOffset(10, 10, 15, 15);
            title_.relativePosition = new Vector2(60, 12);

            title_.text = TrafficManagerMod.ModName + " " +
                          Translation.ModConflicts.Get("Window.Title:Detected incompatible mods");

            closeButton_                  = mainPanel_.AddUIComponent <UIButton>();
            closeButton_.eventClick      += CloseButtonClick;
            closeButton_.relativePosition = new Vector3(width - closeButton_.width - 45, 15f);
            closeButton_.normalBgSprite   = "buttonclose";
            closeButton_.hoveredBgSprite  = "buttonclosehover";
            closeButton_.pressedBgSprite  = "buttonclosepressed";

            UIPanel panel = mainPanel_.AddUIComponent <UIPanel>();

            panel.relativePosition = new Vector2(20, 70);
            panel.size             = new Vector2(565, 320);

            UIHelper helper        = new UIHelper(mainPanel_);
            string   checkboxLabel = Translation.ModConflicts.Get("Checkbox:Scan for known incompatible mods on startup");

            runModsCheckerOnStartup_ = helper.AddCheckbox(
                checkboxLabel,
                GlobalConfig.Instance.Main.ScanForKnownIncompatibleModsAtStartup,
                RunModsCheckerOnStartup_eventCheckChanged) as UICheckBox;
            runModsCheckerOnStartup_.relativePosition = new Vector3(20, height - 30f);

            UIScrollablePanel scrollablePanel = panel.AddUIComponent <UIScrollablePanel>();

            scrollablePanel.backgroundSprite    = string.Empty;
            scrollablePanel.size                = new Vector2(550, 340);
            scrollablePanel.relativePosition    = new Vector3(0, 0);
            scrollablePanel.clipChildren        = true;
            scrollablePanel.autoLayoutStart     = LayoutStart.TopLeft;
            scrollablePanel.autoLayoutDirection = LayoutDirection.Vertical;
            scrollablePanel.autoLayout          = true;

            // Populate list of incompatible mods
            if (IncompatibleMods.Count != 0)
            {
                IncompatibleMods.ForEach(
                    pair => { CreateEntry(ref scrollablePanel, pair.Value, pair.Key); });
            }

            scrollablePanel.FitTo(panel);
            scrollablePanel.scrollWheelDirection = UIOrientation.Vertical;
            scrollablePanel.builtinKeyNavigation = true;

            UIScrollbar verticalScroll = panel.AddUIComponent <UIScrollbar>();

            verticalScroll.stepSize         = 1;
            verticalScroll.relativePosition = new Vector2(panel.width - 15, 0);
            verticalScroll.orientation      = UIOrientation.Vertical;
            verticalScroll.size             = new Vector2(20, 320);
            verticalScroll.incrementAmount  = 25;
            verticalScroll.scrollEasingType = EasingType.BackEaseOut;

            scrollablePanel.verticalScrollbar = verticalScroll;

            UISlicedSprite track = verticalScroll.AddUIComponent <UISlicedSprite>();

            track.spriteName       = "ScrollbarTrack";
            track.relativePosition = Vector3.zero;
            track.size             = new Vector2(16, 320);

            verticalScroll.trackObject = track;

            UISlicedSprite thumb = track.AddUIComponent <UISlicedSprite>();

            thumb.spriteName           = "ScrollbarThumb";
            thumb.autoSize             = true;
            thumb.relativePosition     = Vector3.zero;
            verticalScroll.thumbObject = thumb;

            // Add blur effect if applicable
            blurEffect_ = GameObject.Find("ModalEffect").GetComponent <UIComponent>();
            AttachUIComponent(blurEffect_.gameObject);
            blurEffect_.size             = new Vector2(resolution.x, resolution.y);
            blurEffect_.absolutePosition = new Vector3(0, 0);
            blurEffect_.SendToBack();
            blurEffect_.eventPositionChanged += OnBlurEffectPositionChange;
            blurEffect_.eventZOrderChanged   += OnBlurEffectZOrderChange;
            blurEffect_.opacity   = 0;
            blurEffect_.isVisible = true;
            ValueAnimator.Animate(
                "ModalEffect",
                val => blurEffect_.opacity = val,
                new AnimatedFloat(0f, 1f, 0.7f, EasingType.CubicEaseOut));

            // Make sure modal dialog is in front of all other UI
            BringToFront();
        }
        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");
        }