browsing

package
v0.10.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 21, 2024 License: GPL-3.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewSortOrderSelect added in v0.5.2

func NewSortOrderSelect(options []string, onChanged func(string)) *sortOrderSelect

Types

type AlbumPage

type AlbumPage struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

func (*AlbumPage) CreateRenderer

func (a *AlbumPage) CreateRenderer() fyne.WidgetRenderer

func (*AlbumPage) OnSongChange

func (a *AlbumPage) OnSongChange(track, lastScrobbledIfAny *mediaprovider.Track)

func (*AlbumPage) Reload

func (a *AlbumPage) Reload()

func (*AlbumPage) Restore

func (s *AlbumPage) Restore() Page

func (*AlbumPage) Route

func (a *AlbumPage) Route() controller.Route

func (*AlbumPage) Save

func (a *AlbumPage) Save() SavedPage

func (*AlbumPage) Scroll added in v0.9.1

func (a *AlbumPage) Scroll(scrollAmt float32)

func (*AlbumPage) SelectAll

func (a *AlbumPage) SelectAll()

func (*AlbumPage) Tapped

func (a *AlbumPage) Tapped(*fyne.PointEvent)

type AlbumPageHeader

type AlbumPageHeader struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

func NewAlbumPageHeader

func NewAlbumPageHeader(page *AlbumPage) *AlbumPageHeader

func (*AlbumPageHeader) Clear added in v0.5.0

func (a *AlbumPageHeader) Clear()

func (*AlbumPageHeader) CreateRenderer

func (a *AlbumPageHeader) CreateRenderer() fyne.WidgetRenderer

func (*AlbumPageHeader) Update

type ArtistPage

type ArtistPage struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

func (*ArtistPage) CreateRenderer

func (a *ArtistPage) CreateRenderer() fyne.WidgetRenderer

func (*ArtistPage) OnSongChange

func (a *ArtistPage) OnSongChange(track, lastScrobbledIfAny *mediaprovider.Track)

func (*ArtistPage) Reload

func (a *ArtistPage) Reload()

func (*ArtistPage) Restore

func (s *ArtistPage) Restore() Page

func (*ArtistPage) Route

func (a *ArtistPage) Route() controller.Route

func (*ArtistPage) Save

func (a *ArtistPage) Save() SavedPage

func (*ArtistPage) Scroll added in v0.9.1

func (g *ArtistPage) Scroll(scrollAmt float32)

func (*ArtistPage) SelectAll

func (a *ArtistPage) SelectAll()

func (*ArtistPage) Tapped

func (a *ArtistPage) Tapped(*fyne.PointEvent)

type ArtistPageHeader

type ArtistPageHeader struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

func NewArtistPageHeader

func NewArtistPageHeader(page *ArtistPage) *ArtistPageHeader

func (*ArtistPageHeader) Clear added in v0.5.0

func (a *ArtistPageHeader) Clear()

func (*ArtistPageHeader) CreateRenderer

func (a *ArtistPageHeader) CreateRenderer() fyne.WidgetRenderer

func (*ArtistPageHeader) Update

func (a *ArtistPageHeader) Update(artist *mediaprovider.ArtistWithAlbums)

func (*ArtistPageHeader) UpdateInfo

func (a *ArtistPageHeader) UpdateInfo(info *mediaprovider.ArtistInfo)

type BrowsingPane

type BrowsingPane struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

func NewBrowsingPane

func NewBrowsingPane(app *backend.App, contr *controller.Controller) *BrowsingPane

func (*BrowsingPane) ActivateNavigationButton

func (b *BrowsingPane) ActivateNavigationButton(num int)

func (*BrowsingPane) AddNavigationButton

func (b *BrowsingPane) AddNavigationButton(icon fyne.Resource, pageName controller.PageName, action func())

func (*BrowsingPane) AddSettingsMenuItem

func (b *BrowsingPane) AddSettingsMenuItem(label string, action func())

func (*BrowsingPane) AddSettingsMenuSeparator added in v0.6.0

func (b *BrowsingPane) AddSettingsMenuSeparator()

func (*BrowsingPane) ClearHistory

func (b *BrowsingPane) ClearHistory()

func (*BrowsingPane) CreateRenderer

func (b *BrowsingPane) CreateRenderer() fyne.WidgetRenderer

func (*BrowsingPane) CurrentPage

func (b *BrowsingPane) CurrentPage() controller.Route

func (*BrowsingPane) DisableNavigationButtons

func (b *BrowsingPane) DisableNavigationButtons()

