Esempio n. 1
0
        public static UICheckBox MakeCheckbox(UIPanel panel, string name, string text, Vector2 position, bool value,
                                              CheckboxSetValue setValue)
        {
            var label = panel.AddUIComponent <UILabel>();

            label.name             = name;
            label.text             = text;
            label.relativePosition = position;
            label.textScale        = 0.8f;
            label.textColor        = Color.black;

            var checkbox = panel.AddUIComponent <UICheckBox>();

            checkbox.AlignTo(label, UIAlignAnchor.TopLeft);
            checkbox.relativePosition = new Vector3(checkbox.relativePosition.x + 274.0f, checkbox.relativePosition.y - 2.0f);
            checkbox.size             = new Vector2(16.0f, 16.0f);
            checkbox.isVisible        = true;
            checkbox.canFocus         = true;
            checkbox.isInteractive    = true;

            if (setValue != null)
            {
                checkbox.eventCheckChanged += (component, newValue) =>
                {
                    setValue(newValue);
                };
            }

            var uncheckSprite = checkbox.AddUIComponent <UISprite>();

            uncheckSprite.size             = new Vector2(16.0f, 16.0f);
            uncheckSprite.relativePosition = new Vector3(0, 0);
            uncheckSprite.spriteName       = "check-unchecked";
            uncheckSprite.isVisible        = true;

            var checkSprite = checkbox.AddUIComponent <UISprite>();

            checkSprite.size             = new Vector2(16.0f, 16.0f);
            checkSprite.relativePosition = new Vector3(0, 0);
            checkSprite.spriteName       = "check-checked";

            checkbox.isChecked        = value;
            checkbox.checkedBoxObject = checkSprite;
            return(checkbox);
        }
Esempio n. 2
0
        private void SetupSizePanel()
        {
            layoutPanelSize                             = AddUIComponent <UIPanel>();
            layoutPanelSize.size                        = new Vector2(width, 10);
            layoutPanelSize.autoLayout                  = true;
            layoutPanelSize.autoLayoutDirection         = LayoutDirection.Horizontal;
            layoutPanelSize.autoFitChildrenHorizontally = true;
            layoutPanelSize.autoLayoutPadding           = new RectOffset(10, 0, 0, 0);
            layoutPanelSize.zOrder                      = 0;

            //size slider
            sizeLabel                   = layoutPanelSize.AddUIComponent <UILabel>();
            sizeLabel.text              = Translation.Instance.GetTranslation("FOREST-BRUSH-BRUSH-OPTIONS-SIZE");
            sizeLabel.textScale         = Constants.UITextScale;
            sizeLabel.autoSize          = false;
            sizeLabel.width             = 80f;
            sizeLabel.disabledTextColor = new Color32(100, 100, 100, 255);
            sizeLabel.textAlignment     = UIHorizontalAlignment.Left;
            sizeLabel.verticalAlignment = UIVerticalAlignment.Middle;
            sizeLabel.zOrder            = 0;

            sizeSlider                    = layoutPanelSize.AddUIComponent <UISlider>();
            sizeSlider.atlas              = ResourceLoader.Atlas;
            sizeSlider.size               = new Vector2(400f - sizeLabel.width - 30f, 5f);
            sizeSlider.color              = new Color32(0, 0, 0, 255);
            sizeSlider.disabledColor      = new Color32(190, 190, 190, 255);
            sizeSlider.minValue           = 1f;
            sizeSlider.maxValue           = ForestBrush.Instance.Tool.Tweaker.MaxSize;
            sizeSlider.stepSize           = 1f;
            sizeSlider.value              = UserMod.Settings.SelectedBrush.Options.Size;
            sizeSlider.scrollWheelAmount  = 1f;
            sizeSlider.eventValueChanged += SizeSlider_eventValueChanged;
            sizeSlider.eventMouseUp      += SizeSlider_eventMouseUp;
            sizeSlider.backgroundSprite   = ResourceLoader.WhiteRect;
            sizeSlider.tooltip            = UserMod.Settings.SelectedBrush.Options.Size.ToString();
            sizeSlider.pivot              = UIPivotPoint.TopLeft;
            sizeSlider.zOrder             = 1;

            UISprite thumb = sizeSlider.AddUIComponent <UISprite>();

            thumb.atlas            = ResourceLoader.Atlas;
            thumb.size             = new Vector2(20, 20);
            thumb.spriteName       = ResourceLoader.IconPolicyForest;
            sizeSlider.thumbObject = thumb;
        }
Esempio n. 3
0
        private static void AddBar(ref UIPanel page)
        {
            var bar = page.AddUIComponent <UISprite>();

            bar.width      = bar.parent.width;
            bar.height     = 3;
            bar.spriteName = "RocketProgressBarFill";
            bar.color      = Helper.RGB(80, 80, 80);
        }
Esempio n. 4
0
        public override void Start()
        {
            headerpanel                  = (UIPanel)this.AddUIComponent(typeof(UIPanel));
            headerpanel.height           = 20;
            headerpanel.backgroundSprite = "GenericPanel";
            headerpanel.color            = new Color32(0, 0, 100, 200);

            headertext      = headerpanel.AddUIComponent <UILabel>();
            headertext.text = "CSL Stats Panel - Configuration, v" + System.Reflection.Assembly.GetAssembly(typeof(CSLStatsPanelMod)).GetName().Version;;
            headertext.CenterToParent();

            myConfigWindowPanel       = (ConfigSettingsWindow)this.AddUIComponent(typeof(ConfigSettingsWindow));
            myConfigWindowPanel.width = this.width;
            myConfigWindowPanel.name  = "CSLStatsConfigurationPanel";
            myConfigWindowPanel.color = new Color32(0, 0, 0, 255);
            //myConfigWindowPanel.eventStatsConfigChanged += new ConfigSettingsWindow.eventStatsConfigChangedHandler(myConfigWindowPanel_eventStatsConfigChanged);
            //myConfigWindowPanel.eventModeConfigChanged += new ConfigSettingsWindow.eventConfigModeChangedHandler(myConfigWindowPanel_eventModeConfigChanged);
            //myConfigWindowPanel.eventConfigReset += new ConfigSettingsWindow.eventConfigResetHandler(myConfigWindowPanel_eventConfigReset);
            //myConfigWindowPanel.eventConfigTransparencyChanged += new ConfigSettingsWindow.eventConfigTransparencyChangeHandler(myConfigWindowPanel_eventConfigTransparencyChanged);
            myresizepanel                  = (UIResizeHandle)this.AddUIComponent(typeof(UIResizeHandle));
            myresizepanel.name             = "CSLStatsConfigurationResizePanel";
            myresizepanel.height           = 20;
            myresizepanel.color            = new Color32(0, 0, 100, 200);
            myresizepanel.backgroundSprite = "GenericPanel";
            //myresizepanel.anchor = UIAnchorStyle.Bottom;
            //myresizepanel.anchor = UIAnchorStyle.Right;
            //resizelabel = myresizepanel.AddUIComponent<UILabel>();


            var CloseButton = (UIButton)myresizepanel.AddUIComponent(typeof(UIButton));

            CloseButton.width             = 125;
            CloseButton.height            = 20;
            CloseButton.normalBgSprite    = "ButtonMenu";
            CloseButton.hoveredBgSprite   = "ButtonMenuHovered";
            CloseButton.focusedBgSprite   = "ButtonMenuFocused";
            CloseButton.pressedBgSprite   = "ButtonMenuPressed";
            CloseButton.textColor         = new Color32(186, 217, 238, 0);
            CloseButton.disabledTextColor = new Color32(7, 7, 7, 255);
            CloseButton.hoveredTextColor  = new Color32(7, 132, 255, 255);
            CloseButton.focusedTextColor  = new Color32(255, 255, 255, 255);
            CloseButton.pressedTextColor  = new Color32(30, 30, 44, 255);
            CloseButton.color             = new Color32(CloseButton.color.r, CloseButton.color.g, CloseButton.color.b, 255);

            //CloseButton.transformPosition = new Vector3(1.2f, -0.93f);
            CloseButton.BringToFront();
            CloseButton.text        = "Close";
            CloseButton.eventClick += new MouseEventHandler(CloseButton_eventClick);

            myresizepanel.FitChildrenVertically();
            this.CenterToParent();

            base.Start();
            OnSizeChanged();
            this.Update();
            this.BringToFront();
        }
Esempio n. 5
0
        private void SetupStrengthPanel()
        {
            layoutPanelStrength                             = AddUIComponent <UIPanel>();
            layoutPanelStrength.size                        = new Vector2(width, 10);
            layoutPanelStrength.autoLayout                  = true;
            layoutPanelStrength.autoLayoutDirection         = LayoutDirection.Horizontal;
            layoutPanelStrength.autoFitChildrenHorizontally = true;
            layoutPanelStrength.autoLayoutPadding           = new RectOffset(10, 0, 0, 0);
            layoutPanelStrength.zOrder                      = 1;

            strengthLabel                   = layoutPanelStrength.AddUIComponent <UILabel>();
            strengthLabel.text              = Translation.Instance.GetTranslation("FOREST-BRUSH-BRUSH-OPTIONS-STRENGTH");
            strengthLabel.textScale         = Constants.UITextScale;
            strengthLabel.autoSize          = false;
            strengthLabel.width             = 80f;
            strengthLabel.disabledTextColor = new Color32(100, 100, 100, 255);
            strengthLabel.textAlignment     = UIHorizontalAlignment.Left;
            strengthLabel.verticalAlignment = UIVerticalAlignment.Middle;
            strengthLabel.zOrder            = 0;

            strengthSlider                    = layoutPanelStrength.AddUIComponent <UISlider>();
            strengthSlider.atlas              = ResourceLoader.Atlas;
            strengthSlider.size               = new Vector2(400f - strengthLabel.width - 30f, 5f);
            strengthSlider.color              = new Color32(0, 0, 0, 255);
            strengthSlider.disabledColor      = new Color32(190, 190, 190, 255);
            strengthSlider.minValue           = 0.01f;
            strengthSlider.maxValue           = 1f;
            strengthSlider.stepSize           = 0.01f;
            strengthSlider.value              = UserMod.Settings.SelectedBrush.Options.Strength;
            strengthSlider.scrollWheelAmount  = 0.01f;
            strengthSlider.tooltip            = Math.Round(strengthSlider.value * 100, 1, MidpointRounding.AwayFromZero) + "%";
            strengthSlider.eventValueChanged += StrengthSlider_eventValueChanged;
            strengthSlider.eventMouseUp      += StrengthSlider_eventMouseUp;
            strengthSlider.backgroundSprite   = ResourceLoader.WhiteRect;
            strengthSlider.zOrder             = 1;
            strengthSlider.pivot              = UIPivotPoint.TopLeft;

            UISprite thumb1 = strengthSlider.AddUIComponent <UISprite>();

            thumb1.atlas               = ResourceLoader.Atlas;
            thumb1.size                = new Vector2(20, 20);
            thumb1.spriteName          = ResourceLoader.IconPolicyForest;
            strengthSlider.thumbObject = thumb1;
        }
Esempio n. 6
0
        public static UIDropDown MakeDropDown(UIPanel panel, float y, string txt, string[] items, ColossalFramework.UI.PropertyChangedEventHandler <int> eventClick)
        {
            UILabel    label = panel.AddUIComponent <UILabel>();
            UIDropDown dd    = panel.AddUIComponent <UIDropDown>();
            UIButton   ddb   = panel.AddUIComponent <UIButton>();

            label.name             = txt + "Label";
            label.text             = txt;
            label.relativePosition = new Vector3(15.0f, y);
            label.textScale        = 0.8f;
            y += 18;

            ddb.normalFgSprite      = "ButtonPlay"; // PropertyGroupOpen
            ddb.width               = 15;
            ddb.height              = 16;
            ddb.verticalAlignment   = UIVerticalAlignment.Middle;
            ddb.horizontalAlignment = UIHorizontalAlignment.Right;
            ddb.relativePosition    = new Vector3(14, y + 2);

            dd.triggerButton = ddb;

            dd.name             = txt;
            dd.size             = new Vector2(200.0f, 20.0f);
            dd.textScale        = 0.8f;
            dd.items            = items;
            dd.relativePosition = new Vector3(33, y);
            dd.isVisible        = true;
            dd.enabled          = true;
            dd.isInteractive    = true;
            dd.listBackground   = "Servicebar"; //"BrushBackgroundDisabled";
            dd.itemHover        = "ListItemHover";
            dd.itemHighlight    = "ListItemHighlight";
            dd.normalBgSprite   = "BrushBackgroundDisabled";
            dd.width            = 200;
            dd.height           = 20;
            dd.listWidth        = 200;
            dd.itemHeight       = 20;
            dd.itemPadding      = new RectOffset(4, 20, 4, 4);
            dd.textFieldPadding = new RectOffset(4, 20, 4, 4);
            dd.selectedIndex    = 0;

            dd.eventSelectedIndexChanged += eventClick;
            return(dd);
        }
Esempio n. 7
0
        private UILabel AddShortcutDescriptionText(UIPanel parent, Vector2 position)
        {
            var label = parent.AddUIComponent <UILabel>();

            label.textColor        = OnScreenDisplayPanel.PALETTE_SHORTCUT_TEXT;
            label.text             = text_;
            label.autoHeight       = true;
            label.relativePosition = position;
            return(label);
        }
