コード例 #1
0
ファイル: PortMenu.cs プロジェクト: somnomania/smapi-mod-dump
        internal PortFilterComponent(PortFilter filter, PortFilterType type, PortDeleteFilter onDeleted)
        {
            this.Filter = filter;

            int selected = 0;

            if (ItemCategories.NumToName.TryGetValue(this.Filter.Category, out string category))
            {
                selected = ItemCategories.Names.IndexOf(category);
            }

            this.Dropdown = new DropdownComponent(ItemCategories.Names, "", 300)
            {
                visible = true, SelectionIndex = selected
            };
            this.Dropdown.DropDownOptionSelected += DropDownOptionSelected;

            this.DeleteButton = new ButtonComponent("", Sprites.Icons.Sheet, Sprites.Icons.Clear, 2, true)
            {
                visible = true, HoverText = "Delete"
            };
            this.DeleteButton.ButtonPressed += () => onDeleted(Filter);

            if (type == PortFilterType.REQUESTS)
            {
                BuildSlider();
            }
        }
コード例 #2
0
ファイル: PortMenu.cs プロジェクト: somnomania/smapi-mod-dump
 private void BuildSlider()
 {
     if (Filter.RequestAmount == int.MaxValue)
     {
         this.RequestAllToggle = new ButtonComponent("Until full", Sprites.Icons.Sheet, Sprites.Icons.Set, 2, true)
         {
             visible = true, HoverText = "Click to request a specific amount"
         };
         this.RequestAllToggle.ButtonPressed += () => { Filter.RequestAmount = 1; BuildSlider(); };
         this.RequestAmountSlider             = null;
     }
     else
     {
         int min = Math.Max(0, 100 * (int)((Filter.RequestAmount - 1) / 100));
         this.RequestAmountSlider = new SliderComponent("Amount", Math.Max(1, min), min + 101, 1, Filter.RequestAmount, true, RequestAmountSlider?.X ?? 0, RequestAmountSlider?.Y ?? 0)
         {
             visible = true
         };
         this.RequestAmountSlider.SliderValueChanged += (v) => { Filter.RequestAmount = (int)v; RequestAmountChanged = true; };
         this.RequestAmountChanged = false;
         this.RequestAllToggle     = null;
     }
     UpdateLayout(Dropdown.X, Dropdown.Y, Width, Height);
 }