func (*BrowsingPane) EnableNavigationButtons

func (b *BrowsingPane) EnableNavigationButtons()

func (*BrowsingPane) GetSearchBarIfAny

func (b *BrowsingPane) GetSearchBarIfAny() fyne.Focusable

func (*BrowsingPane) GoBack

func (b *BrowsingPane) GoBack()

func (*BrowsingPane) GoForward

func (b *BrowsingPane) GoForward()

func (*BrowsingPane) GoHome added in v0.4.0

func (b *BrowsingPane) GoHome()

func (*BrowsingPane) Reload

func (b *BrowsingPane) Reload()

func (*BrowsingPane) ScrollDown added in v0.9.1

func (b *BrowsingPane) ScrollDown()

func (*BrowsingPane) ScrollUp added in v0.9.1

func (b *BrowsingPane) ScrollUp()

func (*BrowsingPane) SelectAll

func (b *BrowsingPane) SelectAll()

func (*BrowsingPane) SetPage

func (b *BrowsingPane) SetPage(p Page)

type CanSelectAll

type CanSelectAll interface {
	SelectAll()
}

Pages with selection should implement this interface to receive Ctrl+A events

type CanShowNowPlaying

type CanShowNowPlaying interface {
	OnSongChange(song, lastScrobbledIfAny *mediaprovider.Track)
}

type CanShowPlayQueue added in v0.10.0

type CanShowPlayQueue interface {
	OnPlayQueueChange()
}

type CanShowPlayTime added in v0.4.0

type CanShowPlayTime interface {
	OnPlayTimeUpdate(curTime, totalTime float64)
}

type FavoritesPage

type FavoritesPage struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

func (*FavoritesPage) CreateRenderer

func (a *FavoritesPage) CreateRenderer() fyne.WidgetRenderer

func (*FavoritesPage) OnSearched

func (a *FavoritesPage) OnSearched(query string)

func (*FavoritesPage) OnSongChange

func (a *FavoritesPage) OnSongChange(song, lastScrobbledIfAny *mediaprovider.Track)

func (*FavoritesPage) Reload

func (a *FavoritesPage) Reload()

func (*FavoritesPage) Route

func (a *FavoritesPage) Route() controller.Route

func (*FavoritesPage) Save

func (a *FavoritesPage) Save() SavedPage

func (*FavoritesPage) Scroll added in v0.9.1

func (a *FavoritesPage) Scroll(amount float32)

func (*FavoritesPage) SearchWidget

func (a *FavoritesPage) SearchWidget() fyne.Focusable

func (*FavoritesPage) SelectAll

func (a *FavoritesPage) SelectAll()

func (*FavoritesPage) Tapped

func (a *FavoritesPage) Tapped(*fyne.PointEvent)

type GenreList

type GenreList struct {
	widget.BaseWidget

	OnNavTo func(string)
	// contains filtered or unexported fields
}

func NewGenreList

func NewGenreList(sorting widgets.ListHeaderSort) *GenreList

func (*GenreList) CreateRenderer

func (a *GenreList) CreateRenderer() fyne.WidgetRenderer

func (*GenreList) SetGenres added in v0.6.0

func (g *GenreList) SetGenres(genres []*mediaprovider.Genre)

type GenreListRow

type GenreListRow struct {
	widgets.FocusListRowBase

	Item *mediaprovider.Genre
	// contains filtered or unexported fields
}

func NewGenreListRow

func NewGenreListRow(layout *layouts.ColumnsLayout) *GenreListRow

type GenresPage

type GenresPage struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

func (*GenresPage) CreateRenderer

func (a *GenresPage) CreateRenderer() fyne.WidgetRenderer

func (*GenresPage) Reload

func (a *GenresPage) Reload()

func (*GenresPage) Route

func (a *GenresPage) Route() controller.Route

func (*GenresPage) Save

func (a *GenresPage) Save() SavedPage

func (*GenresPage) Scroll added in v0.9.1

func (a *GenresPage) Scroll(amount float32)

func (*GenresPage) SearchWidget

func (a *GenresPage) SearchWidget() fyne.Focusable

type GridViewPage added in v0.5.2

type GridViewPage[M, F any] struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

Base widget for grid view pages

func NewGridViewPage added in v0.5.2

func NewGridViewPage[M, F any](
	adapter GridViewPageAdapter[M, F],
	pool *util.WidgetPool,
	mp mediaprovider.MediaProvider,
	im *backend.ImageManager,
) *GridViewPage[M, F]