Esempio n. 8
0
        UIPanel drawstatsconfigpanel(StatisticsCategoryWrapper scw)
        {
            UIPanel catsubpanel = this.AddUIComponent <UIPanel>();

            catpanels.Add(catsubpanel);
            catsubpanel.autoLayout          = true;
            catsubpanel.wrapLayout          = true;
            catsubpanel.autoLayoutDirection = LayoutDirection.Horizontal;
            catsubpanel.width            = this.width - 5;
            catsubpanel.backgroundSprite = "GenericPanel";
            //catsubpanel.height = 15;
            catsubpanel.autoLayoutPadding = new RectOffset(3, 3, 3, 3);

            bool     catisChecked = CSLStatsPanelConfigSettings.isCatActive(scw.m_category);
            UIButton catname      = catsubpanel.AddUIComponent <UIButton>();

            catname.textColor = (catisChecked) ? selectedcolor : deselectedcolor;
            setcommonbuttonprops(catname);
            catname.autoSize  = true;
            catname.text      = scw.m_category;
            catname.name      = scw.m_category;
            catsubpanel.color = (catisChecked) ? selectedcolor : deselectedcolor;

            catsubpanel.autoSize = true;
            catname.eventClick  += new MouseEventHandler(catsubpanel_eventClick);

            for (int x = 0; x < scw.m_scwlist.Count(); x++)
            {
                bool     isStatActive = CSLStatsPanelConfigSettings.isStatActive(scw.m_category, scw.m_scwlist[x].m_desc);
                UIButton statname     = catsubpanel.AddUIComponent <UIButton>();
                statname.name = scw.m_category + "|" + scw.m_scwlist[x].m_desc;

                statname.color     = (isStatActive) ? selectedcolor : deselectedcolor;
                statname.textColor = (isStatActive) ? selectedcolor : deselectedcolor;
                setcommonbuttonprops(statname);
                statname.text        = scw.m_scwlist[x].m_desc;
                statname.eventClick += new MouseEventHandler(statsubpanel_eventClick);
            }
            catsubpanel.FitChildrenVertically();


            return(catsubpanel);
        }
Esempio n. 9
0
        private static void CreateTabStrip(UIPanel mainPanel)
        {
            TabPanels = new List <CustomUIPanel>();

            TabStrip = mainPanel.AddUIComponent <TabStrip>();
            TabStrip.SelectedTabChanged += OnSelectedTabChanged;
            TabStrip.SelectedTab         = -1;
            TabStrip.width             = mainPanel.width - mainPanel.autoLayoutPadding.horizontal;
            TabStrip.eventSizeChanged += (UIComponent component, Vector2 value) => TabStripSizeChanged(mainPanel);
        }
Esempio n. 10
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));
        }
        /// <summary>
        /// Sets up the building scroll panel.
        /// </summary>
        /// <param name="parent"></param>
        /// <returns></returns>
        private void AddScrollPanel()
        {
            scrollPanel = buildingPanel.AddUIComponent <UIScrollPanel>();

            // Basic setup.
            scrollPanel.name       = "RICOScrollPanel";
            scrollPanel.autoLayout = false;
            scrollPanel.autoReset  = false;
            scrollPanel.autoSize   = false;
            scrollPanel.template   = "PlaceableItemTemplate";
            scrollPanel.itemWidth  = 109f;
            scrollPanel.itemHeight = 100f;
            scrollPanel.canSelect  = true;

            // Size and position.
            scrollPanel.size             = new Vector2(763, 100);
            scrollPanel.relativePosition = new Vector3(48, 5);

            // 'Left' and 'Right' buttons to scroll panel.
            scrollPanel.leftArrow  = ArrowButton("ArrowLeft", 16f);
            scrollPanel.rightArrow = ArrowButton("ArrowRight", 812f);

            // Event handler on grandparent size change.
            buildingPanel.parent.eventSizeChanged += (control, size) =>
            {
                // If we're visible, resize to match the new grandparent size.
                if (scrollPanel.isVisible)
                {
                    // New size.
                    scrollPanel.size = new Vector2((int)((size.x - 40f) / scrollPanel.itemWidth) * scrollPanel.itemWidth, (int)(size.y / scrollPanel.itemHeight) * scrollPanel.itemHeight);

                    // New relative position.
                    scrollPanel.relativePosition = new Vector3(scrollPanel.relativePosition.x, Mathf.Floor((size.y - scrollPanel.height) / 2));

                    // Move right arrow if it exists.
                    if (scrollPanel.rightArrow != null)
                    {
                        scrollPanel.rightArrow.relativePosition = new Vector3(scrollPanel.relativePosition.x + scrollPanel.width, 0);
                    }
                }
            };
        }
        protected void CreateDragHandle(string title)
        {
            UIPanel dragHandlePanel = AddUIComponent <UIPanel>();

            dragHandlePanel.atlas            = atlas;
            dragHandlePanel.backgroundSprite = "GenericPanel";
            dragHandlePanel.width            = width;
            dragHandlePanel.height           = 20;
            dragHandlePanel.opacity          = 100;
            dragHandlePanel.color            = new Color32(21, 140, 34, 255);
            dragHandlePanel.relativePosition = Vector3.zero;

            UIDragHandle dragHandle = dragHandlePanel.AddUIComponent <UIDragHandle>();

            dragHandle.width            = width;
            dragHandle.height           = dragHandle.parent.height;
            dragHandle.relativePosition = Vector3.zero;
            dragHandle.target           = this;

            UILabel titleLabel = dragHandlePanel.AddUIComponent <UILabel>();

            titleLabel.relativePosition = new Vector3()
            {
                x = 50, y = 3, z = 0
            };
            titleLabel.textAlignment = UIHorizontalAlignment.Center;
            titleLabel.text          = title;
            titleLabel.isInteractive = false;

            UIButton headerIcon = dragHandlePanel.AddUIComponent <UIButton>();

            headerIcon.atlas            = UIHelper.GenerateLinearAtlas("MOM_HeaderIconAtlas", UIHelper.HeaderIconTexture, 1, new string[] { UIHelper.HeaderIconTexture.name });
            headerIcon.relativePosition = new Vector3()
            {
                x = 5, y = -10
            };
            headerIcon.width          = 40;
            headerIcon.height         = 40;
            headerIcon.normalFgSprite = UIHelper.HeaderIconTexture.name;

            height += 2 * dragHandle.height;
        }
Esempio n. 13
0
        /// <summary>
        /// Creates the panel object in-game and displays it.
        /// </summary>
        private static void Create()
        {
            try
            {
                // We're now visible - create our gameobject, and give it a unique name for easy finding with ModTools.
                optionsGameObject = new GameObject("BOBOptionsPanel");

                // Attach to game options panel.
                optionsGameObject.transform.parent = optionsPanel.transform;

                // Create a base panel attached to our game object, perfectly overlaying the game options panel.
                UIPanel basePanel = optionsGameObject.AddComponent <UIPanel>();
                basePanel.absolutePosition = optionsPanel.absolutePosition;
                basePanel.width            = optionsPanel.width;
                basePanel.height           = 725f;

                // Add tabstrip.
                UITabstrip tabStrip = basePanel.AddUIComponent <UITabstrip>();
                tabStrip.relativePosition = new Vector3(0, 0);
                tabStrip.width            = basePanel.width;
                tabStrip.height           = basePanel.height;

                // Tab container (the panels underneath each tab).
                UITabContainer tabContainer = basePanel.AddUIComponent <UITabContainer>();
                tabContainer.relativePosition = new Vector3(0, 30f);
                tabContainer.width            = tabStrip.width;
                tabContainer.height           = tabStrip.height;
                tabStrip.tabPages             = tabContainer;

                // Add tabs and panels.
                new GeneralOptionsPanel(tabStrip, 0);
                new ConfigurationsPanel(tabStrip, 1);
                new RuiningOptionsPanel(tabStrip, 2);

                // Disable hotkey while options panel is open.
                UIThreading.Operating = false;
            }
            catch (Exception e)
            {
                Logging.LogException(e, "exception creating options panel");
            }
        }
Esempio n. 14
0
        /// <summary>
        /// Create read-only display of a key binding
        /// </summary>
        /// <param name="parent">The panel to host it</param>
        /// <param name="showKey">The key to display</param>
        public void CreateKeybindText(UIPanel parent, SavedInputKey showKey, float widthFraction)
        {
            var label = parent.AddUIComponent <UILabel>();

            label.autoSize          = false;
            label.size              = new Vector2(ROW_WIDTH * widthFraction, ROW_HEIGHT);
            label.text              = Keybind.ToLocalizedString(showKey);
            label.verticalAlignment = UIVerticalAlignment.Middle;
            label.textAlignment     = UIHorizontalAlignment.Center;
            label.textColor         = new Color32(128, 128, 128, 255); // grey
        }
Esempio n. 15
0
        private UIDragHandle CreateDragHandle(UIPanel parent)
        {
            UIDragHandle dragHandle = parent.AddUIComponent <UIDragHandle>();

            dragHandle.name             = "DragHandle";
            dragHandle.width            = parent.width - 40f; // Make room for close button?
            dragHandle.height           = 40f;
            dragHandle.relativePosition = Vector3.zero;
            dragHandle.target           = parent;
            return(dragHandle);
        }
Esempio n. 16
0
        public void CreateResetMenuPosition(UIPanel parent)
        {
            var btn = parent.AddUIComponent <UIButton>();

            btn.size             = new Vector2(ROW_WIDTH * 0.3f, ROW_HEIGHT);
            btn.text             = "Reset Menu Position";
            btn.hoveredTextColor = new Color32(128, 128, 255, 255);
            btn.pressedTextColor = new Color32(192, 192, 255, 255);
            btn.normalBgSprite   = "ButtonMenu";
            btn.eventClick      += OnResetClicked;
        }
Esempio n. 17
0
        private void CreateLightColorPanel()
        {
            UIPanel lightPanel = AddUIComponent <UIPanel>();

            lightPanel.size                  = new Vector2(12.0f, 30.0f);
            lightColorPanel                  = lightPanel.AddUIComponent <UIPanel>();
            lightColorPanel.size             = new Vector2(12.0f, 12.0f);
            lightColorPanel.atlas            = Resources.DefaultAtlas;
            lightColorPanel.backgroundSprite = "PieChartWhiteFg";
            lightColorPanel.relativePosition = new Vector2(0.0f, 9.0f);
        }
Esempio n. 18
0
        public static void Initialize()
        {
            Dispose();


            var uiView = UIView.GetAView();

            _panel                  = uiView.AddUIComponent(typeof(UIPanel)) as UIPanel;
            _panel.name             = "WildlifeSpawnerPanel";
            _panel.backgroundSprite = "MenuPanel2";
            _panel.size             = new Vector2(100 + 200 + 12, 72);
            _panel.isVisible        = false;
            _panel.relativePosition = new Vector3(0, 874);
            UIUtil.SetupTitle("Wildlife Spawn Point", _panel);

            var collideLabel = _panel.AddUIComponent <UILabel>();

            collideLabel.text             = "Animal";
            collideLabel.width            = 100;
            collideLabel.height           = 24;
            collideLabel.textScale        = 0.8f;
            collideLabel.relativePosition = new Vector2(4, 44);

            _animalDropDown                  = UIUtil.CreateDropDown(_panel);
            _animalDropDown.width            = 200;
            _animalDropDown.height           = 24;
            _animalDropDown.listWidth        = 200;
            _animalDropDown.tooltip          = "Select animal";
            _animalDropDown.relativePosition = new Vector2(8 + 100, 44);
            _animalDropDown.items            = new[] { "Random" }.Concat(WildlifeSpawnManager.instance.Animals.m_buffer.Select(index =>
            {
                var prefab = PrefabCollection <CitizenInfo> .GetPrefab(index);
                return(prefab != null ? prefab.name : "");
            }).Where(s => !string.IsNullOrEmpty(s))).ToArray();
            _animalDropDown.listPosition = UIDropDown.PopupListPosition.Above;

            Reset();

            _plopButton             = UIView.GetAView().FindUIComponent <UITabstrip>("MainToolstrip").AddUIComponent <UIButton>(); //main button on in game tool strip.
            _plopButton.size        = new Vector2(43, 49);
            _plopButton.eventClick += (component, param) =>
            {
                var tool = ToolsModifierControl.SetTool <BuildingTool>();
                tool.m_prefab = PrefabCollection <BuildingInfo> .FindLoaded("Wildlife Spawn Point");
            };
            _plopButton.normalBgSprite   = "ToolbarIconGroup6Normal";
            _plopButton.normalFgSprite   = "IconPolicyBigBusiness";
            _plopButton.focusedBgSprite  = "ToolbarIconGroup6Focused";
            _plopButton.hoveredBgSprite  = "ToolbarIconGroup6Hovered";
            _plopButton.pressedBgSprite  = "ToolbarIconGroup6Pressed";
            _plopButton.disabledBgSprite = "ToolbarIconGroup6Disabled";
            _plopButton.name             = "WildlifeSpawnPointPlopButton";
            _plopButton.tooltip          = "Place animal spawn point";
        }
