protected override void FillTab()
        {
            if (this.rightClicked != null && this.infoFloatMenu != null && Find.WindowStack.Top() != this.infoFloatMenu)
            {
                this.rightClicked  = null;
                this.infoFloatMenu = null;
            }
            Text.Font = GameFont.Small;
            IPlantToGrowSettable plantToGrowSettable = (IPlantToGrowSettable)Find.Selector.SelectedObjects.First <object>();
            Rect position = new Rect(ITab_Growing_Alternate.PaddingSize.x, ITab_Growing_Alternate.PaddingSize.y, ITab_Growing_Alternate.ContentSize.x, ITab_Growing_Alternate.ContentSize.y);

            GUI.BeginGroup(position);
            Rect viewRect = new Rect(0f, 0f, position.width, position.height);

            this.scrollView.Begin(viewRect);
            float num  = 0f;
            int   num2 = 0;

            foreach (ThingDef current in GenPlant.ValidPlantTypesForGrower(Find.Selector.SingleSelectedObject))
            {
                float num3 = Text.CalcHeight(current.LabelCap, ITab_Growing_Alternate.ContentSize.x - 32f);
                if (num3 < 30f)
                {
                    num3 = 30f;
                }
                GUI.color = Color.white;
                Rect    rect          = new Rect(0f, num + 1f, ITab_Growing_Alternate.ContentSize.x - 28f, num3);
                Rect    position2     = new Rect(0f, rect.y - 1f, rect.width, rect.height + 2f);
                Vector2 mousePosition = Event.current.mousePosition;
                if (position2.Contains(mousePosition) && mousePosition.y > this.scrollView.Position.y && mousePosition.y < this.scrollView.Position.y + this.scrollView.ViewHeight)
                {
                    GUI.DrawTexture(position2, TexUI.HighlightTex);
                }
                else if (num2 % 2 == 0)
                {
                    GUI.DrawTexture(position2, TabDrawer.AlternateRowTexture);
                }
                rect.x     += 6f;
                rect.y     += 3f;
                rect.width -= 4f;
                Widgets.InfoCardButton(rect.x, rect.y, current);
                rect.x     += 34f;
                rect.width -= 34f;
                if ((Widgets.InvisibleButton(new Rect(rect.x, rect.y, rect.width - 36f, rect.height)) || WidgetDrawer.DrawLabeledRadioButton(rect, current.LabelCap, current == plantToGrowSettable.GetPlantDefToGrow(), false)) && plantToGrowSettable.GetPlantDefToGrow() != current)
                {
                    plantToGrowSettable.SetPlantDefToGrow(current);
                    SoundDefOf.RadioButtonClicked.PlayOneShotOnCamera();
                    ConceptDatabase.KnowledgeDemonstrated(ConceptDefOf.SetGrowingZonePlant, KnowledgeAmount.Total);
                }
                num += num3;
                num += 2f;
                num2++;
            }
            this.scrollView.End(num);
            TutorUIHighlighter.HighlightOpportunity("GrowingZoneSetPlant", new Rect(0f, 0f, ITab_Growing_Alternate.ContentSize.x, num));
            GUI.EndGroup();
        }
Beispiel #2
0
        private void DoTabButton(MainTabDef def, float posX, float width)
        {
            Text.Font = GameFont.Small;
            Rect     rect = new Rect(posX, (float)(Screen.height - 35), width, 35f);
            SoundDef mouseoverButtonCategory = SoundDefOf.MouseoverButtonCategory;

            if (WidgetsSubtle.ButtonSubtle(rect, def.LabelCap, def.Window.TabButtonBarPercent, -1f, mouseoverButtonCategory))
            {
                this.ToggleTab(def, true);
            }
            if (!def.tutorHighlightTag.NullOrEmpty())
            {
                TutorUIHighlighter.HighlightOpportunity(def.tutorHighlightTag, rect);
            }
            if (!def.description.NullOrEmpty())
            {
                TooltipHandler.TipRegion(rect, def.description);
            }
        }