func (*GridViewPage[M, F]) CreateRenderer added in v0.5.2

func (g *GridViewPage[M, F]) CreateRenderer() fyne.WidgetRenderer

func (*GridViewPage[M, F]) OnSearched added in v0.5.2

func (g *GridViewPage[M, F]) OnSearched(query string)

func (*GridViewPage[M, F]) Reload added in v0.5.2

func (g *GridViewPage[M, F]) Reload()

func (*GridViewPage[M, F]) Route added in v0.5.2

func (g *GridViewPage[M, F]) Route() controller.Route

func (*GridViewPage[M, F]) Save added in v0.5.2

func (g *GridViewPage[M, F]) Save() SavedPage

func (*GridViewPage[M, F]) Scroll added in v0.9.1

func (g *GridViewPage[M, F]) Scroll(scrollAmt float32)

func (*GridViewPage[M, F]) SearchWidget added in v0.5.2

func (g *GridViewPage[M, F]) SearchWidget() fyne.Focusable

type GridViewPageAdapter added in v0.5.2

type GridViewPageAdapter[M, F any] interface {
	// Returns the title for the page
	Title() string

	// Returns the base media filter for this page, if any.
	// A filterable page with no base filters applied should return a zero-valued
	// filter pointer, *not* nil. (Nil means unfilterable and no filter button created.)
	Filter() mediaprovider.MediaFilter[M, F]

	// Returns the filter button for the page, if any.
	FilterButton() widgets.FilterButton[M, F]

	// Returns the cover placeholder resource for the page
	PlaceholderResource() fyne.Resource

	// Returns the route for the page
	Route() controller.Route

	// Returns the ActionButton for this page, if any
	ActionButton() *widget.Button

	// Returns the iterator for the given sortOrder and filter.
	// (Non-media pages can ignore the filter argument)
	Iter(sortOrder string, filter mediaprovider.MediaFilter[M, F]) widgets.GridViewIterator

	// Returns the iterator for the given search query and filter.
	SearchIter(query string, filter mediaprovider.MediaFilter[M, F]) widgets.GridViewIterator

	// Function that connects the GridView callbacks to the appropriate action handlers.
	ConnectGridActions(*widgets.GridView)
}

Base type for pages that show an iterable GridView

type NavigationHandler interface {
	SetPage(Page)
	CurrentPage() controller.Route
}

type NowPlayingPage

type NowPlayingPage struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

func (*NowPlayingPage) CreateRenderer

func (a *NowPlayingPage) CreateRenderer() fyne.WidgetRenderer

func (*NowPlayingPage) OnPlayQueueChange added in v0.10.0

func (a *NowPlayingPage) OnPlayQueueChange()

func (*NowPlayingPage) OnPlayTimeUpdate added in v0.4.0

func (a *NowPlayingPage) OnPlayTimeUpdate(_, _ float64)

func (*NowPlayingPage) OnSongChange

func (a *NowPlayingPage) OnSongChange(song, lastScrobbledIfAny *mediaprovider.Track)

func (*NowPlayingPage) Reload

func (a *NowPlayingPage) Reload()

func (*NowPlayingPage) Restore

func (s *NowPlayingPage) Restore() Page

func (*NowPlayingPage) Route

func (a *NowPlayingPage) Route() controller.Route

func (*NowPlayingPage) Save

func (a *NowPlayingPage) Save() SavedPage

func (*NowPlayingPage) SelectAll

func (a *NowPlayingPage) SelectAll()

func (*NowPlayingPage) Tapped

func (a *NowPlayingPage) Tapped(*fyne.PointEvent)

type Page

type Page interface {
	fyne.CanvasObject

	Save() SavedPage
	Reload()
	Route() controller.Route
}

type PlaylistList

type PlaylistList struct {
	widget.BaseWidget

	OnNavTo func(string)
	// contains filtered or unexported fields
}

func NewPlaylistList

func NewPlaylistList(initialSort widgets.ListHeaderSort) *PlaylistList

func (*PlaylistList) CreateRenderer

func (p *PlaylistList) CreateRenderer() fyne.WidgetRenderer

func (*PlaylistList) SetPlaylists added in v0.6.0

func (p *PlaylistList) SetPlaylists(playlists []*mediaprovider.Playlist)

Sets the playlists in the list. Does not issue Refresh call.

type PlaylistListRow

type PlaylistListRow struct {
	widgets.FocusListRowBase

	PlaylistID string
	// contains filtered or unexported fields
}

func NewPlaylistListRow