Esempio n. 19
0
        private static UICheckBox MakeCheckbox(UIPanel panel, string name, string text, float y, bool value,
                                               CheckboxSetValue setValue)
        {
            var label = panel.AddUIComponent <UILabel>();

            label.name             = name;
            label.text             = text;
            label.relativePosition = new Vector3(4.0f, y);
            label.textScale        = 0.8f;

            var checkbox = panel.AddUIComponent <UICheckBox>();

            checkbox.AlignTo(label, UIAlignAnchor.TopLeft);
            checkbox.relativePosition = new Vector3(checkbox.relativePosition.x + 332.0f, checkbox.relativePosition.y - 6.0f);
            checkbox.size             = new Vector2(20.0f, 20.0f);
            checkbox.isVisible        = true;
            checkbox.canFocus         = true;
            checkbox.isInteractive    = true;

            checkbox.eventCheckChanged += (component, newValue) =>
            {
                setValue(newValue);
            };

            var uncheckSprite = checkbox.AddUIComponent <UISprite>();

            uncheckSprite.size             = new Vector2(20.0f, 20.0f);
            uncheckSprite.relativePosition = new Vector3(0, 0);
            uncheckSprite.spriteName       = "check-unchecked";
            uncheckSprite.isVisible        = true;

            var checkSprite = checkbox.AddUIComponent <UISprite>();

            checkSprite.size             = new Vector2(20.0f, 20.0f);
            checkSprite.relativePosition = new Vector3(0, 0);
            checkSprite.spriteName       = "check-checked";

            checkbox.isChecked        = value;
            checkbox.checkedBoxObject = checkSprite;
            return(checkbox);
        }
Esempio n. 20
0
        /// <summary>
        /// Adds a slider with a descriptive text label above and an automatically updating value label immediately to the right.
        /// </summary>
        /// <param name="parent">Panel to add the control to</param>
        /// <param name="text">Descriptive label text</param>
        /// <param name="min">Slider minimum value</param>
        /// <param name="max">Slider maximum value</param>
        /// <param name="step">Slider minimum step</param>
        /// <param name="defaultValue">Slider initial value</param>
        /// <param name="eventCallback">Slider event handler</param>
        /// <param name="width">Slider width (excluding value label to right) (default 600)</param>
        /// <returns>New UI slider with attached labels</returns>
        internal static UISlider AddSliderWithValue(UIComponent parent, string text, float min, float max, float step, float defaultValue, OnValueChanged eventCallback, float width = 600f, float textScale = 1f)
        {
            // Add slider component.
            UIPanel sliderPanel = parent.AttachUIComponent(UITemplateManager.GetAsGameObject("OptionsSliderTemplate")) as UIPanel;

            sliderPanel.Find <UILabel>("Label").text = text;

            // Label.
            UILabel sliderLabel = sliderPanel.Find <UILabel>("Label");

            sliderLabel.autoHeight       = true;
            sliderLabel.width            = width;
            sliderLabel.anchor           = UIAnchorStyle.Left | UIAnchorStyle.Top;
            sliderLabel.relativePosition = Vector3.zero;
            sliderLabel.relativePosition = Vector3.zero;
            sliderLabel.textScale        = textScale;
            sliderLabel.text             = text;

            // Slider configuration.
            UISlider newSlider = sliderPanel.Find <UISlider>("Slider");

            newSlider.minValue = min;
            newSlider.maxValue = max;
            newSlider.stepSize = step;
            newSlider.value    = defaultValue;

            // Move default slider position to match resized label.
            sliderPanel.autoLayout     = false;
            newSlider.anchor           = UIAnchorStyle.Left | UIAnchorStyle.Top;
            newSlider.relativePosition = PositionUnder(sliderLabel);
            newSlider.width            = width;

            // Increase height of panel to accomodate it all plus some extra space for margin.
            sliderPanel.autoSize = false;
            sliderPanel.width    = width + 50f;
            sliderPanel.height   = newSlider.relativePosition.y + newSlider.height + 15f;

            // Value label.
            UILabel valueLabel = sliderPanel.AddUIComponent <UILabel>();

            valueLabel.name             = "ValueLabel";
            valueLabel.text             = newSlider.value.ToString();
            valueLabel.relativePosition = PositionRightOf(newSlider, 8f, 1f);

            // Event handler to update value label.
            newSlider.eventValueChanged += (component, value) =>
            {
                valueLabel.text = value.ToString();
                eventCallback(value);
            };

            return(newSlider);
        }
Esempio n. 21
0
        /// <summary>
        /// Adds options tab to tabstrip.
        /// </summary>
        /// <param name="tabStrip">Tab strip to add to</param>
        /// <param name="tabIndex">Index number of tab</param>
        internal CalculationsTabBase(UITabstrip parentTabStrip, int tabIndex)
        {
            // Add tab and helper.
            UIPanel panel = PanelUtils.AddIconTab(parentTabStrip, Tooltip, tabIndex, IconNames, AtlasNames, TabWidth);

            // Add tabstrip.
            UITabstrip childTabStrip = panel.AddUIComponent <UITabstrip>();

            childTabStrip.relativePosition = new Vector3(0, 0);
            childTabStrip.size             = new Vector2(744f, 725f);

            // Tab container (the panels underneath each tab).
            UITabContainer tabContainer = panel.AddUIComponent <UITabContainer>();

            tabContainer.relativePosition = new Vector3(0, 30f);
            tabContainer.size             = new Vector3(744f, 720);
            childTabStrip.tabPages        = tabContainer;

            // Add child tabs.
            AddTabs(childTabStrip);
        }
Esempio n. 22
0
        public static CustomCheckbox MakeCheckBox(UIPanel panel, string txt, float y, ColossalFramework.UI.MouseEventHandler eventClick, string tooltip = "", float x = 15.0f)
        {
            UILabel label = panel.AddUIComponent <UILabel>();

            label.name             = txt + "Label";
            label.text             = txt;
            label.relativePosition = new Vector3(35.0f, y);
            label.textScale        = 0.8f;

            CustomCheckbox cb = panel.AddUIComponent <CustomCheckbox>();

            cb.relativePosition = new Vector3(x, y);
            cb.size             = new Vector2(12, 12);
            cb.eventClick      += eventClick;
            cb.Show();
            cb.color     = new Color32(185, 221, 254, 255);
            cb.enabled   = true;
            cb.isChecked = true;
            cb.tooltip   = tooltip;
            return(cb);
        }
Esempio n. 23
0
        public override void Start()
        {
            LoadResources();

            atlas            = UIUtils.GetAtlas("Ingame");
            backgroundSprite = "MenuPanel";
            color            = new Color32(255, 255, 255, 255);
            isVisible        = false;
            canFocus         = true;
            isInteractive    = true;
            clipChildren     = true;
            width            = 580;
            height           = INITIAL_HEIGHT;
            absolutePosition = new Vector3(670, 300);

            //make setter!

            // Title Bar
            m_title       = AddUIComponent <UITitleBar>();
            m_title.title = "Notice";
            m_title.GetComponentInChildren <UILabel>().textScale = 1.3f;

            UIPanel panel = AddUIComponent <UIPanel>();

            panel.atlas            = UIUtils.GetAtlas("Ingame");
            panel.backgroundSprite = "GenericPanelDark";
            panel.relativePosition = new Vector2(20, 55);
            panel.size             = new Vector2(width - 40, 300);

            netEle_label                  = panel.AddUIComponent <UILabel>();
            netEle_label.text             = "Display Error";
            netEle_label.autoSize         = false;
            netEle_label.wordWrap         = true;
            netEle_label.width            = 500f;
            netEle_label.height           = 420f;
            netEle_label.relativePosition = new Vector2(20, 20);

            okButton = UIUtils.CreateButton(panel);
            okButton.normalBgSprite   = "GenericPanel";
            okButton.text             = "OK";
            okButton.textScale        = 1f;
            okButton.relativePosition = new Vector2(400, 313);
            okButton.height           = 47;
            okButton.width            = 138;

            okButton.eventClick += (c, p) =>
            {
                if (isVisible)
                {
                    instance.Hide();
                }
            };
        }
Esempio n. 24
0
        public UILabel CreateLabel(UIPanel parent, string text, float widthFraction)
        {
            var label = parent.AddUIComponent <UILabel>();

            label.wordWrap          = true;
            label.autoSize          = false;
            label.size              = new Vector2(ROW_WIDTH * widthFraction, ROW_HEIGHT);
            label.text              = text;
            label.verticalAlignment = UIVerticalAlignment.Middle;
            label.textAlignment     = UIHorizontalAlignment.Left;
            return(label);
        }
Esempio n. 25
0
        public static void CreateOrUpdateJoinGameButton()
        {
            _logger.Info("Creating join game button...");

            UIPanel uiView = UIView.GetAView()?.FindUIComponent("Menu") as UIPanel;

            if (uiView == null)
            {
                return;
            }

            UIButton joinGameButton = UIView.GetAView().FindUIComponent("JoinGame") as UIButton;

            // Create the button if it does not exist and assign
            // the click event.
            if (joinGameButton == null)
            {
                joinGameButton             = (UIButton)uiView.AddUIComponent(typeof(UIButton));
                joinGameButton.eventClick += (s, e) =>
                {
                    PanelManager.ShowPanel <JoinGamePanel>();
                };
            }

            joinGameButton.name   = "JoinGame";
            joinGameButton.text   = "JOIN GAME";
            joinGameButton.width  = 411;
            joinGameButton.height = 56;

            joinGameButton.textHorizontalAlignment = UIHorizontalAlignment.Center;

            joinGameButton.focusedColor     = new Color32(254, 254, 254, 255);
            joinGameButton.focusedTextColor = new Color32(255, 255, 255, 255);

            joinGameButton.hoveredColor     = new Color32(94, 195, 255, 255);
            joinGameButton.hoveredFgSprite  = "MenuPanelInfo";
            joinGameButton.hoveredTextColor = new Color32(7, 123, 255, 255);

            joinGameButton.bottomColor = new Color32(163, 226, 254, 255);

            joinGameButton.textColor = new Color32(254, 254, 254, 255);
            joinGameButton.textScale = 1.5f;

            joinGameButton.pressedColor     = new Color32(185, 221, 254, 255);
            joinGameButton.pressedFgSprite  = "MenuPanelInfo";
            joinGameButton.pressedTextColor = new Color32(30, 30, 44, 255);

            joinGameButton.useDropShadow = true;
            joinGameButton.useGradient   = true;
            joinGameButton.useGUILayout  = true;

            joinGameButton.dropShadowOffset = new Vector2(0, -1.33f);
        }
Esempio n. 26
0
        public void Initialise()
        {
            UIPanel _uiPanel   = UIView.Find <UIPanel>("InfoPanel");
            UIPanel _panelTime = _uiPanel == null ? null : _uiPanel.Find <UIPanel>("PanelTime");

            _oldDayProgressSprite = _panelTime == null ? null : _panelTime.Find <UISprite>("Sprite");
            UILabel _dateLabel = _oldDayProgressSprite == null ? null : _oldDayProgressSprite.Find <UILabel>("Time");

            if (_uiPanel != null && _panelTime != null && _oldDayProgressSprite != null && _dateLabel != null)
            {
                _newDayProgressSprite                  = _panelTime.AddUIComponent <UISprite>();
                _newDayProgressSprite.name             = "NewSprite";
                _newDayProgressSprite.relativePosition = _oldDayProgressSprite.relativePosition;
                _newDayProgressSprite.atlas            = _oldDayProgressSprite.atlas;
                _newDayProgressSprite.spriteName       = _oldDayProgressSprite.spriteName;
                _newDayProgressSprite.size             = _oldDayProgressSprite.size;
                _newDayProgressSprite.fillAmount       = 0.5f;
                _newDayProgressSprite.fillDirection    = UIFillDirection.Horizontal;
                _newDayProgressSprite.color            = new Color32(255, 255, 255, 255);

                _newDayProgressLabel                   = _newDayProgressSprite.AddUIComponent <UILabel>();
                _newDayProgressLabel.name              = "NewTime";
                _newDayProgressLabel.autoSize          = false;
                _newDayProgressLabel.autoHeight        = false;
                _newDayProgressLabel.font              = _dateLabel.font;
                _newDayProgressLabel.atlas             = _dateLabel.atlas;
                _newDayProgressLabel.color             = _dateLabel.color;
                _newDayProgressLabel.textColor         = _dateLabel.textColor;
                _newDayProgressLabel.size              = _newDayProgressSprite.size;
                _newDayProgressLabel.width             = _newDayProgressSprite.width;
                _newDayProgressLabel.height            = _newDayProgressSprite.height;
                _newDayProgressLabel.textAlignment     = UIHorizontalAlignment.Center;
                _newDayProgressLabel.verticalAlignment = UIVerticalAlignment.Middle;
                _newDayProgressLabel.relativePosition  = new Vector3(0, 0, 0);
                _newDayProgressLabel.isInteractive     = false;

                _oldDayProgressSprite.Hide();

                InitialiseUpdatePanel(_newDayProgressSprite);
                Update();
            }
            else
            {
                Debug.LogWarning("Didn't replace sprite.");
            }

            CimTools.CimToolsHandler.CimToolBase.Translation.OnLanguageChanged += new LanguageChangedEventHandler(delegate(string languageIdentifier)
            {
                UpdateEventBlocks();
            });

            Debug.Log("Rush Hour: DateTimeBar initialised");
        }
