private void SetupMinimumMaximum(Item item, TableRow row) { // the spin boxes are on if (Data.IsAccepting(item.PrototypeID)) { SpinBox spinner = GetSpinner(item, true); row.AddToRowAt(2, spinner); spinner = GetSpinner(item, false); row.AddToRowAt(3, spinner); } // the spinboxes are off else { row.AddToRowAt(2, new Label(Control.Manager) { Text = "---", Alignment = Alignment.MiddleCenter }, true); row.AddToRowAt(3, new Label(Control.Manager) { Text = "---", Alignment = Alignment.MiddleCenter }, true); } }
public override Table GetControl(Control parent) { // Setup the stockpile table Control = new Table(Manager) { Name = "StockpileTable", Anchor = Anchors.All, RowHeight = 24 }; Control.Init(); // get a list of all items in the game List <Item> items = World.Prototypes.GetAll <Item>(); Control.AddColumns(new string[] { "Item", "Amount", "Minimum", "Maximum" }); foreach (Item item in items) { TableRow currentRow = Control.AddRow(); currentRow.Tag = item; Button btn = new Button(Manager) { Name = string.Format("{0}-toggle", item.PrototypeID), Text = item.Name, Height = 20, Width = 100, CanFocus = false, Tag = item }; btn.Init(); btn.ToolTip = new ToolTip(Manager) { Text = "Enables or disables this item at the stockpile.\n\n" + item.Description }; // Add event handler to listen for toggles on the button btn.Click += new EventHandler(ToggleStockPileItem); currentRow.AddToRowAt(0, btn, true); Control.AddAt(1, Control.RowsCount - 1, Data.Amount(item.PrototypeID).ToString()); SetupMinimumMaximum(item, currentRow); Data.Get(item.PrototypeID).OnAmountChanged += new StockPileData.StockpileEventHandler(StockpileRenderer_OnAmountChanged); } return(base.GetControl(parent)); }