using System.Collections.Generic; using System.Threading.Tasks; using System.ComponentModel; namespace Tizen.NUI.Binding { /// /// Interface abstracting platform-specific navigation. /// [EditorBrowsable(EditorBrowsableState.Never)] internal interface INavigation { /// /// Gets the modal navigation stack. /// IReadOnlyList ModalStack { get; } /// /// Gets the stack of pages in the navigation. /// IReadOnlyList NavigationStack { get; } /// /// Inserts a page in the navigation stack before an existing page in the stack. /// /// The page to add. /// The existing page, before which page will be inserted. void InsertPageBefore(Page page, Page before); /// /// Asynchronously removes the most recent Page from the navigation stack. /// /// The Page that had been at the top of the navigation stack. Task PopAsync(); /// /// Asynchronously removes the most recent Page from the navigation stack, with optional animation. /// /// Whether to animate the pop. /// The Page that had been at the top of the navigation stack. Task PopAsync(bool animated); /// /// Asynchronously dismisses the most recent modally presented Page. /// /// An awaitable instance, indicating the PopModalAsync completion. The Task.Result is the Page that has been popped. Task PopModalAsync(); /// /// Asynchronously dismisses the most recent modally presented Page, with optional animation. /// /// Whether to animate the pop. /// An awaitable, indicating the PopModalAsync completion. The Task.Result is the Page that has been popped. Task PopModalAsync(bool animated); /// /// Pops all but the root Page off the navigation stack. /// /// A task representing the asynchronous dismiss operation. Task PopToRootAsync(); /// /// Pops all but the root Page off the navigation stack, with optional animation. /// /// Whether to animate the pop. /// A task representing the asynchronous dismiss operation. Task PopToRootAsync(bool animated); /// /// Asynchronously adds a Page to the top of the navigation stack. /// /// The Page to be pushed on top of the navigation stack. /// A task that represents the asynchronous push operation. Task PushAsync(Page page); /// /// Asynchronously adds a Page to the top of the navigation stack, with optional animation. /// /// The page to push. /// Whether to animate the push. /// A task that represents the asynchronous push operation. Task PushAsync(Page page, bool animated); /// /// Presents a Page modally. /// /// The Page to present modally. /// An awaitable Task, indicating the PushModal completion. Task PushModalAsync(Page page); /// /// Presents a Page modally, with optional animation. /// /// The page to push. /// Whether to animate the push. /// An awaitable Task, indicating the PushModal completion. Task PushModalAsync(Page page, bool animated); /// /// Removes the specified page from the navigation stack. /// /// The page to remove. void RemovePage(Page page); } }