Esempio n. 27
0
        /// <summary>
        /// Adds a column header icon label.
        /// </summary>
        /// <param name="panel">UI panel</param>
        /// <param name="xPos">Reference X position</param>
        /// <param name="text">Tooltip text</param>
        /// <param name="icon">Icon name</param>
        protected void RowHeaderIcon(UIPanel panel, float yPos, string text, string icon, string atlas)
        {
            // Actual icon.
            UISprite thumbSprite = panel.AddUIComponent <UISprite>();

            thumbSprite.relativePosition = new Vector3(Margin, yPos - 2.5f);
            thumbSprite.width            = 35f;
            thumbSprite.height           = 35f;
            thumbSprite.atlas            = UIUtils.GetAtlas(atlas);
            thumbSprite.spriteName       = icon;

            // Text label.
            UILabel lineLabel = panel.AddUIComponent <UILabel>();

            lineLabel.textScale         = 1.0f;
            lineLabel.text              = text;
            lineLabel.relativePosition  = new Vector3(LeftTitle, yPos + 7);
            lineLabel.verticalAlignment = UIVerticalAlignment.Middle;

            currentY += 30f;
        }
Esempio n. 28
0
        public UITextureSprite AddNamedTexture(string name)
        {
            UIPanel uIPanel = this.m_Root.AttachUIComponent(UITemplateManager.GetAsGameObject(UIHelperExtension.kDropdownTemplate)) as UIPanel;

            uIPanel.Find <UILabel>("Label").text = name;
            UnityEngine.Object.Destroy(uIPanel.Find <UIDropDown>("Dropdown").gameObject);
            UITextureSprite uITextureSprite = uIPanel.AddUIComponent <UITextureSprite>();

            uITextureSprite.isVisible = true;
            uITextureSprite.name      = "TextureSprite";
            return(uITextureSprite);
        }
Esempio n. 29
0
        public static UICheckBox CreateCheckBox(UIComponent parent, int offset, string label)
        {
            UIPanel container = parent.AddUIComponent <UIPanel>();

            container.height           = 25;
            container.width            = 270;
            container.relativePosition = new Vector3(0, offset, 0);

            UICheckBox checkBox = container.AddUIComponent <UICheckBox>();

            checkBox.width            = container.width;
            checkBox.height           = 20f;
            checkBox.clipChildren     = true;
            checkBox.relativePosition = new Vector3(210, 6);

            UISprite sprite = checkBox.AddUIComponent <UISprite>();

            sprite.spriteName       = "ToggleBase";
            sprite.size             = new Vector2(16f, 16f);
            sprite.relativePosition = Vector3.zero;

            checkBox.checkedBoxObject = sprite.AddUIComponent <UISprite>();
            ((UISprite)checkBox.checkedBoxObject).spriteName = "ToggleBaseFocused";
            checkBox.checkedBoxObject.size             = new Vector2(16f, 16f);
            checkBox.checkedBoxObject.relativePosition = Vector3.zero;

            UILabel serviceLabel = container.AddUIComponent <UILabel>();

            serviceLabel.textScale        = 0.8f;
            serviceLabel.text             = label;
            serviceLabel.relativePosition = new Vector3(15, 6, 0);

            // algernon
            serviceLabel.autoSize   = false;
            serviceLabel.width      = 180f;
            serviceLabel.autoHeight = true;
            serviceLabel.wordWrap   = true;

            return(checkBox);
        }
Esempio n. 30
0
        public static UITextField CreateTextField(UIComponent parent, float offset, string label)
        {
            UIPanel container = parent.AddUIComponent <UIPanel>();

            container.height           = 25;
            container.relativePosition = new Vector3(0, offset, 0);

            UILabel Label = container.AddUIComponent <UILabel>();

            Label.textScale        = 0.8f;
            Label.text             = label;
            Label.relativePosition = new Vector3(15, 6, 0);

            Label.verticalAlignment = UIVerticalAlignment.Middle;
            Label.autoSize          = false;
            Label.autoHeight        = true;
            Label.width             = 170f;
            Label.wordWrap          = true;

            UITextField textField = container.AddUIComponent <UITextField>();

            textField.size    = new Vector2(100f, 20f);
            textField.padding = new RectOffset(6, 6, 3, 3);
            textField.builtinKeyNavigation = true;
            textField.isInteractive        = true;
            textField.readOnly             = false;

            //textField.horizontalAlignment = UIHorizontalAlignment.Center;
            textField.selectionSprite          = "EmptySprite";
            textField.selectionBackgroundColor = new Color32(0, 172, 234, 255);
            textField.normalBgSprite           = "TextFieldPanelHovered";
            textField.disabledBgSprite         = "TextFieldPanel";
            textField.textColor         = new Color32(0, 0, 0, 255);
            textField.disabledTextColor = new Color32(0, 0, 0, 128);
            textField.color             = new Color32(255, 255, 255, 255);

            textField.relativePosition = new Vector3(190, 0, 0);

            return(textField);
        }
Esempio n. 31
0
        public static UICheckBox MakeCheckbox(UIPanel panel, string name, string text, Vector2 position, bool value,
            CheckboxSetValue setValue)
        {
            var label = panel.AddUIComponent<UILabel>();
            label.name = name;
            label.text = text;
            label.relativePosition = position;
            label.textScale = 0.8f;
            label.textColor = Color.black;

            var checkbox = panel.AddUIComponent<UICheckBox>();
            checkbox.AlignTo(label, UIAlignAnchor.TopLeft);
            checkbox.relativePosition = new Vector3(checkbox.relativePosition.x + 274.0f, checkbox.relativePosition.y - 2.0f);
            checkbox.size = new Vector2(16.0f, 16.0f);
            checkbox.isVisible = true;
            checkbox.canFocus = true;
            checkbox.isInteractive = true;

            if (setValue != null)
            {
                checkbox.eventCheckChanged += (component, newValue) => setValue(newValue);
            }

            var uncheckSprite = checkbox.AddUIComponent<UISprite>();
            uncheckSprite.size = new Vector2(16.0f, 16.0f);
            uncheckSprite.relativePosition = new Vector3(0, 0);
            uncheckSprite.spriteName = "check-unchecked";
            uncheckSprite.isVisible = true;

            var checkSprite = checkbox.AddUIComponent<UISprite>();
            checkSprite.size = new Vector2(16.0f, 16.0f);
            checkSprite.relativePosition = new Vector3(0, 0);
            checkSprite.spriteName = "check-checked";

            checkbox.isChecked = value;
            checkbox.checkedBoxObject = checkSprite;
            return checkbox;
        }
Esempio n. 32
0
        public static UIButton MakeButton(UIPanel panel, string name, string text, Vector2 position, ButtonClicked clicked)
        {
            var button = panel.AddUIComponent<UIButton>();
            button.name = name;
            button.text = text;
            button.relativePosition = position;
            button.size = new Vector2(200.0f, 24.0f);
            button.normalBgSprite = "ButtonMenu";
            button.disabledBgSprite = "ButtonMenuDisabled";
            button.hoveredBgSprite = "ButtonMenuHovered";
            button.focusedBgSprite = "ButtonMenu";
            button.pressedBgSprite = "ButtonMenuPressed";
            button.textScale = 0.8f;

            button.eventClick += (component, param) => clicked();

            return button;
        }
Esempio n. 33
0
        public override void Awake()
        {
            size = new Vector2(5, 5);
            anchor = UIAnchorStyle.Top;

            helpBg = AddUIComponent<UIPanel>();
            helpBg.backgroundSprite = "GenericPanel";

            helpBg.color = new Color32(0, 0, 120, 200);
            helpBg.area = new Vector4(10, 65, 230, 70);

            usageText =  helpBg.AddUIComponent<UILabel>();
            usageText.relativePosition = new Vector2(5, 5);
            usageText.textScale = 0.6f;
            usageText.text =
                "Left Click to see all Trafic\n" +
                "Right Click to see traffic for one direction\n" +
                "Shift + Right Click for the other direction\n" +
                "Hover over other roads to see how much is \n" +
                "going through that location.\n";

            reportBreakDown = AddUIComponent<BreakdownPanel>();
            reportBreakDown.title.text = "Selected";
            reportBreakDown.title.tooltip = "A breakdown of all traffic going through the selected road segement";
            reportBreakDown.isVisible = false;
            reportBreakDown.relativePosition = new Vector2(10, 150);
            reportBreakDown.eventHighlightType += (String s) =>
            {
                if (eventHighlightType != null)
                    eventHighlightType(s);
            };

            highlightBreakDown = AddUIComponent<BreakdownPanel>();
            highlightBreakDown.title.text = "...highlighted";
            highlightBreakDown.isVisible = false;
            highlightBreakDown.relativePosition = new Vector2(220, 150);

            base.Awake();
        }
        private int GenerateOptions(UIPanel panel, int ply, int plx)
        {
            ARUT.WriteLog("Entering GenerateOptions");
            plOptions = panel.AddUIComponent<UIPanel>();
            plOptions.relativePosition = new Vector3(plx, ply);
            plOptions.isVisible = true;
            plOptions.tooltip = "Select the type of updates and options to perform.";

            int y = 1;
            lSelectable = addLabel(plOptions, y, plx, m_updatetool + m_unavailable, true);
            y += 25;
            lInformation = addLabel(plOptions, y, 1, m_defaultInfo, true);
            y += 25;

            int cb = 0;
            foreach (string s in m_options)
            {
                bool enable = true;
                string t = String.Format("Select to display the {0} options", s);
                options.Add(addCheckbox(plOptions, y, plx, s, t, true));
                //Space out the options (We may add building, trees, and props)
                plx += 100;
                switch (s)
                {
                    case "Update":
                        enable = ARUT.ShowUpdate;
                        break;
                    case "Delete":
                        enable = ARUT.ShowDelete;
                        break;
                    case "Districts":
                        enable = (ARUT.ShowDistricts == (mode != LoadMode.LoadMap && mode != LoadMode.NewMap));
                        break;
                    case "Terrain":
                        enable = (ARUT.ShowTerrain == (mode == LoadMode.LoadMap || mode == LoadMode.NewMap));
                        break;
                    case "Services":
                        enable = (ARUT.ShowServices == (mode != LoadMode.LoadMap && mode != LoadMode.NewMap));
                        break;
                    default:
                        break;
                }
                options[cb].enabled = enable;
                options[cb].eventCheckChanged += Options_eventCheckChanged;
                cb += 1;
            }
            y += 25;

            //set the panal size (two rows, 50)
            plOptions.size = new Vector2(panel.width, y);

            return (int)plOptions.height + 20;
        }
        internal void CreateGraphics()
        {
            try {

                var uiView = UIView.GetAView();
                TextureDB.LoadFavCimsTextures();
                Atlas.LoadAtlasIcons();

                ////////////////////////////////////////////////
                ///////////Favorite Button Manu Panel/////////
                ///////////////////////////////////////////////

                //MainMenuPos = UIView.GetAView().FindUIComponent<UITabstrip> ("MainToolstrip");
                MainMenuPos = UIView.Find<UITabstrip> ("MainToolstrip");

                if(MainMenuPos.Find<FavoritesCimsButton>("FavCimsMenuPanel") != null) {
                    FavCimsMenuPanel = MainMenuPos.Find<FavoritesCimsButton>("FavCimsMenuPanel");
                }else{
                    FavCimsMenuPanel = MainMenuPos.AddUIComponent(typeof(FavoritesCimsButton)) as FavoritesCimsButton;
                }

                ////////////////////////////////////////////////
                ////////////////Favorite Panel////////////////
                ///////////////////////////////////////////////

                FullScreenContainer = UIView.Find<UIPanel> ("FullScreenContainer");
                FavCimsPanel = FullScreenContainer.AddUIComponent<FavoriteCimsMainPanel> ();
                FavCimsPanel.Hide ();

                FullScreenContainer.eventMouseDown += delegate {
                    if (!FavCimsPanel.containsMouse) {
                        FavCimsPanel.SendToBack ();
                    } else {
                        FavCimsPanel.BringToFront ();
                    }
                };

                ////////////////////////////////////////////////
                ////////////Humans Button & Subscribe///////////
                ///////////////////////////////////////////////

                FavCimsHumanPanel = FullScreenContainer.Find<UIPanel> ("(Library) CitizenWorldInfoPanel");

                if (FavCimsHumanPanel != null) {
                    if(FavCimsHumanPanel.GetComponentInChildren<AddToFavButton>() != null) {
                        FavStarButton = FavCimsHumanPanel.GetComponentInChildren<AddToFavButton>();
                    }else{
                        FavStarButton = FavCimsHumanPanel.AddUIComponent(typeof(AddToFavButton)) as AddToFavButton;
                    }
                }

                GenerateFamilyDetailsTpl();

            } catch (Exception e) {
                Debug.Error ("OnLoad List Error : " + e.ToString ());
            }
        }
        private int GenerateplTypes(UIPanel panel, int ply, int plx)
        {
            plTypes = panel.AddUIComponent<UIPanel>();
            plTypes.relativePosition = new Vector3(1, ply);
            plTypes.isVisible = true;
            plTypes.tooltip = "Select the line types to modify";

            int y = 1;
            addLabel(plTypes, y, 1, "Select the line types to modify", true);
            y += 25;
            int x = 5;
            int step = 0;
            int cb = 0;

            //load the update types
            foreach (string s in m_types)
            {
                string t = "These types will be updated.";
                types.Add(addCheckbox(plTypes, y, x + step, s, t, true));
                types[cb].eventCheckChanged += Types_eventCheckChanged;
                step += 100;
                cb += 1;
            }
            //set the panel size (two rows, 50)
            y += 20;
            plTypes.size = new Vector2(panel.width, y);

            return ply + y;
        }
        private UIButton addButton(UIPanel panel, string text, string tooltip, int y, int x, int w, int h)
        {
            UIButton bt = panel.AddUIComponent<UIButton>();
            bt.relativePosition = new Vector3(x, y);
            bt.name = text.Replace(" ", "_");
            bt.text = text;
            bt.tooltip = tooltip;
            bt.textScale = 0.8f;
            bt.width = w;
            bt.height = h;
            bt.normalBgSprite = "ButtonMenu";
            bt.disabledBgSprite = "ButtonMenuDisabled";
            bt.hoveredBgSprite = "ButtonMenuHovered";
            bt.focusedBgSprite = "ButtonMenu";
            bt.pressedBgSprite = "ButtonMenuPressed";
            bt.textColor = new Color32(255, 255, 255, 255);
            bt.disabledTextColor = new Color32(7, 7, 7, 255);
            bt.hoveredTextColor = new Color32(255, 255, 255, 255);
            bt.focusedTextColor = new Color32(255, 255, 255, 255);
            bt.pressedTextColor = new Color32(30, 30, 44, 255);

            //ARUT.WriteLog("Leaving addButton: " + text + " location: " + bt.relativePosition + "main HeightxWidth: " + panel.height + "x" + panel.width);
            return bt;
        }
        private UISlider addSlider(UIPanel panel, string name, int y, int x, int w, int h, float min, float max, float step, float defaultValue, string tooltip)
        {
            UISlider sl = panel.AddUIComponent<UISlider>();

            sl.relativePosition = new Vector3(x, y);
            sl.name = name;
            sl.width = w;
            sl.height = h;
            sl.tooltip = tooltip;
            sl.minValue = min;
            sl.maxValue = max;
            sl.stepSize = step;
            sl.value = defaultValue;
            sl.isVisible = true;
            sl.color = Color.blue;
            sl.BringToFront();
            if (mode == LoadMode.LoadMap || mode == LoadMode.NewMap)
                sl.backgroundSprite = "SubcategoriesPanel";
            else
                sl.backgroundSprite = "GenericPanel";

            return sl;
        }
        private UIDropDown addDropDown(UIPanel panel, int y, int x, int w, int h, string text, string tooltip)
        {
            UIDropDown dd = panel.AddUIComponent<UIDropDown>();

            dd.size = new Vector2(w, h);
            dd.relativePosition = new Vector3(x, y);
            dd.listBackground = "GenericPanelLight";
            dd.itemHeight = 15;
            dd.itemHover = "ListItemHover";
            dd.itemHighlight = "ListItemHighlight";
            dd.normalBgSprite = "ListItemHover";
            dd.listWidth = 100;
            dd.listHeight = 350;
            dd.foregroundSpriteMode = UIForegroundSpriteMode.Stretch;
            dd.popupColor = new Color32(45, 52, 61, 255);
            dd.popupTextColor = new Color32(170, 170, 170, 255);
            dd.zOrder = 1;
            dd.textScale = 0.8f;
            dd.verticalAlignment = UIVerticalAlignment.Middle;
            dd.horizontalAlignment = UIHorizontalAlignment.Left;
            dd.selectedIndex = 0;
            dd.textFieldPadding = new RectOffset(8, 0, 8, 0);
            dd.itemPadding = new RectOffset(14, 0, 0, 0);

            var dropdownButton = dd.AddUIComponent<UIButton>();
            dd.triggerButton = dropdownButton;

            dropdownButton.text = "";
            dropdownButton.size = dd.size;
            dropdownButton.relativePosition = new Vector3(0.0f, 0.0f);
            dropdownButton.textVerticalAlignment = UIVerticalAlignment.Middle;
            dropdownButton.textHorizontalAlignment = UIHorizontalAlignment.Left;
            dropdownButton.normalFgSprite = "IconDownArrow";
            dropdownButton.hoveredFgSprite = "IconDownArrowHovered";
            dropdownButton.pressedFgSprite = "IconDownArrowPressed";
            dropdownButton.focusedFgSprite = "IconDownArrowFocused";
            dropdownButton.disabledFgSprite = "IconDownArrowDisabled";
            dropdownButton.foregroundSpriteMode = UIForegroundSpriteMode.Fill;
            dropdownButton.horizontalAlignment = UIHorizontalAlignment.Right;
            dropdownButton.verticalAlignment = UIVerticalAlignment.Middle;
            dropdownButton.zOrder = 0;
            dropdownButton.textScale = 0.8f;
            return dd;
        }