func NewPlaylistListRow(layout *layouts.ColumnsLayout) *PlaylistListRow

func (*PlaylistListRow) Tapped

func (a *PlaylistListRow) Tapped(*fyne.PointEvent)

type PlaylistPage

type PlaylistPage struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

func (*PlaylistPage) CreateRenderer

func (a *PlaylistPage) CreateRenderer() fyne.WidgetRenderer

func (*PlaylistPage) OnSongChange

func (a *PlaylistPage) OnSongChange(track, lastScrobbledIfAny *mediaprovider.Track)

func (*PlaylistPage) Reload

func (a *PlaylistPage) Reload()

func (*PlaylistPage) Restore

func (s *PlaylistPage) Restore() Page

func (*PlaylistPage) Route

func (a *PlaylistPage) Route() controller.Route

func (*PlaylistPage) Save

func (a *PlaylistPage) Save() SavedPage

func (*PlaylistPage) Scroll added in v0.9.1

func (a *PlaylistPage) Scroll(scrollAmt float32)

func (*PlaylistPage) SelectAll

func (a *PlaylistPage) SelectAll()

func (*PlaylistPage) Tapped

func (a *PlaylistPage) Tapped(*fyne.PointEvent)

type PlaylistPageHeader

type PlaylistPageHeader struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

func NewPlaylistPageHeader

func NewPlaylistPageHeader(page *PlaylistPage) *PlaylistPageHeader

func (*PlaylistPageHeader) Clear added in v0.5.0

func (a *PlaylistPageHeader) Clear()

func (*PlaylistPageHeader) CreateRenderer

func (a *PlaylistPageHeader) CreateRenderer() fyne.WidgetRenderer

func (*PlaylistPageHeader) Update

type PlaylistsPage

type PlaylistsPage struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

func (*PlaylistsPage) CreateRenderer

func (a *PlaylistsPage) CreateRenderer() fyne.WidgetRenderer

func (*PlaylistsPage) Reload

func (a *PlaylistsPage) Reload()

func (*PlaylistsPage) Route

func (a *PlaylistsPage) Route() controller.Route

func (*PlaylistsPage) Save

func (a *PlaylistsPage) Save() SavedPage

func (*PlaylistsPage) Scroll added in v0.9.1

func (p *PlaylistsPage) Scroll(scrollAmt float32)

func (*PlaylistsPage) SearchWidget

func (a *PlaylistsPage) SearchWidget() fyne.Focusable

type Router

type Router struct {
	App        *backend.App
	Controller *controller.Controller
	Nav        NavigationHandler
	// contains filtered or unexported fields
}

func NewRouter

func NewRouter(app *backend.App, controller *controller.Controller, nav NavigationHandler) Router

func (Router) CreatePage

func (r Router) CreatePage(rte controller.Route) Page

func (Router) NavigateTo

func (r Router) NavigateTo(rte controller.Route)

type SavedPage

type SavedPage interface {
	Restore() Page
}

type Scrollable added in v0.9.1

type Scrollable interface {
	Scroll(amount float32)
}

Pages that have one main scrollable view should implement this interface to receive callbacks from window-level keyboard scrolling (up/down)

type Searchable

type Searchable interface {
	SearchWidget() fyne.Focusable
}

Searchable pages should implement this interface so their search bar can be focused by keyboard shortcut.

type SortableGridViewPageAdapter added in v0.5.2

type SortableGridViewPageAdapter interface {
	// Returns the list of sort orders and the initially selected sort order
	SortOrders() ([]string, string)

	// Saves the given sort order setting.
	SaveSortOrder(string)
}

type TracksPage

type TracksPage struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

func (*TracksPage) CreateRenderer

func (t *TracksPage) CreateRenderer() fyne.WidgetRenderer

func (*TracksPage) OnSearched

func (t *TracksPage) OnSearched(query string)

func (*TracksPage) OnSongChange

func (t *TracksPage) OnSongChange(track, lastScrobbledIfAny *mediaprovider.Track)

func (*TracksPage) Reload

func (t *TracksPage) Reload()

func (*TracksPage) Restore

func (s *TracksPage) Restore() Page

func (*TracksPage) Route

func (t *TracksPage) Route() controller.Route

func (*TracksPage) Save

func (t *TracksPage) Save() SavedPage

func (*TracksPage) Scroll added in v0.9.1

func (g *TracksPage) Scroll(scrollAmt float32)

func (*TracksPage) SearchWidget

func (t *TracksPage) SearchWidget() fyne.Focusable

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL