S&box Wiki

NavigationView

NavigationView

NavigationView is a widget with a sidebar down the left, allowing you to switch between pages. It's built to be used in the Editor.

Example

using Editor; [EditorApp( "NavigationViewExample", "grid_view", "An example app that uses a NavigationView." )] public class NavigationViewExample : Window { NavigationView View; public NavigationViewExample() { WindowTitle = "Navigation View Example"; Size = new Vector2( 1280, 720 ); View = new NavigationView( this ); View.Size = this.Size; Layout = Layout.Column(); Layout.Add( View, 1 ); /// /// Page 1 /// var page1 = new NavigationView.Option( "Page 1", "change_history" ); page1.CreatePage = () => { var scroll = new ScrollArea( null ); scroll.Canvas = new Widget( scroll ); scroll.Canvas.Layout = Layout.Column(); scroll.Canvas.Layout.Margin = 32; var body = scroll.Canvas.Layout; body.Add( new Label.Subtitle( "Page 1" ) ); body.Add( new Label.Body( "Page 1 Body" ) ); body.AddStretchCell(); return scroll; }; /// /// Page 2 /// var page2 = new NavigationView.Option( "Page 2", "radio_button_unchecked" ); page2.CreatePage = () => { var scroll = new ScrollArea( null ); scroll.Canvas = new Widget( scroll ); scroll.Canvas.Layout = Layout.Column(); scroll.Canvas.Layout.Margin = 32; var body = scroll.Canvas.Layout; body.Add( new Label.Subtitle( "Page 2" ) ); body.Add( new Label.Body( "Page 2 Body" ) ); body.AddStretchCell(); return scroll; }; /// /// Page 3 /// var page3 = new NavigationView.Option( "Page 3", "close" ); page3.CreatePage = () => { var scroll = new ScrollArea( null ); scroll.Canvas = new Widget( scroll ); scroll.Canvas.Layout = Layout.Column(); scroll.Canvas.Layout.Margin = 32; var body = scroll.Canvas.Layout; body.Add( new Label.Subtitle( "Page 3" ) ); body.Add( new Label.Body( "Page 3 Body" ) ); body.AddStretchCell(); return scroll; }; /// /// Page 4 /// var page4 = new NavigationView.Option( "Page 4", "crop_square" ); page4.CreatePage = () => { var scroll = new ScrollArea( null ); scroll.Canvas = new Widget( scroll ); scroll.Canvas.Layout = Layout.Column(); scroll.Canvas.Layout.Margin = 32; var body = scroll.Canvas.Layout; body.Add( new Label.Subtitle( "Page 4" ) ); body.Add( new Label.Body( "Page 4 Body" ) ); body.AddStretchCell(); return scroll; }; View.AddPage( page1 ); View.AddPage( page2 ); View.AddPage( page3 ); View.AddPage( page4 ); } }