S&box Wiki

Revision Difference

NavigationView#563506

<cat>Code.Editor</cat>⤶ <title>NavigationView</title>⤶ ⤶ # NavigationView⤶ ⤶ <page>NavigationView</page> is a widget with a sidebar down the left, allowing you to switch between pages. It's built to be used in the <page>Editor</page>.⤶ ⤶ # Example⤶ ⤶ <upload src="3c56a/8dd44e8b86fa7b4.mp4" size="2904419" name="2025-02-04 00-52-57.mp4" />⤶ ⤶ ```cs⤶ 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 );⤶ ⤶ }⤶ }⤶ ⤶ ⤶ ```⤶