Beispiel #3
0
 private void DoTabs(IEnumerable <ITab> tabs)
 {
     try
     {
         Type  openTabType = this.OpenTabType;
         float top         = base.PaneTopY - 30f;
         float num         = 360f;
         float width       = 0f;
         bool  flag        = false;
         foreach (ITab current in tabs)
         {
             if (current.IsVisible)
             {
                 Rect rect = new Rect(num, top, 72f, 30f);
                 width     = num;
                 Text.Font = GameFont.Small;
                 if (Widgets.TextButton(rect, current.labelKey.Translate(), true, false))
                 {
                     this.ToggleTab(current);
                 }
                 if (!current.tutorHighlightTag.NullOrEmpty())
                 {
                     TutorUIHighlighter.HighlightOpportunity(current.tutorHighlightTag, rect);
                 }
                 if (current.GetType() == openTabType)
                 {
                     this.DoTabGui(current);
                     this.RecentHeight = 700f;
                     flag = true;
                 }
                 num -= 72f;
             }
         }
         if (flag)
         {
             GUI.DrawTexture(new Rect(0f, top, width, 30f), MainTabWindow_Inspect.TabButtonFillTex);
         }
     }
     catch (Exception ex)
     {
         Log.ErrorOnce(ex.ToString(), 742783);
     }
 }
        protected override void FillTab()
        {
            ConceptDatabase.KnowledgeDemonstrated(ConceptDefOf.StorageTab, KnowledgeAmount.GuiFrame);
            ConceptDecider.TeachOpportunity(ConceptDefOf.StorageTabCategories, OpportunityType.GuiFrame);
            ConceptDecider.TeachOpportunity(ConceptDefOf.StoragePriority, OpportunityType.GuiFrame);
            IStoreSettingsParent selStoreSettingsParent = this.SelStoreSettingsParent;
            StorageSettings      settings = selStoreSettingsParent.GetStoreSettings();
            Rect position = new Rect(0f, 0f, ITab_Storage_Enhanced.WinSize.x, ITab_Storage_Enhanced.WinSize.y).ContractedBy(10f);

            GUI.BeginGroup(position);
            Text.Font = GameFont.Small;
            Rect rect = new Rect(0f, 0f, 160f, 29f);

            if (Widgets.TextButton(rect, "Priority".Translate() + ": " + settings.Priority.Label(), true, false))
            {
                List <FloatMenuOption> list       = new List <FloatMenuOption>();
                IEnumerator            enumerator = Enum.GetValues(typeof(StoragePriority)).GetEnumerator();
                try
                {
                    while (enumerator.MoveNext())
                    {
                        StoragePriority storagePriority = (StoragePriority)((byte)enumerator.Current);
                        if (storagePriority != StoragePriority.Unstored)
                        {
                            StoragePriority localPr = storagePriority;
                            list.Add(new FloatMenuOption(localPr.Label(), delegate
                            {
                                settings.Priority = localPr;
                                ConceptDatabase.KnowledgeDemonstrated(ConceptDefOf.StoragePriority, KnowledgeAmount.Total);
                            }, MenuOptionPriority.Medium, null, null));
                        }
                    }
                }
                finally
                {
                    IDisposable disposable = enumerator as IDisposable;
                    if (disposable != null)
                    {
                        disposable.Dispose();
                    }
                }
                Find.WindowStack.Add(new FloatMenu(list, false));
            }

            var clearSearchRect   = new Rect(position.width - 33f, (29f - 14f) / 2f, 14f, 14f);
            var shouldClearSearch = (Widgets.ImageButton(clearSearchRect, Widgets.CheckboxOffTex));

            var searchRect = new Rect(165f, 0f, position.width - 160f - 20f, 29f);
            var watermark  = (searchText != string.Empty || isFocused) ? searchText : "Search";

            var escPressed     = (Event.current.type == EventType.KeyDown && Event.current.keyCode == KeyCode.Escape);
            var clickedOutside = (!Mouse.IsOver(searchRect) && Event.current.type == EventType.MouseDown);

            if (!isFocused)
            {
                GUI.color = new Color(1f, 1f, 1f, 0.6f);
            }

            GUI.SetNextControlName("StorageSearchInput");
            var searchInput = Widgets.TextField(searchRect, watermark);

            GUI.color = Color.white;

            if (isFocused)
            {
                searchText = searchInput;
            }

            if ((GUI.GetNameOfFocusedControl() == "StorageSearchInput" || isFocused) && (escPressed || clickedOutside))
            {
                GUIUtility.keyboardControl = 0;
                isFocused = false;
            }
            else if (GUI.GetNameOfFocusedControl() == "StorageSearchInput" && !isFocused)
            {
                isFocused = true;
            }

            if (shouldClearSearch)
            {
                searchText = string.Empty;
            }

            TutorUIHighlighter.HighlightOpportunity("StoragePriority", rect);
            ThingFilter parentFilter = null;

            if (selStoreSettingsParent.GetParentStoreSettings() != null)
            {
                parentFilter = selStoreSettingsParent.GetParentStoreSettings().filter;
            }

            Rect rect2 = new Rect(0f, 35f, position.width, position.height - 35f);

            HelperThingFilterUI.DoThingFilterConfigWindow(rect2, ref this.scrollPosition, settings.filter, parentFilter, 8, searchText);
            GUI.EndGroup();
        }