Esempio n. 1
0
 private void UpdateRightColumn(Gum.Widgets.WidgetListView ListView)
 {
     for (var i = 0; i < SelectedResources.Count; ++i)
     {
         UpdateLineItemText(ListView.GetChild(i + 1), SelectedResources[i]);
     }
 }
Esempio n. 2
0
        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;
        }