diff --git a/pages.go b/pages.go index 146cfa4..83410ad 100644 --- a/pages.go +++ b/pages.go @@ -52,6 +52,18 @@ func (p *Pages) GetPageCount() int { return len(p.pages) } +// GetPageNames returns all page names ordered from front to back, +// optionally limited to visible pages. +func (p *Pages) GetPageNames(visibleOnly bool) []string { + var names []string + for index := len(p.pages) - 1; index >= 0; index-- { + if !visibleOnly || p.pages[index].Visible { + names = append(names, p.pages[index].Name) + } + } + return names +} + // AddPage adds a new page with the given name and primitive. If there was // previously a page with the same name, it is overwritten. Leaving the name // empty may cause conflicts in other functions so always specify a non-empty