示例#1
0
        public bool Execute(IDebugConsole console, params string[] args)
        {
            var window = new SS14Window("UITest");

            window.AddToScreen();
            var scroll = new ScrollContainer();

            window.Contents.AddChild(scroll);
            scroll.SetAnchorAndMarginPreset(Control.LayoutPreset.Wide);
            var vBox = new VBoxContainer();

            scroll.AddChild(vBox);

            var progressBar = new ProgressBar {
                MaxValue = 10, Value = 5
            };

            vBox.AddChild(progressBar);

            var optionButton = new OptionButton();

            optionButton.AddItem("Honk");
            optionButton.AddItem("Foo");
            optionButton.AddItem("Bar");
            optionButton.AddItem("Baz");
            optionButton.OnItemSelected += eventArgs => optionButton.SelectId(eventArgs.Id);
            vBox.AddChild(optionButton);
            return(false);
        }
示例#2
0
    public void InitResources(List <string> resourceList, Func <string, Texture> getTextureFunc)
    {
        resourceSelect.Clear();
        resourceSelect.AddItem("");
        foreach (var res in resourceList)
        {
            resourceSelect.AddItem(res);
        }

        getTexture = getTextureFunc;
    }
            public GraphicsControl(IConfigurationManager cfg, IPrototypeManager proMan)
            {
                _cfg = cfg;
                _prototypeManager = proMan;
                var vBox = new BoxContainer
                {
                    Orientation = LayoutOrientation.Vertical
                };

                var contents = new BoxContainer
                {
                    Orientation    = LayoutOrientation.Vertical,
                    Margin         = new Thickness(2, 2, 2, 0),
                    VerticalExpand = true,
                };

                VSyncCheckBox = new CheckBox {
                    Text = Loc.GetString("ui-options-vsync")
                };
                contents.AddChild(VSyncCheckBox);
                VSyncCheckBox.OnToggled += OnCheckBoxToggled;

                FullscreenCheckBox = new CheckBox {
                    Text = Loc.GetString("ui-options-fullscreen")
                };
                contents.AddChild(FullscreenCheckBox);
                FullscreenCheckBox.OnToggled += OnCheckBoxToggled;

                LightingPresetOption = new OptionButton {
                    MinSize = (100, 0)
                };
                LightingPresetOption.AddItem(Loc.GetString("ui-options-lighting-very-low"));
                LightingPresetOption.AddItem(Loc.GetString("ui-options-lighting-low"));
                LightingPresetOption.AddItem(Loc.GetString("ui-options-lighting-medium"));
                LightingPresetOption.AddItem(Loc.GetString("ui-options-lighting-high"));
                LightingPresetOption.OnItemSelected += OnLightingQualityChanged;

                contents.AddChild(new BoxContainer
                {
                    Orientation = LayoutOrientation.Horizontal,
                    Children    =
                    {
                        new Label   {
                            Text = Loc.GetString("ui-options-lighting-label")
                        },
                        new Control {
                            MinSize = (4, 0)
                        },
示例#4
0
        protected override Control MakeUI(object?value)
        {
            DebugTools.Assert(value !.GetType().IsEnum);
            var enumType = value.GetType();
            var enumList = Enum.GetValues(enumType);

            var optionButton = new OptionButton();

            foreach (var val in enumList)
            {
                var label = val?.ToString();
                if (label == null)
                {
                    continue;
                }
                optionButton.AddItem(label, Convert.ToInt32(val));
            }

            optionButton.SelectId(Convert.ToInt32(value));
            optionButton.Disabled = ReadOnly;

            if (!ReadOnly)
            {
                var underlyingType = Enum.GetUnderlyingType(value.GetType());
                optionButton.OnItemSelected += e =>
                {
                    optionButton.SelectId(e.Id);
                    ValueChanged(Convert.ChangeType(e.Id, underlyingType));
                };
            }

            return(optionButton);
        }
示例#5
0
    public void OnStartFor(OrganelleTemplate organelle)
    {
        storedOrganelle = organelle;
        shownChoices    = SimulationParameters.Instance.GetCloudCompounds();

        foreach (var choice in shownChoices)
        {
            compounds.AddItem(choice.Name);
        }

        // Select glucose by default
        var defaultCompoundIndex =
            shownChoices.FindIndex(c => c.InternalName == Constants.CHEMORECEPTOR_DEFAULT_COMPOUND_NAME);

        if (defaultCompoundIndex < 0)
        {
            defaultCompoundIndex = 0;
        }

        // Apply current upgrade values or defaults
        if (organelle.Upgrades?.CustomUpgradeData is ChemoreceptorUpgrades configuration)
        {
            compounds.Selected    = shownChoices.FindIndex(c => c == configuration.TargetCompound);
            maximumDistance.Value = configuration.SearchRange;
            minimumAmount.Value   = configuration.SearchAmount;
            colour.Color          = configuration.LineColour;
        }
        else
        {
            compounds.Selected    = defaultCompoundIndex;
            maximumDistance.Value = Constants.CHEMORECEPTOR_RANGE_DEFAULT;
            minimumAmount.Value   = Constants.CHEMORECEPTOR_AMOUNT_DEFAULT;
            colour.Color          = Colors.White;
        }
    }
示例#6
0
        private void PopulateCategories()
        {
            var uniqueCategories = new HashSet <string>();

            // hard-coded to show all recipes
            uniqueCategories.Add(Loc.GetString("All"));

            foreach (var prototype in _prototypeManager.EnumeratePrototypes <ConstructionPrototype>())
            {
                var category = Loc.GetString(prototype.Category);

                if (!string.IsNullOrEmpty(category))
                {
                    uniqueCategories.Add(category);
                }
            }

            _category.Clear();

            var array = uniqueCategories.ToArray();

            Array.Sort(array);

            for (var i = 0; i < array.Length; i++)
            {
                var category = array[i];
                _category.AddItem(category, i);
            }

            _categories = array;
        }
示例#7
0
 private void AddClassLevels()
 {
     foreach (var name in classes)
     {
         classLevel.AddItem(name);
     }
 }
示例#8
0
 private void AddRaces()
 {
     foreach (var name in raceTypes)
     {
         race.AddItem(name);
     }
 }
示例#9
0
        protected override void Initialize()
        {
            base.Initialize();

            IoCManager.InjectDependencies(this);

            // Get all the controls.
            HSplitContainer = Contents.GetChild("HSplitContainer");
            PrototypeList   = HSplitContainer.GetChild("PrototypeListScrollContainer").GetChild("PrototypeList");
            var options = HSplitContainer.GetChild("Options");

            SearchBar = options.GetChild <LineEdit>("SearchBar");
            SearchBar.OnTextChanged += OnSearchBarTextChanged;

            OverrideMenu = options.GetChild <OptionButton>("OverrideMenu");
            OverrideMenu.OnItemSelected += OnOverrideMenuItemSelected;

            for (var i = 0; i < initOpts.Length; i++)
            {
                OverrideMenu.AddItem(initOpts[i], i);
            }

            var buttons = options.GetChild("Buttons!");

            ClearButton            = buttons.GetChild <Button>("ClearButton");
            ClearButton.OnPressed += OnClearButtonPressed;

            EraseButton            = buttons.GetChild <Button>("EraseButton");
            EraseButton.OnToggled += OnEraseButtonToggled;

            BuildEntityList();

            placementManager.PlacementCanceled += OnPlacementCanceled;
        }
示例#10
0
        public bool Execute(IDebugConsole console, params string[] args)
        {
            var window = new SS14Window("UITest");

            window.AddToScreen();
            var scroll = new ScrollContainer();

            window.Contents.AddChild(scroll);
            scroll.SetAnchorAndMarginPreset(Control.LayoutPreset.Wide);
            var vBox = new VBoxContainer();

            scroll.AddChild(vBox);

            var progressBar = new ProgressBar {
                MaxValue = 10, Value = 5
            };

            vBox.AddChild(progressBar);

            var optionButton = new OptionButton();

            optionButton.AddItem("Honk");
            optionButton.AddItem("Foo");
            optionButton.AddItem("Bar");
            optionButton.AddItem("Baz");
            optionButton.OnItemSelected += eventArgs => optionButton.SelectId(eventArgs.Id);
            vBox.AddChild(optionButton);

            var tree = new Tree {
                SizeFlagsVertical = Control.SizeFlags.FillExpand
            };
            var root = tree.CreateItem();

            root.Text = "Honk!";
            var child = tree.CreateItem();

            child.Text = "Foo";
            for (var i = 0; i < 20; i++)
            {
                child      = tree.CreateItem();
                child.Text = $"Bar {i}";
            }
            vBox.AddChild(tree);

            return(false);
        }
示例#11
0
 /// <summary>
 /// Add all the available World options into the dropdownlist
 /// </summary>
 private void DisplayWorldList()
 {
     worldList = leaderboardBL.GetWorlds();
     foreach (World w in worldList)
     {
         optionBtn.AddItem(w.WorldName);
     }
 }
示例#12
0
    private void LoadAudioOutputDevices()
    {
        foreach (var audioOutputDevice in AudioOutputDevices)
        {
            audioOutputDeviceSelection.AddItem(audioOutputDevice);
        }

        UpdateDefaultAudioOutputDeviceText();
    }
        private void LoadExampleItems()
        {
            SelectExampleButton.Clear();

            foreach (string sceneName in sceneLoader.GetCurrentChapterSampleNames())
            {
                SelectExampleButton.AddItem(sceneName);
            }
        }
示例#14
0
 private void OnFileDialogFileSelected(string path)
 {
     if (path.EndsWith(".json") || path.EndsWith(".ink"))
     {
         ResetFileSelectItems();
         fileSelect.AddItem(path.Substring(path.FindLast("/") + 1));
         currentFilePath = path;
     }
 }
        private void LoadChapterItems()
        {
            SelectChapterButton.Clear();

            foreach (string chapterName in sceneLoader.GetChapterNames())
            {
                SelectChapterButton.AddItem(chapterName);
            }
        }
示例#16
0
 private void LoadLanguages()
 {
     foreach (var locale in Languages)
     {
         var currentCulture = Settings.GetCultureInfo(locale);
         var native         = Settings.GetLanguageNativeNameOverride(locale) ?? currentCulture.NativeName;
         languageSelection.AddItem(locale + " - " + native);
     }
 }
示例#17
0
    private void LoadLanguages(OptionButton optionButton)
    {
        languages = TranslationServer.GetLoadedLocales().Cast <string>().OrderBy(i => i, StringComparer.InvariantCulture)
                    .ToList();

        foreach (var locale in languages)
        {
            optionButton.AddItem(locale);
        }
    }
            public GraphicsControl(IConfigurationManager cfg)
            {
                _cfg = cfg;
                var vBox = new VBoxContainer();

                var contents = new VBoxContainer
                {
                    Margin         = new Thickness(2, 2, 2, 0),
                    VerticalExpand = true,
                };

                VSyncCheckBox = new CheckBox {
                    Text = Loc.GetString("VSync")
                };
                contents.AddChild(VSyncCheckBox);
                VSyncCheckBox.OnToggled += OnCheckBoxToggled;

                FullscreenCheckBox = new CheckBox {
                    Text = Loc.GetString("Fullscreen")
                };
                contents.AddChild(FullscreenCheckBox);
                FullscreenCheckBox.OnToggled += OnCheckBoxToggled;

                LightingPresetOption = new OptionButton {
                    MinSize = (100, 0)
                };
                LightingPresetOption.AddItem(Loc.GetString("Very Low"));
                LightingPresetOption.AddItem(Loc.GetString("Low"));
                LightingPresetOption.AddItem(Loc.GetString("Medium"));
                LightingPresetOption.AddItem(Loc.GetString("High"));
                LightingPresetOption.OnItemSelected += OnLightingQualityChanged;

                contents.AddChild(new HBoxContainer
                {
                    Children =
                    {
                        new Label   {
                            Text = Loc.GetString("Lighting Quality:")
                        },
                        new Control {
                            MinSize = (4, 0)
                        },
示例#19
0
    // Called when the node enters the scene tree for the first time.
    public override void _Ready()
    {
        optionButton = FindNode("OptionButton") as OptionButton;

        gameCore = FindParent("GameCore") as GameCore;
        gameCore.OnColonyShipSpawned += HandleColonyShipSpawned;

        foreach (var pair in gameCore.ColonyShips)
        {
            optionButton.AddItem(pair.Value.ShipName.ToString());
        }
    }
示例#20
0
    private void LoadLanguages(OptionButton optionButton)
    {
        languages = TranslationServer.GetLoadedLocales().Cast <string>().OrderBy(i => i, StringComparer.InvariantCulture)
                    .ToList();

        foreach (var locale in languages)
        {
            var currentCulture = Settings.GetCultureInfo(locale);
            var native         = Settings.GetLanguageNativeNameOverride(locale) ?? currentCulture.NativeName;
            optionButton.AddItem(locale + " - " + native);
        }
    }
示例#21
0
        public override void _Ready()
        {
            DiscordRpcClient client = ((RichPresence)GetNode("/root/RichPresence")).Client;

            GetNode <Label>("TabContainer/Discord/VBoxContainer/Label").Text = client.CurrentUser != null ? $"Connected as {client.CurrentUser}" : "Not connected";
            OptionButton   options     = GetNode <OptionButton>("TabContainer/Display/VBoxContainer/HBoxContainer/OptionButton");
            List <Vector2> resolutions = new List <Vector2> {
                new Vector2(800, 600), new Vector2(960, 540), new Vector2(1280, 720), new Vector2(1920, 1080)
            };

            if (!resolutions.Contains(OS.WindowSize))
            {
                resolutions.Add(OS.WindowSize);
                resolutions.Sort((v1, v2) =>
                {
                    if (v1.x > v2.x)
                    {
                        return(1);
                    }

                    if (v1.x == v2.x)
                    {
                        if (v1.y > v2.y)
                        {
                            return(1);
                        }

                        if (v1.y == v2.y)
                        {
                            return(0);
                        }
                        return(-1);
                    }
                    return(-1);
                });
            }

            foreach (string resolution in resolutions.Select(r => $"{r.x}x{r.y}"))
            {
                options.AddItem(resolution);
            }

            GetNode <Button>("TabContainer/Discord/VBoxContainer/HBoxContainer/Button").Disabled = client.CurrentUser != null;

            // Select current resolution

            options.Selected = resolutions.Select((value, index) => new { value, index })
                               .SkipWhile(pair => OS.WindowSize != pair.value).First().index;
            client.OnReady            += client_OnReady;
            client.OnConnectionFailed += client_OnConnectionFailed;
        }
示例#22
0
    public override void _Ready()
    {
        _optionButton = GetNode <OptionButton>("CanvasLayer/Main/Row/OptionButton");
        _loadButton   = GetNode <Button>("CanvasLayer/Main/Row/Button");
        _loadButton.Connect("pressed", this, nameof(LoadCurrentTilemap));
        _levels = ListLevels();

        foreach (Level level in _levels)
        {
            _optionButton.AddItem(level.Name);
        }
        _optionButton.Select(0);
        LoadCurrentTilemap();
    }
示例#23
0
    /// <summary>
    /// Initialization
    /// </summary>
    public override void _Ready()
    {
        vbox          = GetNode <VBoxContainer>("ScrollContainer/VBoxContainer");
        gridContainer = GetNode <GridContainer>("ScrollContainer/VBoxContainer/GridContainer");

        leaderboardBL = new LeaderboardBL();
        optionBtn     = GetNode <OptionButton>("OptionButton");

        //Default setting
        optionBtn.AddItem("All Worlds");
        DisplayWorldList();
        leaderboardList = leaderboardBL.GetLeaderboards();
        AddHeader();
        DisplayLeaderboard(leaderboardList);
    }
示例#24
0
        private void SetUpTests()
        {
            var d = new Directory();

            d.Open("res://Tests/Visual");
            d.ListDirBegin(true);
            var filename = d.GetNext();

            while (filename != "")
            {
                TestSelector.AddItem($"res://Tests/Scripts/Visual/{filename}");
                filename = d.GetNext();
            }
            d.ListDirEnd();
        }
示例#25
0
        public override Node GetOptionEntry()
        {
            var grid     = base.GetOptionEntry();
            var dropdown = new OptionButton {
                SizeFlagsHorizontal = (int)Control.SizeFlags.Expand
            };

            grid.AddChild(dropdown);
            foreach (var entry in Entries)
            {
                dropdown.AddItem(entry);
            }

            return(grid);
        }
示例#26
0
    private void _on_TabContainer_tab_selected(int tab)
    {
        //if add receipt tab button is selected, update the ingredient and volume options
        if (tab == 1)
        {
            //cleal the options first
            ingredientOption.Clear();
            volumeOption.Clear();

            //read list of ingredients from JSON and add it to the option button
            try
            {
                StreamReader r     = new StreamReader(ingredientPath);
                string       _json = r.ReadToEnd();
                r.Close();

                JObject rss   = JObject.Parse(_json);        //convert string to object
                var     _list = rss["Ingredients"].ToList(); //convert to list using Linq
                for (var l = 0; l < _list.Count; l++)        //add each item to list
                {
                    ingredientOption.AddItem(rss["Ingredients"][l].ToString());
                }
            }
            catch (FileNotFoundException)
            {
                //do nothing, failed to load file...
            }

            //read list of volumes from JSON and add it to the option button
            try
            {
                StreamReader r     = new StreamReader(volumePath);
                string       _json = r.ReadToEnd();
                r.Close();

                JObject rss  = JObject.Parse(_json);    //convert string to object
                var     list = rss["Volumes"].ToList(); //convert to list using Linq
                for (var l = 0; l < list.Count; l++)    //add each item to list
                {
                    volumeOption.AddItem(rss["Volumes"][l].ToString());
                }
            }
            catch (FileNotFoundException)
            {
                //do nothing, failed to load file...
            }
        }
    }
示例#27
0
    private void _populatePlayerTeams()
    {
        playerTeams.Connect("item_selected", this, "_playerTeamSelected");

        for (int index = 0; index < (int)(Team.TeamCode.NEUTRAL); index++)
        {
            Team.TeamCode team = (Team.TeamCode)index;
            playerTeams.AddItem("" + team);

            _populateTeamSettings(team);
        }

        // Pre Select the 0 index
        playerTeams.Select(0);
        _playerTeamSelected(0);
    }
示例#28
0
    public override void _Ready()
    {
        DropDown = (OptionButton)GetNode("UI/Dropdown");
        DropDown.Connect("item_selected", this, "OnModSelected");

        // get an array of the folders in \Mods
        var modsList = System.IO.Directory.GetDirectories($"{System.IO.Directory.GetCurrentDirectory()}\\Mods");

        for (var i = 0; i < modsList.Length; i++)
        {
            // Add each mod to the dropdown list
            DropDown.AddItem(modsList[i].Split('\\').Last(), i);
        }

        LoadModLevel(DropDown.Items[0].ToString());
    }
示例#29
0
    public override void _Ready()
    {
        button = GetNode <OptionButton>("OptionButton");

        string current = TranslationServer.GetLocale();

        languages = TranslationServer.GetLoadedLocales();
        for (int i = 0; i < languages.Count; i++)
        {
            string code = (string)languages[i];
            button.AddItem(TranslationServer.GetLocaleName(code), i);
            if (code == current)
            {
                button.Select(i);
            }
        }
    }
示例#30
0
    private void UpdateAvailableModsList()
    {
        modSelect.Clear();

        foreach (var mod in mods)
        {
            // When clicking the OptionButton the opened list doesn't scale down the icon sizes so we can't use icons
            // TODO: report the above bug to Godot and get this fixed
            // modSelect.AddIconItem(ModManager.LoadModIcon(mod), mod.InternalName);
            modSelect.AddItem(mod.InternalName);
        }

        if (modSelect.Selected != -1)
        {
            ModSelected(modSelect.Selected);
        }
    }