Esempio n. 40
0
        private static UISlider MakeSlider(UIPanel panel, string name, string text, float y, float value, float min, float max, SliderSetValue setValue)
        {
            var label = panel.AddUIComponent<UILabel>();
            label.name = name + "Label";
            label.text = text;
            label.relativePosition = new Vector3(4.0f, y);
            label.textScale = 0.8f;

            var slider = panel.AddUIComponent<UISlider>();
            slider.name = name + "Slider";
            slider.minValue = min;
            slider.maxValue = max;
            slider.stepSize = 0.25f;
            slider.value = value;
            slider.relativePosition = new Vector3(200.0f, y);
            slider.size = new Vector2(158.0f, 16.0f);

            var thumbSprite = slider.AddUIComponent<UISprite>();
            thumbSprite.name = "Thumb";
            thumbSprite.spriteName = "SliderBudget";

            slider.backgroundSprite = "ScrollbarTrack";
            slider.thumbObject = thumbSprite;
            slider.orientation = UIOrientation.Horizontal;
            slider.isVisible = true;
            slider.enabled = true;
            slider.canFocus = true;
            slider.isInteractive = true;

            var valueLabel = panel.AddUIComponent<UILabel>();
            valueLabel.name = name + "ValueLabel";
            valueLabel.text = slider.value.ToString("0.00");
            valueLabel.relativePosition = new Vector3(362.0f, y);
            valueLabel.textScale = 0.8f;

            slider.eventValueChanged += (component, f) =>
            {
                setValue(f);
                valueLabel.text = slider.value.ToString("0.00");
            };

            return slider;
        }
        private static UIScrollbar CreateVerticalScrollbar(UIPanel panel, UIScrollablePanel scrollablePanel)
        {
            UIScrollbar verticalScrollbar = panel.AddUIComponent<UIScrollbar>();
            verticalScrollbar.name = "VerticalScrollbar";
            verticalScrollbar.width = 20f;
            verticalScrollbar.height = panel.height;
            verticalScrollbar.orientation = UIOrientation.Vertical;
            verticalScrollbar.pivot = UIPivotPoint.BottomLeft;
            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 - 8;
            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. 42
0
        private FPSCameraUI()
        {
            var uiView = FindObjectOfType<UIView>();
            var fullscreenContainer = uiView.FindUIComponent("FullScreenContainer");

            cameraModeButton = uiView.AddUIComponent(typeof(UIButton)) as UIButton;

            cameraModeButton.name = "FPSCameraConfigurationButton";
            cameraModeButton.gameObject.name = "FPSCameraConfigurationButton";
            cameraModeButton.width = 36;
            cameraModeButton.height = 36;

            cameraModeButton.pressedBgSprite = "OptionBasePressed";
            cameraModeButton.normalBgSprite = "OptionBase";
            cameraModeButton.hoveredBgSprite = "OptionBaseHovered";
            cameraModeButton.disabledBgSprite = "OptionBaseDisabled";

            cameraModeButton.normalFgSprite = "InfoPanelIconFreecamera";
            cameraModeButton.foregroundSpriteMode = UIForegroundSpriteMode.Scale;
            cameraModeButton.scaleFactor = 1.0f;

            cameraModeButton.tooltip = "FPS Camera configuration";
            cameraModeButton.tooltipBox = uiView.defaultTooltipBox;

            UIComponent escbutton = uiView.FindUIComponent("Esc");
            cameraModeButton.relativePosition = new Vector2
            (
                escbutton.relativePosition.x + escbutton.width / 2.0f - cameraModeButton.width / 2.0f - escbutton.width - 8.0f,
                escbutton.relativePosition.y + escbutton.height / 2.0f - cameraModeButton.height / 2.0f
            );

            cameraModeButton.eventClick += (component, param) => { panel.isVisible = !panel.isVisible; };

            var labelObject = new GameObject();
            labelObject.transform.parent = uiView.transform;

            cameraModeLabel = labelObject.AddComponent<UILabel>();
            cameraModeLabel.textColor = new Color32(255, 255, 255, 255);
            cameraModeLabel.Hide();

            FPSCamera.onCameraModeChanged = state =>
            {
                if (state)
                {
                    cameraModeLabel.text = String.Format("Press ({0}) to exit first-person mode", FPSCamera.GetToggleUIKey());
                    cameraModeLabel.color = new Color32(255, 255, 255, 255);
                    cameraModeLabel.AlignTo(cameraModeButton, UIAlignAnchor.BottomRight);
                    cameraModeLabel.relativePosition += new Vector3(-38.0f, -8.0f);
                    cameraModeLabel.Show();
                }
                else
                {
                    cameraModeLabel.Hide();
                }
            };

            FPSCamera.onUpdate = () =>
            {
                if (cameraModeLabel.color.a > 0)
                {
                    var c = cameraModeLabel.color;
                    cameraModeLabel.color = new Color32(c.r, c.g, c.b, (byte)(c.a - 1));
                }
            };

            panel = fullscreenContainer.AddUIComponent<UIPanel>();
            panel.size = new Vector2(400, 700);
            panel.isVisible = false;
            panel.backgroundSprite = "SubcategoriesPanel";
            panel.relativePosition = new Vector3(cameraModeButton.relativePosition.x - panel.size.x, cameraModeButton.relativePosition.y + 60.0f);
            panel.name = "FPSCameraConfigPanel";

            var titleLabel = panel.AddUIComponent<UILabel>();
            titleLabel.name = "Title";
            titleLabel.text = "First-person camera configuration";
            titleLabel.autoSize = false;
            titleLabel.size = new Vector2(panel.size.x, 24.0f);
            titleLabel.AlignTo(panel, UIAlignAnchor.TopLeft);
            titleLabel.relativePosition = new Vector3(titleLabel.relativePosition.x, titleLabel.relativePosition.y + 2.0f);
            titleLabel.textAlignment = UIHorizontalAlignment.Center;

            float y = 48.0f;

            var hotkeyToggleLabel = panel.AddUIComponent<UILabel>();
            hotkeyToggleLabel.name = "ToggleFirstpersonLabel";
            hotkeyToggleLabel.text = "Hotkey to toggle first-person";
            hotkeyToggleLabel.relativePosition = new Vector3(4.0f, y);
            hotkeyToggleLabel.textScale = 0.8f;

            hotkeyToggleButton = MakeButton(panel, "ToggleFirstpersonButton",
                FPSCamera.instance.config.toggleFPSCameraHotkey.ToString(), y,
                () =>
                {
                    if (!waitingForChangeCameraHotkey)
                    {
                        waitingForChangeCameraHotkey = true;
                        waitingForShowMouseHotkey = false;
                        waitingForGoFasterHotkey = false;
                        hotkeyToggleButton.text = "Waiting";
                    }
                });

            y += 28.0f;

            var hotkeyShowMouseLabel = panel.AddUIComponent<UILabel>();
            hotkeyShowMouseLabel.name = "ShowMouseLabel";
            hotkeyShowMouseLabel.text = "Hotkey to show cursor (hold)";
            hotkeyShowMouseLabel.relativePosition = new Vector3(4.0f, y);
            hotkeyShowMouseLabel.textScale = 0.8f;

            hotkeyShowMouseButton = MakeButton(panel, "ShowMouseButton",
                FPSCamera.instance.config.showMouseHotkey.ToString(), y,
                () =>
                {
                    if (!waitingForChangeCameraHotkey)
                    {
                        waitingForChangeCameraHotkey = false;
                        waitingForShowMouseHotkey = true;
                        waitingForGoFasterHotkey = false;
                        hotkeyShowMouseButton.text = "Waiting";
                    }
                });

            y += 28.0f + 16.0f;

            var hotkeyGoFasterLabel = panel.AddUIComponent<UILabel>();
            hotkeyGoFasterLabel.name = "GoFasterLabel";
            hotkeyGoFasterLabel.text = "Hotkey to go faster (hold)";
            hotkeyGoFasterLabel.relativePosition = new Vector3(4.0f, y);
            hotkeyGoFasterLabel.textScale = 0.8f;

            hotkeyGoFasterButton = MakeButton(panel, "GoFasterButton",
                FPSCamera.instance.config.goFasterHotKey.ToString(), y,
                () =>
                {
                    if (!waitingForGoFasterHotkey)
                    {
                        waitingForChangeCameraHotkey = false;
                        waitingForShowMouseHotkey = false;
                        waitingForGoFasterHotkey = true;
                        hotkeyGoFasterButton.text = "Waiting";
                    }
                });

            y += 28.0f;

            MakeSlider(panel, "GoFasterMultiplier", "\"Go faster\" speed multiplier", y,
                FPSCamera.instance.config.goFasterSpeedMultiplier, 2.0f, 20.0f,
                value =>
                {
                    FPSCamera.instance.config.goFasterSpeedMultiplier = value;
                    FPSCamera.instance.SaveConfig();
                });

            y += 28.0f + 16.0f;

            if (FPSCamera.instance.hideUIComponent != null)
            {
                MakeCheckbox(panel, "HideUI", "HideUI integration", y, FPSCamera.instance.config.integrateHideUI,
                    value =>
                    {
                        FPSCamera.instance.config.integrateHideUI = value;
                        FPSCamera.instance.SaveConfig();
                    });

                y += 28.0f + 8.0f;
            }

            MakeSlider(panel, "FieldOfView", "Field of view", y,
                FPSCamera.instance.config.fieldOfView, 30.0f, 120.0f,
                value =>
                {
                    FPSCamera.instance.SetFieldOfView(value);
                });

            y += 28.0f;

            MakeSlider(panel, "MovementSpeed", "Movement speed", y,
                FPSCamera.instance.config.cameraMoveSpeed, 0.25f, 128.0f,
                value =>
                {
                    FPSCamera.instance.config.cameraMoveSpeed = value;
                    FPSCamera.instance.SaveConfig();
                });

            y += 28.0f + 16.0f;

            MakeSlider(panel, "Sensitivity", "Sensitivity", y,
                FPSCamera.instance.config.cameraRotationSensitivity, 0.25f, 3.0f,
                value =>
                {
                    FPSCamera.instance.config.cameraRotationSensitivity = value;
                    FPSCamera.instance.SaveConfig();
                });

            y += 28.0f;

            MakeCheckbox(panel, "InvertYAxis", "Invert Y-Axis", y, FPSCamera.instance.config.invertYAxis,
                value =>
                {
                    FPSCamera.instance.config.invertYAxis = value;
                    FPSCamera.instance.SaveConfig();
                });

            y += 28.0f + 16.0f;

            MakeCheckbox(panel, "SnapToGround", "Snap to ground", y, FPSCamera.instance.config.snapToGround,
               value =>
               {
                   FPSCamera.instance.config.snapToGround = value;
                   FPSCamera.instance.SaveConfig();
               });

            y += 28.0f;

            MakeSlider(panel, "GroundDistance", "Ground distance", y,
                FPSCamera.instance.config.groundOffset, 0.25f, 32.0f,
                value =>
                {
                    FPSCamera.instance.config.groundOffset = value;
                    FPSCamera.instance.SaveConfig();
                });

            y += 28.0f;

            MakeCheckbox(panel, "PreventGroundClipping", "Prevent ground clipping", y, FPSCamera.instance.config.preventClipGround,
               value =>
               {
                   FPSCamera.instance.config.preventClipGround = value;
                   FPSCamera.instance.SaveConfig();
               });

            y += 28.0f + 16.0f;

            MakeCheckbox(panel, "AnimatedTransitions", "Animated transitions", y, FPSCamera.instance.config.animateTransitions,
               value =>
               {
                   FPSCamera.instance.config.animateTransitions = value;
                   FPSCamera.instance.SaveConfig();
               });

            y += 28.0f;

            MakeSlider(panel, "TransitionSpeed", "Transition speed", y,
                FPSCamera.instance.config.animationSpeed, 0.1f, 4.0f,
                value =>
                {
                    FPSCamera.instance.config.animationSpeed = value;
                    FPSCamera.instance.SaveConfig();
                });

            y += 28.0f + 16.0f;

            if (!FPSCamera.editorMode)
            {
                MakeCheckbox(panel, "AllowMovementVehicleMode", "Allow movement in vehicle/ citizen mode", y, FPSCamera.instance.config.allowUserOffsetInVehicleCitizenMode,
                   value =>
                   {
                       FPSCamera.instance.config.allowUserOffsetInVehicleCitizenMode = value;
                       FPSCamera.instance.SaveConfig();
                   });

                y += 28.0f;

                MakeCheckbox(panel, "ManualWalkthrough", "Manual switching in walkthrough- mode", y, FPSCamera.instance.config.walkthroughModeManual,
                   value =>
                   {
                       FPSCamera.instance.config.walkthroughModeManual = value;
                       FPSCamera.instance.SaveConfig();
                   });

                y += 28.0f;

                MakeSlider(panel, "StayDuration", "Walkthrough stay duration", y,
                    FPSCamera.instance.config.walkthroughModeTimer, 10.0f, 60.0f,
                    value =>
                    {
                        FPSCamera.instance.config.walkthroughModeTimer = value;
                        FPSCamera.instance.SaveConfig();
                    });

                y += 28.0f;

                MakeCheckbox(panel, "XInputController", "Use XInput Controller (MS Windows only)", y, FPSCamera.instance.config.useController,
                   value =>
                   {
                       FPSCamera.instance.config.useController = value;
                       FPSCamera.instance.SaveConfig();
                   });

                y += 28.0f;

                var walkthroughModeButton = MakeButton(panel, "WalkthroughModeButton", "Enter walkthrough mode", y,
                    () =>
                    {
                        FPSCamera.instance.EnterWalkthroughMode();
                    });
                walkthroughModeButton.relativePosition = new Vector3(2.0f, y - 6.0f);
                walkthroughModeButton.size = new Vector2(200.0f, 24.0f);

                y += 28.0f + 16.0f;
            }

            var resetConfig = MakeButton(panel, "ResetConfigButton", "Reset configuration", y,
                    () =>
                    {
                        FPSCamera.instance.ResetConfig();
                    });

            resetConfig.relativePosition = new Vector3(2.0f, y);
            resetConfig.size = new Vector2(200.0f, 24.0f);
        }
Esempio n. 43
0
        private static UICheckBox MakeCheckbox(UIPanel panel, string name, string text, float y, bool value,
            CheckboxSetValue setValue)
        {
            var label = panel.AddUIComponent<UILabel>();
            label.name = name;
            label.text = text;
            label.relativePosition = new Vector3(4.0f, y);
            label.textScale = 0.8f;

            var checkbox = panel.AddUIComponent<UICheckBox>();
            checkbox.AlignTo(label, UIAlignAnchor.TopLeft);
            checkbox.relativePosition = new Vector3(checkbox.relativePosition.x + 332.0f, checkbox.relativePosition.y - 6.0f);
            checkbox.size = new Vector2(20.0f, 20.0f);
            checkbox.isVisible = true;
            checkbox.canFocus = true;
            checkbox.isInteractive = true;

            checkbox.eventCheckChanged += (component, newValue) =>
            {
                setValue(newValue);
            };

            var uncheckSprite = checkbox.AddUIComponent<UISprite>();
            uncheckSprite.size = new Vector2(20.0f, 20.0f);
            uncheckSprite.relativePosition = new Vector3(0, 0);
            uncheckSprite.spriteName = "check-unchecked";
            uncheckSprite.isVisible = true;

            var checkSprite = checkbox.AddUIComponent<UISprite>();
            checkSprite.size = new Vector2(20.0f, 20.0f);
            checkSprite.relativePosition = new Vector3(0, 0);
            checkSprite.spriteName = "check-checked";

            checkbox.isChecked = value;
            checkbox.checkedBoxObject = checkSprite;
            return checkbox;
        }
Esempio n. 44
0
        private static UIButton MakeButton(UIPanel panel, string name, string text, float y, ButtonClicked clicked)
        {
            var button = panel.AddUIComponent<UIButton>();
            button.name = name;
            button.text = text;
            button.relativePosition = new Vector3(200.0f, y - 6.0f);
            button.size = new Vector2(100.0f, 24.0f);
            button.normalBgSprite = "ButtonMenu";
            button.disabledBgSprite = "ButtonMenuDisabled";
            button.hoveredBgSprite = "ButtonMenuHovered";
            button.focusedBgSprite = "ButtonMenu";
            button.pressedBgSprite = "ButtonMenuPressed";
            button.eventClick += (component, param) =>
            {
                clicked();
            };

            return button;
        }
        public override void Start()
        {
            base.Start ();
            Debug.PrintMessage ("Start");
            this.size = new Vector2 (WIDTH, HEIGHT);
            this.backgroundSprite = "MenuPanel";
            this.canFocus = true;
            this.isInteractive = true;
            this.BringToFront ();
            this.relativePosition = new Vector3 (50, 50);
            this.Show ();
            this.cachedName = cacheName;

            m_challengePanel = (ChallengePanel) this.GetUIView ().AddUIComponent (typeof(ChallengePanel));
            Debug.PrintMessage("Start() - Does ChallengePanel Exists? " + (m_challengePanel != null).ToString());
            m_challengePanel.manager = this;
            m_challengePanel.OnChallengeStarted += () => {m_selectButton.Disable ();};
            m_challengePanel.OnChallengeEnded += () => {m_selectButton.Enable ();};

            m_challengePanel.Hide ();

            m_title = this.AddUIComponent<UILabel> ();
            m_title.text = "CHALLENGES OPTIONS";
            m_title.relativePosition = new Vector3 (WIDTH / 2 - m_title.width / 2, HEAD / 2 - m_title.height / 2);
            m_title.textAlignment = UIHorizontalAlignment.Center;

            m_dragHandle = this.AddUIComponent<UIDragHandle> ();
            m_dragHandle.size = new Vector2(WIDTH,HEIGHT);
            m_dragHandle.relativePosition = Vector3.zero;
            m_dragHandle.target = this;

            m_closeButton = this.AddUIComponent<UIButton> ();
            m_closeButton.normalBgSprite = "buttonclose";
            m_closeButton.hoveredBgSprite = "buttonclosehover";
            m_closeButton.pressedBgSprite = "buttonclosepressed";
            m_closeButton.relativePosition = new Vector3 (WIDTH - 35, 5,10);
            m_closeButton.eventClick += (component, eventParam) => {
                this.Hide();
            };

            m_challengeListPanel = this.AddUIComponent<UIPanel> ();
            m_challengeListPanel.size = new Vector2 (LIST_PANEL_WIDTH, LIST_PANEL_HEIGHT);
            m_challengeListPanel.relativePosition = new Vector3 (0, HEAD);

            m_challengeBrowser = m_challengeListPanel.AddUIComponent<UIListBox> ();
            m_challengeBrowser.size = new Vector2 (LIST_PANEL_WIDTH - SPACING * 2, LIST_PANEL_HEIGHT - SELECT_BUTTON_HEIGHT - SPACING * 2);
            m_challengeBrowser.relativePosition = new Vector3 (SPACING, SPACING);

            m_challengeBrowser.normalBgSprite = "GenericPanelDark";
            //m_challengeBrowser.bottomColor = Color.green;

            m_challengeBrowser.itemHighlight = "ListItemHighlight";
            m_challengeBrowser.itemHover = "ListItemHover";
            m_challengeBrowser.itemPadding.left = 10;
            m_challengeBrowser.itemPadding.top = 4;
            m_challengeBrowser.listPadding.top = 10;
            m_challengeBrowser.listPadding.bottom = 10;
            m_challengeBrowser.colorizeSprites = true;

            LoadChallenges ();

            m_selectButton = m_challengeListPanel.AddUIComponent<UIButton> ();
            m_selectButton.text = "START";
            m_selectButton.size = new Vector2 (LIST_PANEL_WIDTH - SPACING * 2, SELECT_BUTTON_HEIGHT - SPACING);
            m_selectButton.textScale = 1.25f;
            m_selectButton.textVerticalAlignment = UIVerticalAlignment.Middle;
            m_selectButton.textHorizontalAlignment = UIHorizontalAlignment.Center;
            m_selectButton.normalBgSprite = "ButtonMenu";
            m_selectButton.hoveredBgSprite = "ButtonMenuHovered";
            m_selectButton.pressedBgSprite = "ButtonMenuPressed";
            m_selectButton.disabledBgSprite = "ButtonMenuDisabled";
            m_selectButton.color = Color.green;
            m_selectButton.focusedColor = m_selectButton.color;
            m_selectButton.hoveredColor = m_selectButton.color;
            m_selectButton.pressedColor = m_selectButton.color;
            m_selectButton.relativePosition = new Vector3 (SPACING, LIST_PANEL_HEIGHT - SELECT_BUTTON_HEIGHT);
            m_selectButton.Disable ();
            m_selectButton.eventClick += ChallengeSelected;

            m_refresh = this.AddUIComponent<UIButton> ();
            m_refresh.size = new Vector2 (60,24);
            m_refresh.text = "Refresh";
            m_refresh.textScale = 0.875f;
            m_refresh.normalBgSprite = "ButtonMenu";
            m_refresh.hoveredBgSprite = "ButtonMenuHovered";
            m_refresh.pressedBgSprite = "ButtonMenuPressed";
            m_refresh.disabledBgSprite = "ButtonMenuDisabled";
            //m_refresh.color = new Color32(255,0,0,255);
            //m_refresh.focusedColor = m_refresh.color;
            //m_refresh.hoveredColor = m_refresh.color;
            //m_refresh.pressedColor = m_refresh.color;
            m_refresh.relativePosition = m_closeButton.relativePosition + new Vector3 (-60 -SPACING,6f);
            m_refresh.eventClick += (component, eventParam) => {LoadChallenges();};

            m_challengeDetailsPanel = this.AddUIComponent<UIPanel> ();
            m_challengeDetailsPanel.size = new Vector2 (WIDTH - LIST_PANEL_WIDTH, HEIGHT - HEAD);
            //m_challengeDetailsPanel.backgroundSprite = "GenericPanel";
            m_challengeDetailsPanel.relativePosition = new Vector3 (LIST_PANEL_WIDTH, HEAD);

            m_challengeName = m_challengeDetailsPanel.AddUIComponent<UILabel> ();
            m_challengeName.text = "Name\n";
            m_challengeName.disabledTextColor = Color.gray;
            m_challengeName.Disable ();

            m_challengeDesc = m_challengeDetailsPanel.AddUIComponent<UILabel> ();
            m_challengeDesc.text = "Description\n";
            //m_challengeDesc.backgroundSprite = "GenericPanel";
            m_challengeDesc.width = m_challengeDetailsPanel.width;
            m_challengeDesc.minimumSize = new Vector2 (m_challengeDetailsPanel.width - SPACING * 2, 20);
            m_challengeDesc.wordWrap = true;
            m_challengeDesc.disabledTextColor = Color.gray;
            m_challengeDesc.Disable ();

            m_challengeBreakdown = m_challengeDetailsPanel.AddUIComponent<UILabel> ();
            m_challengeBreakdown.text = "Breakdown\n";
            //m_challengeBreakdown.backgroundSprite = "GenericPanel";
            m_challengeBreakdown.minimumSize = new Vector2 (m_challengeDetailsPanel.width - SPACING * 2, 20);
            m_challengeBreakdown.wordWrap = true;
            m_challengeBreakdown.disabledTextColor = Color.gray;
            m_challengeBreakdown.Disable ();

            m_challengeReward = m_challengeDetailsPanel.AddUIComponent<UILabel> ();
            m_challengeReward.text = "Reward\n";
            //m_challengeBreakdown.backgroundSprite = "GenericPanel";
            m_challengeReward.minimumSize = new Vector2 (m_challengeDetailsPanel.width - SPACING * 2, 20);
            m_challengeReward.wordWrap = true;
            m_challengeReward.autoSize = true;
            m_challengeReward.disabledTextColor = Color.gray;
            m_challengeReward.Disable ();

            m_challengePenalty = m_challengeDetailsPanel.AddUIComponent<UILabel> ();
            m_challengePenalty.text = "Penalty\n";
            //m_challengeBreakdown.backgroundSprite = "GenericPanel";
            m_challengePenalty.minimumSize = new Vector2 (m_challengeDetailsPanel.width - SPACING * 2, 20);
            m_challengePenalty.wordWrap = true;
            m_challengePenalty.autoSize = true;
            m_challengePenalty.disabledTextColor = Color.gray;
            m_challengePenalty.Disable ();

            m_challengeDeadline = m_challengeDetailsPanel.AddUIComponent<UILabel> ();
            m_challengeDeadline.text = "Duration\n";
            m_challengeDeadline.disabledTextColor = Color.gray;
            m_challengeDeadline.Disable ();

            FormatDetails ();

            if (m_temp_challenge != null) {
                m_challengePanel.SetCurrentChallenge (m_temp_challenge,true);
                //m_temp_challenge = null;
            }
        }
        //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;
                }
            }
        }
        private UITextField addTextBox(UIPanel panel, string name, string text, int y, int x, int width, int height, string tooltip, bool numeric, bool allowFloats)
        {
            UITextField tf = panel.AddUIComponent<UITextField>();

            tf.relativePosition = new Vector3(x, y);
            tf.size = new Vector3(width, height);
            tf.name = name;
            tf.text = text;
            tf.width = width;
            tf.height = height;
            tf.tooltip = tooltip;
            tf.numericalOnly = numeric;
            tf.allowFloats = allowFloats;
            tf.textScale = 0.8f;
            tf.color = Color.black;
            tf.cursorBlinkTime = 0.45f;
            tf.cursorWidth = 1;
            tf.horizontalAlignment = UIHorizontalAlignment.Left;
            tf.selectionBackgroundColor = new Color(233, 201, 148, 255);
            tf.selectionSprite = "EmptySprite";
            tf.verticalAlignment = UIVerticalAlignment.Middle;
            tf.padding = new RectOffset(5, 0, 5, 0);
            tf.foregroundSpriteMode = UIForegroundSpriteMode.Fill;
            tf.normalBgSprite = "TextFieldPanel";
            tf.hoveredBgSprite = "TextFieldPanelHovered";
            tf.focusedBgSprite = "TextFieldPanel";
            tf.isInteractive = true;
            tf.enabled = true;
            tf.readOnly = false;
            tf.builtinKeyNavigation = true;

            return tf;
        }
        private void GenerateplServices(UIPanel panel, int ply, int plx)
        {
            //Show the road type option
            plServices = panel.AddUIComponent<UIPanel>();
            plServices.relativePosition = new Vector3(1, ply);
            plServices.isVisible = false;
            plServices.tooltip = "Select the type of services to toggle on and off.";

            int cb = 0;
            int y = 1;

            for (int i = 0; i < m_services.Length; i++)
            {
                string s = m_services[i];

                string t = "These items will be toggled On or Off.";

                if (s == "Auto Bulldozer")
                {
                    addLabel(plServices, y, 10, s, true);
                    y += 25;
                    services.Add(addCheckbox(plServices, y, 15, "Abandoned", "Check to delete abandoned buildings.", true));
                    services[cb].eventCheckChanged += ServiceTypes_eventCheckChanged;
                    cb += 1;
                    services.Add(addCheckbox(plServices, y, 150, "Burned", "Check to delete burned buildings.", true));
                    services[cb].eventCheckChanged += ServiceTypes_eventCheckChanged;
                    cb += 1;
                }
                else if (s == "Select Options")
                {
                    addLabel(plServices, y, 5, s, true);
                }
                else if (s == "Chirper")
                {
                    addLabel(plServices, y, 10, s, true);
                    y += 25;
                    services.Add(addCheckbox(plServices, y, 15, s, "Checked to Show, unchecked to Hide Chirper.", true));
                    services[cb].eventCheckChanged += ServiceTypes_eventCheckChanged;
                    cb += 1;
                }
                else if (s.StartsWith("Label "))
                {
                    addLabel(plServices, y, 5, s.Replace("Label ", ""), true);
                    t = "Check to turn on services, unchecked to turn them off.";
                    y += 25;
                    cbToggle = addCheckbox(plServices, y, 10, "Check to turn Sevices On, Uncheck for Off.", t, true);
                }
                else
                {
                    s = m_services[i];
                    services.Add(addCheckbox(plServices, y, 15, s, t, true));
                    services[cb].eventCheckChanged += ServiceTypes_eventCheckChanged;
                    i++;
                    cb += 1;
                    if (i < m_services.Length)
                    {
                        s = m_services[i];
                        services.Add(addCheckbox(plServices, y, 285, s, t, true));
                        services[cb].eventCheckChanged += ServiceTypes_eventCheckChanged;
                        cb += 1;
                    }
                }
                y += 25;
            }
            //no need for this dropdown
            plServices.size = new Vector2(panel.width, y + 25);
        }
        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");
        }
        private int GenerateplRoads(UIPanel panel, int ply, int plx)
        {
            //Show the road type option
            plRoads = panel.AddUIComponent<UIPanel>();
            plRoads.relativePosition = new Vector3(1, ply);
            plRoads.isVisible = false;
            plRoads.tooltip = "Select the Road types to convert from and to";

            int x1 = 10;
            int x2 = 280;
            int y = 1;
            int cb = 0;
            int step = 0;
            //load the update types but hide them
            foreach (string s in m_roads)
            {
                if (s.StartsWith("Label "))
                {
                    try
                    {
                        addLabel(plRoads, y, x1 - 5, "From ==> ", true);
                        addLabel(plRoads, y, x2 - 5, "To ==> ", true);
                        y += 20;
                    }
                    catch (Exception ex)
                    {
                        ARUT.WriteError("Error in GenerateplTypes: ", ex);
                    }
                }
                else
                {
                    string t = "";
                    if (s == "Ground" || s == "Bridge" || s == "Tunnel" || s == "Slope" || s == "Curve")
                    {
                        t = "These types will be updated.";
                        deletes.Add(addCheckbox(plDelete, y, x1 + step, s, t, true));
                        step += 110;
                        if (s == "Curve")
                            y += 25;
                    }
                    else
                    {
                        t = String.Format("If checked {0} sections will be displayed.", s);
                        fromTypes.Add(addCheckbox(plRoads, y, x1, s, t, true));
                        toTypes.Add(addCheckbox(plRoads, y, x2, s, t, true));
                        fromTypes[cb].eventCheckChanged += FromTypes_eventCheckChanged;
                        toTypes[cb].eventCheckChanged += ToTypes_eventCheckChanged;
                    }
                    y += 25;
                    cb++;
                }
            }
            plRoads.size = new Vector2(panel.width, 200);
            //return the top of the roads panels
            return ply + y;
        }
        private UILabel addLabel(UIPanel panel, int yPos, int xPos, string text, string t, bool hidden)
        {
            UILabel lb = panel.AddUIComponent<UILabel>();
            lb.relativePosition = new Vector3(xPos, yPos);
            lb.height = 0;
            lb.width = 80;
            lb.text = text;
            lb.tooltip = t;
            lb.isVisible = hidden;

            return lb;
        }
        private void GenerateplDistricts(UIPanel panel, int ply, int plx)
        {
            //ARUT.WriteLog("Entering GenerateplDistricts");

            //Show the road type option
            plDistricts = panel.AddUIComponent<UIPanel>();
            plDistricts.relativePosition = new Vector3(1, ply);
            plDistricts.isVisible = false;
            plDistricts.tooltip = "Select an area to update the district.";

            addLabel(plDistricts, 1, 1, "Toggle the check box to create or delete the district. (Undo is not available)", true);
            addLabel(plDistricts, 20, 1, "Add to an existing District by starting the selection within the district.", true);

            cbDistrictToggle = addCheckbox(plDistricts, 40, 15, "Checked for Create (Update), unchecked for delete", "Check to create a district, uncheck to delete", true);

            // WriteLog("Leaving GenerateplDistricts");
        }
        private UICheckBox addCheckbox(UIPanel panel, int yPos, int xPos, string text, string tooltip, bool hidden)
        {
            var cb = panel.AddUIComponent<UICheckBox>();
            cb.relativePosition = new Vector3(xPos, yPos);
            cb.height = 0;
            cb.width = 80;

            var label = panel.AddUIComponent<UILabel>();
            label.relativePosition = new Vector3(xPos + 25, yPos + 3);
            cb.label = label;
            cb.label.tabIndex = cb.GetInstanceID();
            cb.text = text;

            UISprite uncheckSprite = cb.AddUIComponent<UISprite>();
            uncheckSprite.height = 20;
            uncheckSprite.width = 20;
            uncheckSprite.relativePosition = new Vector3(0, 0);
            uncheckSprite.spriteName = "check-unchecked";

            UISprite checkSprite = cb.AddUIComponent<UISprite>();
            checkSprite.height = 20;
            checkSprite.width = 20;
            checkSprite.relativePosition = new Vector3(0, 0);
            checkSprite.spriteName = "check-checked";

            cb.checkedBoxObject = checkSprite;
            cb.disabledColor = new Color(127.0f / 255.0f, 127.0f / 255.0f, 127.0f / 255.0f, 1.0f);
            label.disabledColor = new Color(127.0f / 255.0f, 127.0f / 255.0f, 127.0f / 255.0f, 1.0f);
            cb.tooltip = tooltip;
            label.tooltip = cb.tooltip;
            cb.isChecked = false;
            cb.label.isVisible = hidden;
            cb.isVisible = hidden;

            return cb;
        }
