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 );
///
///
///
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;
};
///
///
///
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;
};
///
///
///
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;
};
///
///
///
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 );
}
}