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); }
private void _wrappingInit(SS14Window window, string top, string bottom) { // Wrapping containers. var scrollContainer = new ScrollContainer(); //scrollContainer.SetAnchorPreset(Control.LayoutPreset.Wide, true); window.Contents.AddChild(scrollContainer); var vBoxContainer = new VBoxContainer { SizeFlagsHorizontal = Control.SizeFlags.FillExpand, SizeFlagsVertical = Control.SizeFlags.FillExpand, }; scrollContainer.AddChild(vBoxContainer); // Handle top bar. { var headBox = new HBoxContainer(); var name = MakeTopBar(top, bottom); name.SizeFlagsHorizontal = Control.SizeFlags.FillExpand; headBox.AddChild(name); var button = new Button { Text = "Refresh" }; button.OnPressed += _ => _refresh(); headBox.AddChild(button); vBoxContainer.AddChild(headBox); } _tabs = new TabContainer(); vBoxContainer.AddChild(_tabs); }
/// <summary> /// Create the window with all character UIs and bind it to a keypress /// </summary> public override void Initialize() { base.Initialize(); //Use all the character ui interfaced components to create the character window var UIcomponents = Owner.GetAllComponents <ICharacterUI>(); _window = new CharacterWindow(UIcomponents); //Add to screen the window and hide it _window.AddToScreen(); _window.Close(); //Toggle window visible/invisible on keypress _openMenuCmdHandler = InputCmdHandler.FromDelegate(session => { if (_window.Visible) { _window.Close(); } else { _window.Open(); } }); //Set keybind to open character menu var inputMgr = IoCManager.Resolve <IInputManager>(); inputMgr.SetInputCommand(ContentKeyFunctions.OpenCharacterMenu, _openMenuCmdHandler); }
public void Open() { if (_window == null) { _window = new AdminMenuWindow(); } _window.OpenCentered(); }
public void ResetWindow() { _window?.Close(); _window = null; foreach (var window in _commandWindows) { window?.Dispose(); } _commandWindows.Clear(); }
/// <summary> /// Dispose of window and the keypress binding /// </summary> public override void OnRemove() { base.OnRemove(); _window.Dispose(); _window = null; var inputMgr = IoCManager.Resolve <IInputManager>(); inputMgr.SetInputCommand(ContentKeyFunctions.OpenCharacterMenu, null); }
private void _setOpenValue(SS14Window menu, bool value) { _gameHud.CharacterButtonDown = value; if (value) { menu.OpenCentered(); } else { menu.Close(); } }
public void Popup(string contents, string title = "Alert!") { var popup = new SS14Window { Title = title }; popup.Contents.AddChild(new Label { Text = contents }); popup.OpenCenteredMinSize(); }
protected override void Open() { base.Open(); _window = new ApcWindow(); _window.OnClose += Close; _breakerButton = _window.Contents.GetChild <BaseButton>("Rows/Breaker/Breaker"); _breakerButton.OnPressed += _ => SendMessage(new ApcToggleMainBreakerMessage()); _externalPowerStateLabel = _window.Contents.GetChild <Label>("Rows/ExternalStatus/Status"); _chargeBar = _window.Contents.GetChild <ProgressBar>("Rows/Charge/Charge"); _window.AddToScreen(); }
private void _setOpenValue(SS14Window menu, bool value) { if (value) { _gameHud.InventoryButtonDown = true; menu.OpenCentered(); } else { _gameHud.InventoryButtonDown = false; menu.Close(); } }
public override void Initialize(SS14Window window, ViewVariablesBlobMetadata blob, ViewVariablesRemoteSession session) { Session = session; _wrappingInit(window, $"[SERVER] {blob.Stringified}", blob.ObjectTypePretty); foreach (var trait in TraitsFor(blob.Traits)) { trait.Initialize(this); _traits.Add(trait); } _refresh(); }
public override void Initialize(SS14Window window, object obj) { Object = obj; var type = obj.GetType(); _wrappingInit(window, obj.ToString(), type.ToString()); foreach (var trait in TraitsFor(ViewVariablesManager.TraitIdsFor(type))) { trait.Initialize(this); _traits.Add(trait); } _refresh(); }
/// <summary> /// Create the window with all character UIs and bind it to a keypress /// </summary> public override void Initialize() { base.Initialize(); //Use all the character ui interfaced components to create the character window _uiComponents = Owner.GetAllComponents <ICharacterUI>().ToList(); if (_uiComponents.Count == 0) { return; } Window = new CharacterWindow(_uiComponents); Window.OnClose += () => _gameHud.CharacterButtonDown = false; }
public override async void Initialize(SS14Window window, ViewVariablesBlobMetadata blob, ViewVariablesRemoteSession session) { // TODO: this is pretty poorly implemented right now. // For example, it assumes a client-side entity exists, // so it also means client bubbling won't work in this context. _entitySession = session; _membersBlob = await ViewVariablesManager.RequestData <ViewVariablesBlobMembers>(session, new ViewVariablesRequestMembers()); var uid = (EntityUid)_membersBlob.MemberGroups.SelectMany(p => p.Item2).Single(p => p.Name == "Uid").Value; Initialize(window, uid); }
public override void Initialize(SS14Window window, object obj) { Object = obj; var type = obj.GetType(); var title = PrettyPrint.PrintUserFacingWithType(obj, out var subtitle); _wrappingInit(window, title, subtitle); foreach (var trait in TraitsFor(ViewVariablesManager.TraitIdsFor(type))) { trait.Initialize(this); _traits.Add(trait); } _refresh(); }
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); }
/// <summary> /// Dispose of window and the keypress binding /// </summary> public override void OnRemove() { base.OnRemove(); foreach (var component in _uiComponents) { // Make sure these don't get deleted when the window is disposed. component.Scene.Orphan(); } _uiComponents = null; Window?.Close(); Window = null; var inputMgr = IoCManager.Resolve <IInputManager>(); inputMgr.SetInputCommand(ContentKeyFunctions.OpenCharacterMenu, null); }
public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) { base.HandleMessage(message, netChannel, component); switch (message) { case OpenDataWindowMsg msg: var window = new SS14Window { Title = "Power Debug Tool" }; window.Contents.AddChild(new Label() { Text = msg.Data }); window.AddToScreen(); window.Open(); break; } }
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); return(false); }
private void _openTutorialWindow() { var window = new SS14Window { Title = "Tutorial" }; var scrollContainer = new ScrollContainer(); window.Contents.AddChild(scrollContainer); var label = new RichTextLabel(); scrollContainer.AddChild(label); var message = new FormattedMessage(); message.AddText(TutorialContents); label.SetMessage(message); window.AddToScreen(); }
public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) { base.HandleMessage(message, netChannel, component); switch (message) { case OpenDataWindowMsg msg: if (LastWindow != null && !LastWindow.Disposed) { LastWindow.Dispose(); } LastWindow = new SS14Window() { Title = "Power Debug Tool", }; LastWindow.Contents.AddChild(new Label() { Text = msg.Data }); LastWindow.Open(); break; } }
public override void Initialize(SS14Window window, object obj) { _entity = (IEntity)obj; var scrollContainer = new ScrollContainer(); //scrollContainer.SetAnchorPreset(Control.LayoutPreset.Wide, true); window.Contents.AddChild(scrollContainer); var vBoxContainer = new VBoxContainer { SizeFlagsHorizontal = SizeFlags.FillExpand, SizeFlagsVertical = SizeFlags.FillExpand, }; scrollContainer.AddChild(vBoxContainer); // Handle top bar displaying type and ToString(). { Control top; var stringified = PrettyPrint.PrintUserFacingWithType(obj, out var typeStringified); if (typeStringified != "") { //var smallFont = new VectorFont(_resourceCache.GetResource<FontResource>("/Fonts/CALIBRI.TTF"), 10); // Custom ToString() implementation. var headBox = new VBoxContainer { SeparationOverride = 0 }; headBox.AddChild(new Label { Text = stringified, ClipText = true }); headBox.AddChild(new Label { Text = typeStringified, // FontOverride = smallFont, FontColorOverride = Color.DarkGray, ClipText = true }); top = headBox; } else { top = new Label { Text = stringified }; } if (_entity.TryGetComponent(out ISpriteComponent? sprite)) { var hBox = new HBoxContainer(); top.SizeFlagsHorizontal = SizeFlags.FillExpand; hBox.AddChild(top); hBox.AddChild(new SpriteView { Sprite = sprite }); vBoxContainer.AddChild(hBox); } else { vBoxContainer.AddChild(top); } } _tabs = new TabContainer(); _tabs.OnTabChanged += _tabsOnTabChanged; vBoxContainer.AddChild(_tabs); var clientVBox = new VBoxContainer { SeparationOverride = 0 }; _tabs.AddChild(clientVBox); _tabs.SetTabTitle(TabClientVars, "Client Variables"); var first = true; foreach (var group in LocalPropertyList(obj, ViewVariablesManager, _resourceCache)) { ViewVariablesTraitMembers.CreateMemberGroupHeader( ref first, TypeAbbreviation.Abbreviate(group.Key), clientVBox); foreach (var control in group) { clientVBox.AddChild(control); } } _clientComponents = new VBoxContainer { SeparationOverride = 0 }; _tabs.AddChild(_clientComponents); _tabs.SetTabTitle(TabClientComponents, "Client Components"); _clientComponents.AddChild(_clientComponentsSearchBar = new LineEdit { PlaceHolder = Loc.GetString("Search"), SizeFlagsHorizontal = SizeFlags.FillExpand }); _clientComponentsSearchBar.OnTextChanged += OnClientComponentsSearchBarChanged; // See engine#636 for why the Distinct() call. var componentList = _entity.GetAllComponents().OrderBy(c => c.GetType().ToString()); foreach (var component in componentList) { var button = new Button { Text = TypeAbbreviation.Abbreviate(component.GetType()), TextAlign = Label.AlignMode.Left }; button.OnPressed += args => { ViewVariablesManager.OpenVV(component); }; _clientComponents.AddChild(button); } if (!_entity.Uid.IsClientSide()) { _serverVariables = new VBoxContainer { SeparationOverride = 0 }; _tabs.AddChild(_serverVariables); _tabs.SetTabTitle(TabServerVars, "Server Variables"); _serverComponents = new VBoxContainer { SeparationOverride = 0 }; _tabs.AddChild(_serverComponents); _tabs.SetTabTitle(TabServerComponents, "Server Components"); _serverComponents.AddChild(_serverComponentsSearchBar = new LineEdit { PlaceHolder = Loc.GetString("Search"), SizeFlagsHorizontal = SizeFlags.FillExpand }); _serverComponentsSearchBar.OnTextChanged += OnServerComponentsSearchBarChanged; } }
public void OpenCommand(SS14Window window) { _commandWindows.Add(window); window.OpenCentered(); }
/// <summary> /// Initializes this instance to work on a local object. /// </summary> /// <param name="window">The window to initialize by adding GUI components.</param> /// <param name="obj">The object that is being VV'd</param> public abstract void Initialize(SS14Window window, object obj);
/// <summary> /// Initializes this instance to work on a remote object. /// This is called when the view variables manager has already made a session to the remote object. /// </summary> /// <param name="window">The window to initialize by adding GUI components.</param> /// <param name="blob">The data blob sent by the server for this remote object.</param> /// <param name="session">The session connecting to the remote object.</param> public virtual void Initialize(SS14Window window, ViewVariablesBlobMetadata blob, ViewVariablesRemoteSession session) { throw new NotSupportedException(); }
public override void Initialize(SS14Window window, object obj) { _entity = (IEntity)obj; var scrollContainer = new ScrollContainer(); //scrollContainer.SetAnchorPreset(Control.LayoutPreset.Wide, true); window.Contents.AddChild(scrollContainer); var vBoxContainer = new BoxContainer { Orientation = LayoutOrientation.Vertical }; scrollContainer.AddChild(vBoxContainer); // Handle top bar displaying type and ToString(). { Control top; var stringified = PrettyPrint.PrintUserFacingWithType(obj, out var typeStringified); if (typeStringified != "") { //var smallFont = new VectorFont(_resourceCache.GetResource<FontResource>("/Fonts/CALIBRI.TTF"), 10); // Custom ToString() implementation. var headBox = new BoxContainer { Orientation = LayoutOrientation.Vertical, SeparationOverride = 0 }; headBox.AddChild(new Label { Text = stringified, ClipText = true }); headBox.AddChild(new Label { Text = typeStringified, // FontOverride = smallFont, FontColorOverride = Color.DarkGray, ClipText = true }); top = headBox; } else { top = new Label { Text = stringified }; } if (_entity.TryGetComponent(out ISpriteComponent? sprite)) { var hBox = new BoxContainer { Orientation = LayoutOrientation.Horizontal }; top.HorizontalExpand = true; hBox.AddChild(top); hBox.AddChild(new SpriteView { Sprite = sprite }); vBoxContainer.AddChild(hBox); } else { vBoxContainer.AddChild(top); } } _tabs = new TabContainer(); _tabs.OnTabChanged += _tabsOnTabChanged; vBoxContainer.AddChild(_tabs); var clientVBox = new BoxContainer { Orientation = LayoutOrientation.Vertical, SeparationOverride = 0 }; _tabs.AddChild(clientVBox); _tabs.SetTabTitle(TabClientVars, Loc.GetString("view-variable-instance-entity-client-variables-tab-title")); var first = true; foreach (var group in LocalPropertyList(obj, ViewVariablesManager, _robustSerializer)) { ViewVariablesTraitMembers.CreateMemberGroupHeader( ref first, TypeAbbreviation.Abbreviate(group.Key), clientVBox); foreach (var control in group) { clientVBox.AddChild(control); } } _clientComponents = new BoxContainer { Orientation = LayoutOrientation.Vertical, SeparationOverride = 0 }; _tabs.AddChild(_clientComponents); _tabs.SetTabTitle(TabClientComponents, Loc.GetString("view-variable-instance-entity-client-components-tab-title")); PopulateClientComponents(); if (!_entity.Uid.IsClientSide()) { _serverVariables = new BoxContainer { Orientation = LayoutOrientation.Vertical, SeparationOverride = 0 }; _tabs.AddChild(_serverVariables); _tabs.SetTabTitle(TabServerVars, Loc.GetString("view-variable-instance-entity-server-variables-tab-title")); _serverComponents = new BoxContainer { Orientation = LayoutOrientation.Vertical, SeparationOverride = 0 }; _tabs.AddChild(_serverComponents); _tabs.SetTabTitle(TabServerComponents, Loc.GetString("view-variable-instance-entity-server-components-tab-title")); PopulateServerComponents(false); } }
public override void Initialize(SS14Window window, object obj) { _entity = (IEntity)obj; var type = obj.GetType(); var scrollContainer = new ScrollContainer(); scrollContainer.SetAnchorPreset(Control.LayoutPreset.Wide, true); window.Contents.AddChild(scrollContainer); var vBoxContainer = new VBoxContainer { SizeFlagsHorizontal = Control.SizeFlags.FillExpand, SizeFlagsVertical = Control.SizeFlags.FillExpand, }; scrollContainer.AddChild(vBoxContainer); // Handle top bar displaying type and ToString(). { Control top; var stringified = obj.ToString(); if (type.FullName != stringified) { var smallFont = new VectorFont(_resourceCache.GetResource <FontResource>("/Fonts/CALIBRI.TTF"), 10); // Custom ToString() implementation. var headBox = new VBoxContainer { SeparationOverride = 0 }; headBox.AddChild(new Label { Text = stringified, ClipText = true }); headBox.AddChild(new Label { Text = type.FullName, FontOverride = smallFont, FontColorOverride = Color.DarkGray, ClipText = true }); top = headBox; } else { top = new Label { Text = stringified }; } if (_entity.TryGetComponent(out ISpriteComponent sprite)) { var hBox = new HBoxContainer(); top.SizeFlagsHorizontal = Control.SizeFlags.FillExpand; hBox.AddChild(top); hBox.AddChild(new SpriteView { Sprite = sprite }); vBoxContainer.AddChild(hBox); } else { vBoxContainer.AddChild(top); } } _tabs = new TabContainer(); _tabs.OnTabChanged += _tabsOnTabChanged; vBoxContainer.AddChild(_tabs); var clientVBox = new VBoxContainer { SeparationOverride = 0 }; _tabs.AddChild(clientVBox); _tabs.SetTabTitle(TabClientVars, "Client Variables"); foreach (var control in LocalPropertyList(obj, ViewVariablesManager, _resourceCache)) { clientVBox.AddChild(control); } var clientComponents = new VBoxContainer { SeparationOverride = 0 }; _tabs.AddChild(clientComponents); _tabs.SetTabTitle(TabClientComponents, "Client Components"); // See engine#636 for why the Distinct() call. var componentList = _entity.GetAllComponents().Distinct().OrderBy(c => c.GetType().ToString()); foreach (var component in componentList) { var button = new Button { Text = component.GetType().ToString(), TextAlign = Button.AlignMode.Left }; button.OnPressed += args => { ViewVariablesManager.OpenVV(component); }; clientComponents.AddChild(button); } if (!_entity.Uid.IsClientSide()) { _serverVariables = new VBoxContainer { SeparationOverride = 0 }; _tabs.AddChild(_serverVariables); _tabs.SetTabTitle(TabServerVars, "Server Variables"); _serverComponents = new VBoxContainer { SeparationOverride = 0 }; _tabs.AddChild(_serverComponents); _tabs.SetTabTitle(TabServerComponents, "Server Components"); } }
public bool Execute(IDebugConsole console, params string[] args) { var window = new SS14Window(); var tabContainer = new TabContainer(); window.Contents.AddChild(tabContainer); var scroll = new ScrollContainer(); tabContainer.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); var rich = new RichTextLabel(); var message = new FormattedMessage(); message.AddText("Foo\n"); message.PushColor(Color.Red); message.AddText("Bar"); message.Pop(); rich.SetMessage(message); vBox.AddChild(rich); var itemList = new ItemList(); tabContainer.AddChild(itemList); for (var i = 0; i < 10; i++) { itemList.AddItem(i.ToString()); } var grid = new GridContainer { Columns = 3 }; tabContainer.AddChild(grid); for (var y = 0; y < 3; y++) { for (var x = 0; x < 3; x++) { grid.AddChild(new Button { CustomMinimumSize = (50, 50), Text = $"{x}, {y}" });