Esempio n. 54
0
        public static void AddThemesTab()
        {
            if (container != null)
            {
                return;
            }

            UITabstrip tabstrip = ToolsModifierControl.policiesPanel.Find("Tabstrip") as UITabstrip;

            // Add a custom tab
            tab = tabstrip.AddTab("Themes");
            tab.stringUserData = "Themes";
            tab.textScale = 0.875f;

            // recalculate the width of the tabs
            for (int i = 0; i < tabstrip.tabCount; i++)
            {
                tabstrip.tabs[i].width = tabstrip.width / ((float)tabstrip.tabCount - 1);
            }

            // The container for the policies was created by the game when we added the tab
            var pageIndex = tabstrip.tabPages.childCount - 1;
            container = (UIPanel)tabstrip.tabPages.components[pageIndex];

            container.autoLayout = true;
            container.autoLayoutDirection = LayoutDirection.Vertical;
            container.autoLayoutPadding.top = 5;

            // Only make the container visible if our tab was selected when the panel was closed last time
            container.isVisible = tabstrip.selectedIndex == pageIndex;

            // Theme buttons
            themePolicyButtons = UIFastList.Create<UIThemePolicyItem>(container);
            themePolicyButtons.width = 364f;
            themePolicyButtons.rowHeight = 49f;
            themePolicyButtons.autoHideScrollbar = true;

            // The panel holding the controls
            controls = container.AddUIComponent<UIPanel>();

            controls.width = container.width;
            controls.height = 100f;
            controls.autoLayout = true;
            controls.autoLayoutDirection = LayoutDirection.Vertical;
            controls.autoLayoutPadding.top = 5;

            // Add a checkbox to toggle "Blacklist Mode"
            UICheckBox blacklistModeCheckBox = CreateCheckBox(controls);
            blacklistModeCheckBox.name = "Blacklist Mode Checkbox";
            blacklistModeCheckBox.gameObject.AddComponent<BlacklistModeCheckboxContainer>();
            blacklistModeCheckBox.text = "Allow buildings which are not in any theme";
            blacklistModeCheckBox.isChecked = false;

            blacklistModeCheckBox.eventCheckChanged += delegate(UIComponent component, bool isChecked)
            {
                lock (component)
                {
                    var districtId1 = ToolsModifierControl.policiesPanel.targetDistrict;

                    Singleton<BuildingThemesManager>.instance.ToggleBlacklistMode(districtId1, isChecked);
                }

            };

            // Add a checkbox to "Enable Theme Management for this district"
            UICheckBox enableThemeManagementCheckBox = CreateCheckBox(controls);
            enableThemeManagementCheckBox.name = "Theme Management Checkbox";
            enableThemeManagementCheckBox.gameObject.AddComponent<ThemeManagementCheckboxContainer>();
            enableThemeManagementCheckBox.text = "Enable Theme Management for this district";
            enableThemeManagementCheckBox.isChecked = false;

            enableThemeManagementCheckBox.eventCheckChanged += delegate(UIComponent component, bool isChecked)
            {
                lock (component)
                {
                    var districtId1 = ToolsModifierControl.policiesPanel.targetDistrict;

                    Singleton<BuildingThemesManager>.instance.ToggleThemeManagement(districtId1, isChecked);
                }

            };

            // Add a button to show the Building Theme Manager
            UIButton showThemeManager = GUI.UIUtils.CreateButton(controls);
            showThemeManager.width = controls.width;
            showThemeManager.text = "Theme Manager";

            showThemeManager.eventClick += (c, p) => GUI.UIThemeManager.instance.Toggle();

            RefreshThemesContainer();
        }
        private void GenerateRoadPanels(UIPanel panel, ref UIPanel pFrom, ref UIPanel pTo, List<UICheckBox> lFrom, List<UICheckBox> lTo, string[] road, string name, int ply, int plx)
        {
            //Show the road from option
            pFrom = panel.AddUIComponent<UIPanel>();
            pFrom.relativePosition = new Vector3(1, ply);
            pFrom.size = new Vector2(25 * 12, panel.width / 2);
            pFrom.isVisible = false;
            pFrom.tooltip = "Select the type of road to convert.";
            //Show the road to option
            pTo = panel.AddUIComponent<UIPanel>();
            pTo.relativePosition = new Vector3(285, ply);
            pTo.size = new Vector2(25 * 12, panel.width / 2);
            pTo.isVisible = false;
            pTo.tooltip = "Select the type of road to convert to.";

            addLabel(pFrom, 1, 5, pFrom.tooltip, true);
            addLabel(pTo, 1, 5, pTo.tooltip, true);

            int cb = 0;
            int y = 22;
            //load the update roads but hide them
            foreach (string s in road)
            {
                string t = String.Format("If checked {0} sections will be converted.", s);
                lFrom.Add(addCheckbox(pFrom, y, 11, s, t, true));
                t = String.Format("If checked sections will convert to {0}.", s);
                lTo.Add(addCheckbox(pTo, y, 11, s, t, true));
                lFrom[cb].eventCheckChanged += FromRoad_eventCheckChanged;
                lTo[cb].eventCheckChanged += ToRoad_eventCheckChanged;
                cb++;
                y += 25;
            }
        }
        private void GenerateplDelete(UIPanel panel, int ply, int plx)
        {
            //Show the road type option
            plDelete = panel.AddUIComponent<UIPanel>();
            plDelete.relativePosition = new Vector3(1, ply);
            plDelete.isVisible = false;
            plDelete.tooltip = "Select the type of items to delete.";

            int cb = 0;
            int x = 15;
            int y = 1;

            //load the bulldoze road type options
            addLabel(plDelete, y, 5, "Select your delete options.", true);

            y += 20;
            foreach (string s in m_deletes)
            {
                if (s == "Label Lines")
                {
                    lLines = addLabel(plDelete, y, 10, "Lines", true);
                    y += 20;
                }
                else if (s == "Label Properties")
                {
                    lProperties = addLabel(plDelete, y, 10, "Properties", true);
                    y += 20;
                }
                else
                {
                    string t = "These items will be deleted.";
                    if (s.StartsWith("B "))
                    {
                        deletes.Add(addCheckbox(plDelete, y, x + 210, s.Replace("B ", ""), t, true));
                        y += 25;
                    }
                    else
                    {
                        deletes.Add(addCheckbox(plDelete, y, x, s, t, true));
                        if (s == "Buildings" || s == "Trees" || s == "Props") { y += 25; }
                    }
                    deletes[cb].eventCheckChanged += DeleteTypes_eventCheckChanged;
                    cb += 1;
                }
            }

            plDelete.size = new Vector2(panel.width, y + 25);
        }
        private 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 - _buttons.height - 20 - 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 (0, 0, 1, 1);
            _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 = 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 = 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);
            };
        }
