private void UpdateRightColumn(Gum.Widgets.WidgetListView ListView) { for (var i = 0; i < SelectedResources.Count; ++i) { UpdateLineItemText(ListView.GetChild(i + 1), SelectedResources[i]); } }
private void BuildTab(Gum.Widgets.TabPanel TabPanel, String TabName, IEnumerable <BuildableItem> ItemSource, Action <BuildableItem, Gum.Widget, Gum.Widget> BuildDescriptionPanel) { var panel = TabPanel.AddTab(TabName, new Widget { Border = "border-thin", Padding = new Margin(4, 4, 0, 0) }); Gum.Widgets.WidgetListView list = null; Gum.Widget descriptionPanel = null; Gum.Widget buildButton = null; list = panel.AddChild(new Gum.Widgets.WidgetListView { ItemHeight = 32, MinimumSize = new Point(256, 0), AutoLayout = Gum.AutoLayout.DockLeft, OnSelectedIndexChanged = (sender) => { var selectedItem = (sender as Gum.Widgets.WidgetListView).SelectedItem; if (selectedItem != null) { descriptionPanel.Clear(); buildButton.Hidden = false; BuildDescriptionPanel(selectedItem.Tag as BuildableItem, descriptionPanel, buildButton); descriptionPanel.Layout(); buildButton.Invalidate(); } } }) as Gum.Widgets.WidgetListView; var bottomRow = panel.AddChild(new Widget { MinimumSize = new Point(0, 32), AutoLayout = Gum.AutoLayout.DockBottom }); buildButton = bottomRow.AddChild(new Widget { Text = "BUILD", TextHorizontalAlign = HorizontalAlign.Center, TextVerticalAlign = VerticalAlign.Center, Border = "border-button", //OnClick = (sender, args) => BuildClicked(list.SelectedItem.Tag as BuildableItem), AutoLayout = AutoLayout.DockRight }); descriptionPanel = panel.AddChild(new Widget { AutoLayout = Gum.AutoLayout.DockFill, OnLayout = (sender) => sender.Rect.Height -= 36 }); foreach (var buildableItem in ItemSource) { var row = new Gum.Widget { Background = new TileReference("basic", 0), Tag = buildableItem }; list.AddItem(row); if (buildableItem.Icon != null) { row.AddChild(new Gum.Widget { MinimumSize = new Point(32, 32), Background = buildableItem.Icon, AutoLayout = Gum.AutoLayout.DockLeft }); } row.AddChild(new Gum.Widget { Text = buildableItem.Name, AutoLayout = Gum.AutoLayout.DockFill }); } list.SelectedIndex = 0; }