/// <summary> Loads a new screen based off of the value of _ActiveScreenState </summary> private void DisplayScreen() { switch (_ActiveScreen) { case Screens.Title: string titlePagePath = "MarginContainer/TitlePage"; _margin.AddChild(TitlePage.Instance()); GetNode(titlePagePath).Connect("PlayPressed", this, nameof(OnPlayPressed)); GetNode(titlePagePath).Connect("InstructionsPressed", this, nameof(OnInstructionsPressed)); GetNode(titlePagePath).Connect("CreditsPressed", this, nameof(OnCreditsPressed)); break; case Screens.Game: _margin.AddChild(GamePage.Instance()); GetNode("MarginContainer/GamePage").Connect("QuitToMainMenu", this, nameof(OnQuitToMainMenu)); break; case Screens.Instructions: string instructionsPagePath = "MarginContainer/InstructionsPage"; _margin.AddChild(InstructionsPage.Instance()); GetNode(instructionsPagePath).Connect("PlayPressed", this, nameof(OnPlayPressed)); GetNode(instructionsPagePath).Connect("QuitToMainMenuPressed", this, nameof(OnQuitToMainMenu)); break; case Screens.Credits: _margin.AddChild(CreditsPage.Instance()); GetNode("MarginContainer/CreditsPage").Connect("QuitToMainMenuPressed", this, nameof(OnQuitToMainMenu)); break; } }
public ResearchClientServerSelectionMenu() { IoCManager.InjectDependencies(this); Title = Loc.GetString("Research Server Selection"); _servers = new ItemList() { SelectMode = ItemList.ItemListSelectMode.Single }; _servers.OnItemSelected += OnItemSelected; _servers.OnItemDeselected += OnItemDeselected; var margin = new MarginContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsHorizontal = SizeFlags.FillExpand, /*MarginTop = 5f, * MarginLeft = 5f, * MarginRight = -5f, * MarginBottom = -5f,*/ }; margin.AddChild(_servers); Contents.AddChild(margin); }
public GhostTargetWindow(GhostComponent owner) { Title = "Ghost Warp"; _owner = owner; _owner.GhostRequestWarpPoint(); _owner.GhostRequestPlayerNames(); var margin = new MarginContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsHorizontal = SizeFlags.FillExpand, }; _buttonContainer = new VBoxContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsHorizontal = SizeFlags.Fill, SeparationOverride = 5, }; var scrollBarContainer = new ScrollContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsHorizontal = SizeFlags.FillExpand }; margin.AddChild(scrollBarContainer); scrollBarContainer.AddChild(_buttonContainer); Contents.AddChild(margin); }
private void PopulatePatronsList(Control patronsList) { var margin = new MarginContainer { MarginLeftOverride = 2, MarginTopOverride = 2 }; var vBox = new VBoxContainer(); margin.AddChild(vBox); var patrons = ReadJson <PatronEntry[]>("/Credits/Patrons.json"); Button patronButton; vBox.AddChild(patronButton = new Button { Text = "Become a Patron", SizeFlagsHorizontal = SizeFlags.ShrinkCenter }); var first = true; foreach (var tier in patrons.GroupBy(p => p.Tier).OrderBy(p => PatronTierPriority[p.Key])) { if (!first) { vBox.AddChild(new Control { CustomMinimumSize = (0, 10) });
private void PopulateLicenses(ScrollContainer licensesList) { var margin = new MarginContainer { MarginLeftOverride = 2, MarginTopOverride = 2 }; var vBox = new VBoxContainer(); margin.AddChild(vBox); foreach (var entry in CreditsManager.GetLicenses().OrderBy(p => p.Name)) { vBox.AddChild(new Label { StyleClasses = { StyleBase.StyleClassLabelHeading }, Text = entry.Name }); // We split these line by line because otherwise // the LGPL causes Clyde to go out of bounds in the rendering code. foreach (var line in entry.License.Split("\n")) { vBox.AddChild(new Label { Text = line, FontColorOverride = new Color(200, 200, 200) }); } } licensesList.AddChild(margin); }
public GalacticBankSelectionMenu() { IoCManager.InjectDependencies(this); Title = _loc.GetString("Galactic Bank Selection"); _accounts = new ItemList() { SelectMode = ItemList.ItemListSelectMode.Single }; var margin = new MarginContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsHorizontal = SizeFlags.FillExpand, MarginTop = 5f, MarginLeft = 5f, MarginRight = -5f, MarginBottom = -5f, }; margin.AddChild(_accounts); Contents.AddChild(margin); }
protected override void SetupView() { _textureOff = (Texture)GD.Load($"{_resourcesPath}star_off.png"); _textureOn = (Texture)GD.Load($"{_resourcesPath}star_on.png"); _background.Texture = (Texture)GD.Load($"{_resourcesPath}rating_background.png"); _background.Position = new Vector2(181, 155); var font = (DynamicFont)GD.Load($"{_resourcesPath}montserrat_light.tres"); font.Size = 24; _title.AddFontOverride("font", font); _title.Text = "Ohodnotit"; _windowWrapper.RectPosition = new Vector2(25, 10); _windowWrapper.Set("custom_constants/separation", 21); _marginContainer.Set("custom_constants/margin_left", 28); _horizontalContainer.Set("custom_constants/separation", 15); _commentsMarginContainer = _windowWrapper.GetNode <MarginContainer>("CommentsMarginContainer"); _commentsMarginContainer.Set("custom_constants/margin_left", 7); _commentsContainer = _commentsMarginContainer.GetNode <VBoxContainer>("CommentsContainer"); _commentsContainer.Set("custom_constants/separation", 15); var lineTexture = (Texture)GD.Load($"{_resourcesPath}line.png"); var comments = new string[] { "skvělé\nHana", "Líbí se mi tato verze.\nPetr" }; foreach (var comment in comments) { var line = new TextureRect(); line.Texture = lineTexture; _commentsContainer.AddChild(line); var margin = new MarginContainer(); margin.Set("custom_constants/margin_left", 10); var label = new Label(); label.AddFontOverride("font", font); label.Text = comment; margin.AddChild(label); _commentsContainer.AddChild(margin); } }
public override void _Ready() { AnchorRight = 1.0f; AnchorBottom = 1.0f; // Create joystick joystickMargin = new MarginContainer(); AddChild(joystickMargin); var joystick = new Joystick(); joystickMargin.AddChild(joystick); // Create buttons buttonsMargin = new MarginContainer(); AddChild(buttonsMargin); var buttons = new Buttons(); buttonsMargin.AddChild(buttons); UpdateMargins(); }
public LatheMenu(LatheBoundUserInterface owner = null) { IoCManager.InjectDependencies(this); Owner = owner; Title = "Lathe Menu"; var margin = new MarginContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsHorizontal = SizeFlags.FillExpand, }; var vBox = new VBoxContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SeparationOverride = 5, }; var hBoxButtons = new HBoxContainer() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, }; QueueButton = new Button() { Text = "Queue", TextAlign = Label.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.Fill, SizeFlagsStretchRatio = 1, }; ServerConnectButton = new Button() { Text = "Server list", TextAlign = Label.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.Fill, SizeFlagsStretchRatio = 1, }; ServerSyncButton = new Button() { Text = "Sync", TextAlign = Label.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.Fill, SizeFlagsStretchRatio = 1, }; var spacer = new Control() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 3, }; var hBoxFilter = new HBoxContainer() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1 }; _searchBar = new LineEdit() { PlaceHolder = "Search Designs", SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 3 }; _searchBar.OnTextChanged += Populate; var filterButton = new Button() { Text = "Filter", TextAlign = Label.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.Fill, SizeFlagsStretchRatio = 1, Disabled = true, }; _items = new ItemList() { SizeFlagsStretchRatio = 8, SizeFlagsVertical = SizeFlags.FillExpand, SelectMode = ItemList.ItemListSelectMode.Button, }; _items.OnItemSelected += ItemSelected; _amountLineEdit = new LineEdit() { PlaceHolder = "Amount", Text = "1", SizeFlagsHorizontal = SizeFlags.FillExpand, }; _amountLineEdit.OnTextChanged += PopulateDisabled; _materials = new ItemList() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 3 }; hBoxButtons.AddChild(spacer); if (Owner?.Database is ProtolatheDatabaseComponent database) { hBoxButtons.AddChild(ServerConnectButton); hBoxButtons.AddChild(ServerSyncButton); database.OnDatabaseUpdated += Populate; } hBoxButtons.AddChild(QueueButton); hBoxFilter.AddChild(_searchBar); hBoxFilter.AddChild(filterButton); vBox.AddChild(hBoxButtons); vBox.AddChild(hBoxFilter); vBox.AddChild(_items); vBox.AddChild(_amountLineEdit); vBox.AddChild(_materials); margin.AddChild(vBox); Contents.AddChild(margin); }
public ChatBox() { /*MarginLeft = -475.0f; * MarginTop = 10.0f; * MarginRight = -10.0f; * MarginBottom = 235.0f; * * AnchorLeft = 1.0f; * AnchorRight = 1.0f;*/ MouseFilter = MouseFilterMode.Stop; var outerVBox = new VBoxContainer(); var panelContainer = new PanelContainer { PanelOverride = new StyleBoxFlat { BackgroundColor = Color.FromHex("#25252aaa") }, SizeFlagsVertical = SizeFlags.FillExpand }; var vBox = new VBoxContainer(); panelContainer.AddChild(vBox); var hBox = new HBoxContainer(); outerVBox.AddChild(panelContainer); outerVBox.AddChild(hBox); var contentMargin = new MarginContainer { MarginLeftOverride = 4, MarginRightOverride = 4, SizeFlagsVertical = SizeFlags.FillExpand }; Contents = new OutputPanel(); contentMargin.AddChild(Contents); vBox.AddChild(contentMargin); Input = new HistoryLineEdit(); Input.OnKeyBindDown += InputKeyBindDown; Input.OnTextEntered += Input_OnTextEntered; vBox.AddChild(Input); AllButton = new Button { Text = Loc.GetString("All"), Name = "ALL", SizeFlagsHorizontal = SizeFlags.ShrinkEnd | SizeFlags.Expand, ToggleMode = true, }; LocalButton = new Button { Text = Loc.GetString("Local"), Name = "Local", ToggleMode = true, }; OOCButton = new Button { Text = Loc.GetString("OOC"), Name = "OOC", ToggleMode = true, }; AdminButton = new Button { Text = Loc.GetString("Admin"), Name = "Admin", ToggleMode = true, Visible = false }; AllButton.OnToggled += OnFilterToggled; LocalButton.OnToggled += OnFilterToggled; OOCButton.OnToggled += OnFilterToggled; AdminButton.OnToggled += OnFilterToggled; hBox.AddChild(AllButton); hBox.AddChild(LocalButton); hBox.AddChild(OOCButton); hBox.AddChild(AdminButton); AddChild(outerVBox); }
public CharacterSetupGui(IEntityManager entityManager, ILocalizationManager localization, IResourceCache resourceCache, IClientPreferencesManager preferencesManager, IPrototypeManager prototypeManager) { _entityManager = entityManager; _preferencesManager = preferencesManager; var margin = new MarginContainer { MarginBottomOverride = 20, MarginLeftOverride = 20, MarginRightOverride = 20, MarginTopOverride = 20 }; AddChild(margin); var panelTex = resourceCache.GetTexture("/Nano/button.svg.96dpi.png"); var back = new StyleBoxTexture { Texture = panelTex, Modulate = new Color(37, 37, 42) }; back.SetPatchMargin(StyleBox.Margin.All, 10); var panel = new PanelContainer { PanelOverride = back }; margin.AddChild(panel); var vBox = new VBoxContainer { SeparationOverride = 0 }; margin.AddChild(vBox); CloseButton = new Button { SizeFlagsHorizontal = SizeFlags.Expand | SizeFlags.ShrinkEnd, Text = localization.GetString("Save and close"), StyleClasses = { NanoStyle.StyleClassButtonBig } }; var topHBox = new HBoxContainer { CustomMinimumSize = (0, 40), Children = { new MarginContainer { MarginLeftOverride = 8, Children = { new Label { Text = localization.GetString("Character Setup"), StyleClasses = { NanoStyle.StyleClassLabelHeadingBigger }, VAlign = Label.VAlignMode.Center, SizeFlagsHorizontal = SizeFlags.Expand | SizeFlags.ShrinkCenter } } }, CloseButton } }; vBox.AddChild(topHBox); vBox.AddChild(new PanelContainer { PanelOverride = new StyleBoxFlat { BackgroundColor = NanoStyle.NanoGold, ContentMarginTopOverride = 2 } }); var hBox = new HBoxContainer { SizeFlagsVertical = SizeFlags.FillExpand, SeparationOverride = 0 }; vBox.AddChild(hBox); _charactersVBox = new VBoxContainer(); hBox.AddChild(new MarginContainer { CustomMinimumSize = (330, 0), SizeFlagsHorizontal = SizeFlags.Fill, MarginTopOverride = 5, MarginLeftOverride = 5, Children = { new ScrollContainer { SizeFlagsVertical = SizeFlags.FillExpand, Children = { _charactersVBox } } } });
public LatheQueueMenu() { Title = "Lathe Queue"; var margin = new MarginContainer() { MarginTop = 5f, MarginLeft = 5f, MarginRight = -5f, MarginBottom = -5f, }; margin.SetAnchorAndMarginPreset(LayoutPreset.Wide); var vBox = new VBoxContainer(); vBox.SetAnchorAndMarginPreset(LayoutPreset.Wide); var descMargin = new MarginContainer() { MarginTop = 5f, MarginLeft = 5f, MarginRight = -5f, MarginBottom = -5f, SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 2, }; var hBox = new HBoxContainer() { SizeFlagsHorizontal = SizeFlags.FillExpand, }; Icon = new TextureRect() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 2, }; var vBoxInfo = new VBoxContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 3, }; NameLabel = new Label() { RectClipContent = true, SizeFlagsHorizontal = SizeFlags.Fill, }; Description = new Label() { RectClipContent = true, SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsHorizontal = SizeFlags.Fill, }; QueueList = new ItemList() { SizeFlagsHorizontal = SizeFlags.Fill, SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 3, SelectMode = ItemList.ItemListSelectMode.None }; vBoxInfo.AddChild(NameLabel); vBoxInfo.AddChild(Description); hBox.AddChild(Icon); hBox.AddChild(vBoxInfo); descMargin.AddChild(hBox); vBox.AddChild(descMargin); vBox.AddChild(QueueList); margin.AddChild(vBox); Contents.AddChild(margin); ClearInfo(); }
public InstrumentMenu(InstrumentBoundUserInterface owner) { IoCManager.InjectDependencies(this); Title = "Instrument"; _owner = owner; _owner.Instrument.OnMidiPlaybackEnded += InstrumentOnMidiPlaybackEnded; var margin = new MarginContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsHorizontal = SizeFlags.FillExpand, MarginTop = 5f, MarginLeft = 5f, MarginRight = -5f, MarginBottom = -5f, }; margin.SetAnchorAndMarginPreset(LayoutPreset.Wide); var vBox = new VBoxContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SeparationOverride = 5, }; vBox.SetAnchorAndMarginPreset(LayoutPreset.Wide); var hBoxTopButtons = new HBoxContainer() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, Align = BoxContainer.AlignMode.Center }; midiInputButton = new Button() { Text = "MIDI Input", TextAlign = Button.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, ToggleMode = true, Pressed = _owner.Instrument.IsInputOpen, }; midiInputButton.OnToggled += MidiInputButtonOnOnToggled; var topSpacer = new Control() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 2, }; var midiFileButton = new Button() { Text = "Open File", TextAlign = Button.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, }; midiFileButton.OnPressed += MidiFileButtonOnOnPressed; var hBoxBottomButtons = new HBoxContainer() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, Align = BoxContainer.AlignMode.Center }; midiLoopButton = new Button() { Text = "Loop", TextAlign = Button.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, ToggleMode = true, Disabled = !_owner.Instrument.IsMidiOpen, Pressed = _owner.Instrument.LoopMidi, }; midiLoopButton.OnToggled += MidiLoopButtonOnOnToggled; var bottomSpacer = new Control() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 2, }; midiStopButton = new Button() { Text = "Stop", TextAlign = Button.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, Disabled = !_owner.Instrument.IsMidiOpen, }; midiStopButton.OnPressed += MidiStopButtonOnPressed; hBoxBottomButtons.AddChild(midiLoopButton); hBoxBottomButtons.AddChild(bottomSpacer); hBoxBottomButtons.AddChild(midiStopButton); hBoxTopButtons.AddChild(midiInputButton); hBoxTopButtons.AddChild(topSpacer); hBoxTopButtons.AddChild(midiFileButton); vBox.AddChild(hBoxTopButtons); vBox.AddChild(hBoxBottomButtons); margin.AddChild(vBox); Contents.AddChild(margin); }
protected override void Initialize() { base.Initialize(); IoCManager.InjectDependencies(this); HideOnClose = true; Title = "Lathe Menu"; Visible = false; var margin = new MarginContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsHorizontal = SizeFlags.FillExpand, MarginTop = 5f, MarginLeft = 5f, MarginRight = -5f, MarginBottom = -5f, }; margin.SetAnchorAndMarginPreset(LayoutPreset.Wide); var vbox = new VBoxContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SeparationOverride = 5, }; vbox.SetAnchorAndMarginPreset(LayoutPreset.Wide); var hboxButtons = new HBoxContainer() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, }; QueueButton = new Button() { Text = "Queue", TextAlign = Button.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, }; var spacer = new Control() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 3, }; spacer.SetAnchorAndMarginPreset(LayoutPreset.Wide); var hboxFilter = new HBoxContainer() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1 }; SearchBar = new LineEdit() { PlaceHolder = "Search Designs", SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 3 }; SearchBar.OnTextChanged += Populate; var filterButton = new Button() { Text = "Filter", TextAlign = Button.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, Disabled = true, }; Items = new ItemList() { SizeFlagsStretchRatio = 8, SizeFlagsVertical = SizeFlags.FillExpand, }; Items.OnItemSelected += ItemSelected; AmountLineEdit = new LineEdit() { PlaceHolder = "Amount", Text = "1", SizeFlagsHorizontal = SizeFlags.FillExpand, }; AmountLineEdit.OnTextChanged += PopulateDisabled; Materials = new ItemList() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 3 }; hboxButtons.AddChild(spacer); hboxButtons.AddChild(QueueButton); hboxFilter.AddChild(SearchBar); hboxFilter.AddChild(filterButton); vbox.AddChild(hboxButtons); vbox.AddChild(hboxFilter); vbox.AddChild(Items); vbox.AddChild(AmountLineEdit); vbox.AddChild(Materials); margin.AddChild(vbox); Contents.AddChild(margin); }
public HumanoidProfileEditor(IClientPreferencesManager preferencesManager, IPrototypeManager prototypeManager) { _random = IoCManager.Resolve <IRobustRandom>(); _preferencesManager = preferencesManager; var margin = new MarginContainer { MarginTopOverride = 10, MarginBottomOverride = 10, MarginLeftOverride = 10, MarginRightOverride = 10 }; AddChild(margin); var vBox = new VBoxContainer(); margin.AddChild(vBox); var middleContainer = new HBoxContainer { SeparationOverride = 10 }; vBox.AddChild(middleContainer); var leftColumn = new VBoxContainer(); middleContainer.AddChild(leftColumn); #region Randomize { var panel = HighlightedContainer(); var randomizeEverythingButton = new Button { Text = Loc.GetString("Randomize everything") }; randomizeEverythingButton.OnPressed += args => { RandomizeEverything(); }; panel.AddChild(randomizeEverythingButton); leftColumn.AddChild(panel); } #endregion Randomize #region Name { var panel = HighlightedContainer(); var hBox = new HBoxContainer { SizeFlagsVertical = SizeFlags.FillExpand }; var nameLabel = new Label { Text = Loc.GetString("Name:") }; _nameEdit = new LineEdit { CustomMinimumSize = (270, 0), SizeFlagsVertical = SizeFlags.ShrinkCenter }; _nameEdit.OnTextChanged += args => { SetName(args.Text); }; var nameRandomButton = new Button { Text = Loc.GetString("Randomize"), }; nameRandomButton.OnPressed += args => RandomizeName(); hBox.AddChild(nameLabel); hBox.AddChild(_nameEdit); hBox.AddChild(nameRandomButton); panel.AddChild(hBox); leftColumn.AddChild(panel); } #endregion Name var tabContainer = new TabContainer { SizeFlagsVertical = SizeFlags.FillExpand }; vBox.AddChild(tabContainer); #region Appearance { var appearanceVBox = new VBoxContainer(); tabContainer.AddChild(appearanceVBox); tabContainer.SetTabTitle(0, Loc.GetString("Appearance")); var sexAndAgeRow = new HBoxContainer { SeparationOverride = 10 }; appearanceVBox.AddChild(sexAndAgeRow); #region Sex { var panel = HighlightedContainer(); var hBox = new HBoxContainer(); var sexLabel = new Label { Text = Loc.GetString("Sex:") }; var sexButtonGroup = new ButtonGroup(); _sexMaleButton = new Button { Text = Loc.GetString("Male"), Group = sexButtonGroup }; _sexMaleButton.OnPressed += args => { SetSex(Sex.Male); }; _sexFemaleButton = new Button { Text = Loc.GetString("Female"), Group = sexButtonGroup }; _sexFemaleButton.OnPressed += args => { SetSex(Sex.Female); }; hBox.AddChild(sexLabel); hBox.AddChild(_sexMaleButton); hBox.AddChild(_sexFemaleButton); panel.AddChild(hBox); sexAndAgeRow.AddChild(panel); } #endregion Sex #region Age { var panel = HighlightedContainer(); var hBox = new HBoxContainer(); var ageLabel = new Label { Text = Loc.GetString("Age:") }; _ageEdit = new LineEdit { CustomMinimumSize = (40, 0) }; _ageEdit.OnTextChanged += args => { if (!int.TryParse(args.Text, out var newAge)) { return; } SetAge(newAge); }; hBox.AddChild(ageLabel); hBox.AddChild(_ageEdit); panel.AddChild(hBox); sexAndAgeRow.AddChild(panel); } #endregion Age #region Hair { var panel = HighlightedContainer(); panel.SizeFlagsHorizontal = SizeFlags.None; var hairHBox = new HBoxContainer(); _hairPicker = new HairStylePicker(); _hairPicker.Populate(); _hairPicker.OnHairStylePicked += newStyle => { if (Profile is null) { return; } Profile = Profile.WithCharacterAppearance( Profile.Appearance.WithHairStyleName(newStyle)); IsDirty = true; }; _hairPicker.OnHairColorPicked += newColor => { if (Profile is null) { return; } Profile = Profile.WithCharacterAppearance( Profile.Appearance.WithHairColor(newColor)); IsDirty = true; }; _facialHairPicker = new FacialHairStylePicker(); _facialHairPicker.Populate(); _facialHairPicker.OnHairStylePicked += newStyle => { if (Profile is null) { return; } Profile = Profile.WithCharacterAppearance( Profile.Appearance.WithFacialHairStyleName(newStyle)); IsDirty = true; }; _facialHairPicker.OnHairColorPicked += newColor => { if (Profile is null) { return; } Profile = Profile.WithCharacterAppearance( Profile.Appearance.WithFacialHairColor(newColor)); IsDirty = true; }; hairHBox.AddChild(_hairPicker); hairHBox.AddChild(_facialHairPicker); panel.AddChild(hairHBox); appearanceVBox.AddChild(panel); } #endregion Hair } #endregion #region Jobs { var jobList = new VBoxContainer(); var jobVBox = new VBoxContainer { Children = { (_preferenceUnavailableButton = new OptionButton()), new ScrollContainer { SizeFlagsVertical = SizeFlags.FillExpand, Children = { jobList } } } }; tabContainer.AddChild(jobVBox); tabContainer.SetTabTitle(1, Loc.GetString("Jobs")); _preferenceUnavailableButton.AddItem( Loc.GetString("Stay in lobby if preference unavailable."), (int)PreferenceUnavailableMode.StayInLobby); _preferenceUnavailableButton.AddItem( Loc.GetString("Be an {0} if preference unavailable.", Loc.GetString(SharedGameTicker.OverflowJobName)), (int)PreferenceUnavailableMode.SpawnAsOverflow); _preferenceUnavailableButton.OnItemSelected += args => { _preferenceUnavailableButton.SelectId(args.Id); Profile = Profile.WithPreferenceUnavailable((PreferenceUnavailableMode)args.Id); IsDirty = true; }; _jobPriorities = new List <JobPrioritySelector>(); foreach (var job in prototypeManager.EnumeratePrototypes <JobPrototype>().OrderBy(j => j.Name)) { var selector = new JobPrioritySelector(job); jobList.AddChild(selector); _jobPriorities.Add(selector); selector.PriorityChanged += priority => { Profile = Profile.WithJobPriority(job.ID, priority); IsDirty = true; if (priority == JobPriority.High) { // Lower any other high priorities to medium. foreach (var jobSelector in _jobPriorities) { if (jobSelector != selector && jobSelector.Priority == JobPriority.High) { jobSelector.Priority = JobPriority.Medium; Profile = Profile.WithJobPriority(jobSelector.Job.ID, JobPriority.Medium); } } } }; } } #endregion #region Antags { var antagList = new VBoxContainer(); var antagVBox = new VBoxContainer { Children = { new ScrollContainer { SizeFlagsVertical = SizeFlags.FillExpand, Children = { antagList } } } }; tabContainer.AddChild(antagVBox); tabContainer.SetTabTitle(2, Loc.GetString("Antags")); _antagPreferences = new List <AntagPreferenceSelector>(); foreach (var antag in prototypeManager.EnumeratePrototypes <AntagPrototype>().OrderBy(a => a.Name)) { if (!antag.SetPreference) { continue; } var selector = new AntagPreferenceSelector(antag); antagList.AddChild(selector); _antagPreferences.Add(selector); selector.PreferenceChanged += preference => { Profile = Profile.WithAntagPreference(antag.ID, preference); IsDirty = true; }; } } #endregion var rightColumn = new VBoxContainer(); middleContainer.AddChild(rightColumn); #region Import/Export { var panelContainer = HighlightedContainer(); var hBox = new HBoxContainer(); var importButton = new Button { Text = Loc.GetString("Import"), Disabled = true, ToolTip = "Not yet implemented!" }; var exportButton = new Button { Text = Loc.GetString("Export"), Disabled = true, ToolTip = "Not yet implemented!" }; hBox.AddChild(importButton); hBox.AddChild(exportButton); panelContainer.AddChild(hBox); rightColumn.AddChild(panelContainer); } #endregion Import/Export #region Save { var panel = HighlightedContainer(); _saveButton = new Button { Text = Loc.GetString("Save"), SizeFlagsHorizontal = SizeFlags.ShrinkCenter }; _saveButton.OnPressed += args => { Save(); }; panel.AddChild(_saveButton); rightColumn.AddChild(panel); } #endregion Save if (preferencesManager.ServerDataLoaded) { LoadServerData(); } preferencesManager.OnServerDataLoaded += LoadServerData; IsDirty = false; }
public InstrumentMenu(InstrumentBoundUserInterface owner) { IoCManager.InjectDependencies(this); _owner = owner; _owner.Instrument.OnMidiPlaybackEnded += InstrumentOnMidiPlaybackEnded; Title = _owner.Instrument.Owner.Name; var margin = new MarginContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsHorizontal = SizeFlags.FillExpand, }; var vBox = new VBoxContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SeparationOverride = 5, }; var hBoxTopButtons = new HBoxContainer() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, Align = BoxContainer.AlignMode.Center }; _midiInputButton = new Button() { Text = Loc.GetString("MIDI Input"), TextAlign = Label.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, ToggleMode = true, Pressed = _owner.Instrument.IsInputOpen, }; _midiInputButton.OnToggled += MidiInputButtonOnOnToggled; var topSpacer = new Control() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 2, }; var midiFileButton = new Button() { Text = Loc.GetString("Play MIDI File"), TextAlign = Label.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, }; midiFileButton.OnPressed += MidiFileButtonOnOnPressed; var hBoxBottomButtons = new HBoxContainer() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, Align = BoxContainer.AlignMode.Center }; _midiLoopButton = new Button() { Text = Loc.GetString("Loop"), TextAlign = Label.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, ToggleMode = true, Disabled = !_owner.Instrument.IsMidiOpen, Pressed = _owner.Instrument.LoopMidi, }; _midiLoopButton.OnToggled += MidiLoopButtonOnOnToggled; var bottomSpacer = new Control() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 2, }; _midiStopButton = new Button() { Text = Loc.GetString("Stop"), TextAlign = Label.AlignMode.Center, SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 1, Disabled = !_owner.Instrument.IsMidiOpen, }; _midiStopButton.OnPressed += MidiStopButtonOnPressed; hBoxBottomButtons.AddChild(_midiLoopButton); hBoxBottomButtons.AddChild(bottomSpacer); hBoxBottomButtons.AddChild(_midiStopButton); hBoxTopButtons.AddChild(_midiInputButton); hBoxTopButtons.AddChild(topSpacer); hBoxTopButtons.AddChild(midiFileButton); vBox.AddChild(hBoxTopButtons); vBox.AddChild(hBoxBottomButtons); margin.AddChild(vBox); if (!_midiManager.IsAvailable) { margin.AddChild(new PanelContainer { MouseFilter = MouseFilterMode.Stop, PanelOverride = new StyleBoxFlat { BackgroundColor = Color.Black.WithAlpha(0.90f) }, Children = { new Label { Align = Label.AlignMode.Center, SizeFlagsVertical = SizeFlags.ShrinkCenter, SizeFlagsHorizontal = SizeFlags.ShrinkCenter, StyleClasses = { StyleNano.StyleClassLabelBig }, Text = Loc.GetString("MIDI support is currently\nnot available on your platform.") } } }); } Contents.AddChild(margin); }
public LobbyGui(IEntityManager entityManager, IResourceCache resourceCache, IClientPreferencesManager preferencesManager) { var margin = new MarginContainer { MarginBottomOverride = 20, MarginLeftOverride = 20, MarginRightOverride = 20, MarginTopOverride = 20, }; AddChild(margin); var panelTex = resourceCache.GetTexture("/Textures/Interface/Nano/button.svg.96dpi.png"); var back = new StyleBoxTexture { Texture = panelTex, Modulate = new Color(37, 37, 42), }; back.SetPatchMargin(StyleBox.Margin.All, 10); var panel = new PanelContainer { PanelOverride = back }; margin.AddChild(panel); var vBox = new VBoxContainer { SeparationOverride = 0 }; margin.AddChild(vBox); var topHBox = new HBoxContainer { CustomMinimumSize = (0, 40), Children = { new MarginContainer { MarginLeftOverride = 8, Children = { new Label { Text = Loc.GetString("Lobby"), StyleClasses ={ StyleNano.StyleClassLabelHeadingBigger }, /*MarginBottom = 40, * MarginLeft = 8,*/ VAlign = Label.VAlignMode.Center } } }, (ServerName = new Label { StyleClasses ={ StyleNano.StyleClassLabelHeadingBigger }, /*MarginBottom = 40, * GrowHorizontal = GrowDirection.Both,*/ VAlign = Label.VAlignMode.Center, SizeFlagsHorizontal = SizeFlags.Expand | SizeFlags.ShrinkCenter }), (CreditsButton = new Button { SizeFlagsHorizontal = SizeFlags.ShrinkEnd, Text = Loc.GetString("Credits"), StyleClasses ={ StyleNano.StyleClassButtonBig }, //GrowHorizontal = GrowDirection.Begin }), (LeaveButton = new Button { SizeFlagsHorizontal = SizeFlags.ShrinkEnd, Text = Loc.GetString("Leave"), StyleClasses ={ StyleNano.StyleClassButtonBig }, //GrowHorizontal = GrowDirection.Begin }) } }; vBox.AddChild(topHBox); vBox.AddChild(new PanelContainer { PanelOverride = new StyleBoxFlat { BackgroundColor = StyleNano.NanoGold, ContentMarginTopOverride = 2 }, }); var hBox = new HBoxContainer { SizeFlagsVertical = SizeFlags.FillExpand, SeparationOverride = 0 }; vBox.AddChild(hBox); CharacterPreview = new LobbyCharacterPreviewPanel( entityManager, preferencesManager) { SizeFlagsHorizontal = SizeFlags.None }; hBox.AddChild(new VBoxContainer { SizeFlagsHorizontal = SizeFlags.FillExpand, SeparationOverride = 0, Children = { CharacterPreview, new StripeBack { Children = { new MarginContainer { MarginRightOverride = 3, MarginLeftOverride = 3, MarginTopOverride = 3, MarginBottomOverride = 3, Children = { new HBoxContainer { SeparationOverride = 6, Children = { (ObserveButton = new Button { Text = Loc.GetString("Observe"), StyleClasses = { StyleNano.StyleClassButtonBig } }), (StartTime = new Label { SizeFlagsHorizontal = SizeFlags.FillExpand, Align = Label.AlignMode.Right, FontColorOverride = Color.DarkGray, StyleClasses = { StyleNano.StyleClassLabelBig } }), (ReadyButton = new Button { ToggleMode = true, Text = Loc.GetString("Ready Up"), StyleClasses = { StyleNano.StyleClassButtonBig } }), } } } } } }, new MarginContainer { MarginRightOverride = 3, MarginLeftOverride = 3, MarginTopOverride = 3, MarginBottomOverride = 3, SizeFlagsVertical = SizeFlags.FillExpand, Children = { (Chat = new ChatBox { Input = { PlaceHolder = Loc.GetString("Say something!") } }) } }, } }); hBox.AddChild(new PanelContainer { PanelOverride = new StyleBoxFlat { BackgroundColor = StyleNano.NanoGold }, CustomMinimumSize = (2, 0) });
protected override void Initialize() { base.Initialize(); HideOnClose = true; Title = "Lathe Queue"; Visible = false; var margin = new MarginContainer() { MarginTop = 5f, MarginLeft = 5f, MarginRight = -5f, MarginBottom = -5f, }; margin.SetAnchorAndMarginPreset(LayoutPreset.Wide); var vbox = new VBoxContainer(); vbox.SetAnchorAndMarginPreset(LayoutPreset.Wide); var descMargin = new MarginContainer() { MarginTop = 5f, MarginLeft = 5f, MarginRight = -5f, MarginBottom = -5f, SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 2, }; var hbox = new HBoxContainer() { SizeFlagsHorizontal = SizeFlags.FillExpand, }; Icon = new TextureRect() { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsStretchRatio = 2, }; var vboxInfo = new VBoxContainer() { SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 3, }; NameLabel = new Label() { RectClipContent = true, SizeFlagsHorizontal = SizeFlags.Fill, }; Description = new Label() { RectClipContent = true, SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsHorizontal = SizeFlags.Fill, }; QueueList = new ItemList() { SizeFlagsHorizontal = SizeFlags.Fill, SizeFlagsVertical = SizeFlags.FillExpand, SizeFlagsStretchRatio = 3, SelectMode = ItemList.ItemListSelectMode.None }; vboxInfo.AddChild(NameLabel); vboxInfo.AddChild(Description); hbox.AddChild(Icon); hbox.AddChild(vboxInfo); descMargin.AddChild(hbox); vbox.AddChild(descMargin); vbox.AddChild(QueueList); margin.AddChild(vbox); Contents.AddChild(margin); ClearInfo(); }