Esempio n. 58
0
        public static UISlider CreateSlider(UIPanel parent, float min, float max)
        {
            UIPanel bg = parent.AddUIComponent<UIPanel>();
            bg.backgroundSprite = "ChirpScrollbarTrack";
            bg.size = new Vector2(parent.width - (parent.autoLayoutPadding.left * 2), 17);

            UISlider slider = bg.AddUIComponent<UISlider>();
            slider.area = new Vector4(8, 0, bg.width - 16, 15);
            slider.height = 17;
            slider.autoSize = false;
            //slider.backgroundSprite = "ChirpScrollbarTrack";

            slider.maxValue = max;
            slider.minValue = min;

            slider.fillPadding = new RectOffset(10, 10, 0, 0);

            UISprite thumb = slider.AddUIComponent<UISprite>();
            thumb.size = new Vector2(16, 16);
            thumb.position = new Vector2(0, 0);
            thumb.spriteName = "ToolbarIconZoomOutGlobeDisabled";

            slider.value = 0.0f;
            slider.thumbObject = thumb;

            return slider;
        }
Esempio n. 59
0
        /// <summary>
        /// Creates all objects based on the given settings. Call this first.
        /// </summary>
        /// <param name="settings">The settings (only uses x and y position).</param>
        public void start(BBPanelSettings settings)
        {
            relativePosition = new Vector3(settings.x, settings.y);
            canFocus = true;
            isInteractive = true;
            isVisible = true;
            backgroundSprite = "MenuPanel2";
            color = new Color32(255, 255, 255, 255);
            size = new Vector2(400,344);
            name = "Better Budget - Custom Panel Creator";

            UILabel label = AddUIComponent<UILabel>();
            label.text = "Custom Panel Creator";
            label.transform.parent = this.transform;
            label.relativePosition = new Vector3((width/2) - ((label.text.Length/2)*8), 12);
            label.name = "Title Label";
            UIDragHandle draghandler = AddUIComponent<UIDragHandle>();
            draghandler.relativePosition = new Vector3(0,0);
            draghandler.transform.parent = this.transform;
            draghandler.target = this;
            draghandler.name = "Drag Handler";
            // icon
            _icon = AddUIComponent<UISprite>();
            _icon.relativePosition = new Vector3(2, 2);
            _icon.spriteName = "MoneyThumb";
            _icon.size = new Vector2(40, 40);
            _icon.eventClick += togglePanel;
            _icon.BringToFront();

            // container Unselected
            _containerUnselected = AddUIComponent<UIPanel>();
            _containerUnselected.name = "Slider Container Unselected";
            _containerUnselected.backgroundSprite = "GenericPanel";
            _containerUnselected.relativePosition = new Vector3(30, 60);
            _containerUnselected.size = new Vector2(145, 145);
            _containerUnselected.autoLayout = true;
            _containerUnselected.autoSize = false;
            _containerUnselected.autoLayoutStart = LayoutStart.TopLeft;
            _containerUnselected.autoLayoutDirection = LayoutDirection.Horizontal;
            _containerUnselected.autoLayoutPadding = new RectOffset(5, 0, 5, 0);
            _containerUnselected.wrapLayout = true;

            // Arrow
            _spriteArrow = AddUIComponent<UISprite>();
            _spriteArrow.name = "Arrow Sprite";
            _spriteArrow.spriteName = "ArrowRight";
            _spriteArrow.relativePosition = new Vector3(163, 100);
            _spriteArrow.size = new Vector3(64, 64);

            // container Selected
            _containerSelected = AddUIComponent<UIPanel>();
            _containerSelected.name = "Slider Container Selected";
            _containerSelected.backgroundSprite = "GenericPanel";
            _containerSelected.relativePosition = new Vector3(225, 60);
            _containerSelected.size = new Vector2(145, 145);
            _containerSelected.autoLayout = true;
            _containerSelected.autoSize = false;
            _containerSelected.autoLayoutStart = LayoutStart.TopLeft;
            _containerSelected.autoLayoutDirection = LayoutDirection.Horizontal;
            _containerSelected.autoLayoutPadding = new RectOffset(5, 0, 5, 0);
            _containerSelected.wrapLayout = true;

            // budget icons
            for(int i = 0; i < spriteIcon.Length; i++)
            {
                UISprite sprite = _containerUnselected.AddUIComponent<UISprite>();
                sprite.name = serviceSlider[i];
                sprite.spriteName = spriteIcon[i];
                sprite.size = new Vector2(30, 30);
                sprite.eventClick += toggleSprite;
                sprite.isInteractive = true;
            }

            // text field
            _textfield = AddUIComponent<UITextField>();
            _textfield.name = "Text Field Name";
            _textfield.size = new Vector2(340,25);
            _textfield.relativePosition = new Vector3(30, 225);
            _textfield.text = "Budget";
            _textfield.enabled = true;
            _textfield.builtinKeyNavigation = true;
            _textfield.isInteractive = true;
            _textfield.readOnly = false;
            _textfield.submitOnFocusLost = true;
            _textfield.horizontalAlignment = UIHorizontalAlignment.Left;
            _textfield.selectionSprite = "EmptySprite";
            _textfield.selectionBackgroundColor = new Color32(0, 171, 234, 255);
            _textfield.normalBgSprite = "TextFieldPanel";
            _textfield.textColor = new Color32(174, 197, 211, 255);
            _textfield.disabledTextColor = new Color32(254, 254, 254, 255);
            _textfield.textScale = 1.3f;
            _textfield.opacity = 1f;
            _textfield.color = new Color32(58, 88, 104, 255);
            _textfield.disabledColor = new Color32(254, 254, 254, 255);

            // is Left toggle button and label
            _checkbox = AddUIComponent<UISprite>();
            _checkbox.name = "Checkbox";
            _checkbox.size = new Vector2(25, 25);
            _checkbox.relativePosition = new Vector3(122, 262);
            _checkbox.spriteName = "AchievementCheckedFalse";
            _checkbox.isInteractive = true;
            _checkbox.eventClick += toggleIsLeft;
            UILabel labelCheckbox = AddUIComponent<UILabel>();
            labelCheckbox.name = "Checkbox Label";
            labelCheckbox.text = "Rightsided";
            labelCheckbox.relativePosition = new Vector3(165, 263);
            labelCheckbox.textScale = 1.3f;

            // create button
            UIButton button = AddUIComponent<UIButton>();
            button.name = "Create Button";
            button.size = new Vector2(340, 30);
            button.relativePosition = new Vector3(30, 300);
            button.normalBgSprite = "ButtonMenu";
            button.focusedBgSprite = "ButtonMenuFocused";
            button.hoveredBgSprite = "ButtonMenuHovered";
            button.pressedBgSprite = "ButtonMenuPressed";
            button.text = "Create Custom Panel";
            button.textScale = 1.3f;
            button.eventClick += createPanel;

            isOpen = false;
            updateState();
        }
        private void GenerateplTerrain(UIPanel panel, int ply, int plx)
        {
            //Show the road type option
            plTerrain = panel.AddUIComponent<UIPanel>();
            plTerrain.relativePosition = new Vector3(1, ply);
            plTerrain.isVisible = false;
            plTerrain.tooltip = "Select or enter the height desired.";

            int x = 1;
            int y = 1;
            int inset = 65;

            string s = "Enter a value for the new terrain height";
            string t = "Enter the height desired.";
            addLabel(plTerrain, y, x, s, t, true);

            y += 25;
            s = "Current: ";
            t = "Look here for current new Terrain height.";
            addLabel(plTerrain, y, x, s, t, true);

            s = "0.00";
            lHeight = addLabel(plTerrain, y, x + inset, s, t, true);
            lHeight.autoSize = false;
            lHeight.width = 100;
            lHeight.height = 50;
            lHeight.textAlignment = UIHorizontalAlignment.Right;

            y += 25;
            s = "Height";
            addLabel(plTerrain, y, x, s, t, true);

            tfTerrainHeight = addTextBox(plTerrain, "TerrainHeight", "0,00", y, x + inset, 100, 25, "Use values between 2000 and 0.0", true, true);
            tfTerrainHeight.horizontalAlignment = UIHorizontalAlignment.Right;
            tfTerrainHeight.eventKeyDown += TerrainHeight_eventKeyDown;
            tfTerrainHeight.eventTextChanged += TerrainHeight_eventTextChanged;

            btValidate = addButton(plTerrain, "Validate", "Validate the number in the text field.", y, x + inset + 105, 125, 25);
            btValidate.isVisible = true;
            btValidate.state = UIButton.ButtonState.Disabled;
            btValidate.eventClick += Validate_eventClick;

            y += 25;
            s = "Game Height";
            t = "Click to load in the current Games set Terrain Height";
            UIButton GameHeight = addButton(plTerrain, s, t, y, x, 100, 25);
            GameHeight.eventClick += GameHeight_eventClick;
        }