widgets

package
v0.13.1 Latest Latest
Warning

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

Go to latest
Published: Aug 20, 2024 License: GPL-3.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ColumnNum         = "Num"
	ColumnTitle       = "Title"
	ColumnArtist      = "Artist"
	ColumnTitleArtist = "Title/Artist"
	ColumnAlbum       = "Album"
	ColumnComposer    = "Composer"
	ColumnTime        = "Time"
	ColumnYear        = "Year"
	ColumnFavorite    = "Favorite"
	ColumnRating      = "Rating"
	ColumnPlays       = "Plays"
	ColumnComment     = "Comment"
	ColumnBitrate     = "Bitrate"
	ColumnSize        = "Size"
	ColumnPath        = "Path"
)

Variables

View Source
var (
	ExpandedTracklistRowColumns []TracklistColumn

	ExpandedTracklistRowColumnWidths []float32

	CompactTracklistRowColumns []TracklistColumn

	CompactTracklistRowColumnWidths []float32
)

Functions

func NewClearTextButton

func NewClearTextButton(onTapped func()) *clearTextButton

func NewDisabledGridWrap added in v0.7.0

func NewDisabledGridWrap(len func() int, create func() fyne.CanvasObject, update func(widget.GridWrapItemID, fyne.CanvasObject)) *disabledGridWrap

func NewInfoMessage added in v0.11.0

func NewInfoMessage(title, subtitle string) fyne.CanvasObject

func NewLabelMinSize

func NewLabelMinSize(text string, minWidth float32) *labelMinSize

func NewVolumeSlider

func NewVolumeSlider(width float32) *volumeSlider

Types

type AlbumFilterButton

type AlbumFilterButton struct {
	ttwidget.Button

	OnChanged        func()
	GenreDisabled    bool
	FavoriteDisabled bool
	// contains filtered or unexported fields
}

func NewAlbumFilterButton

func NewAlbumFilterButton(filter mediaprovider.AlbumFilter, fetchGenresFunc func() ([]*mediaprovider.Genre, error)) *AlbumFilterButton

func (*AlbumFilterButton) Filter added in v0.10.0

func (*AlbumFilterButton) Refresh

func (a *AlbumFilterButton) Refresh()

func (*AlbumFilterButton) SetOnChanged added in v0.10.0

func (a *AlbumFilterButton) SetOnChanged(fn func())

type AlbumFilterPopup

type AlbumFilterPopup struct {
	widget.BaseWidget

	OnChanged func()
	// contains filtered or unexported fields
}

func NewAlbumFilterPopup

func NewAlbumFilterPopup(filter *AlbumFilterButton) *AlbumFilterPopup

func (*AlbumFilterPopup) CreateRenderer

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

func (*AlbumFilterPopup) Refresh

func (a *AlbumFilterPopup) Refresh()

func (*AlbumFilterPopup) Tapped

func (a *AlbumFilterPopup) Tapped(_ *fyne.PointEvent)

type Aspectable added in v0.10.0

type Aspectable interface {
	fyne.CanvasObject
	Aspect() float32
}

type AuxControls

type AuxControls struct {
	widget.BaseWidget

	VolumeControl *VolumeControl
	// contains filtered or unexported fields
}

The "aux" controls for playback, positioned to the right of the BottomPanel. Currently only volume control.

func NewAuxControls

func NewAuxControls(initialVolume int) *AuxControls

func (*AuxControls) CreateRenderer

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

func (*AuxControls) OnChangeLoopMode added in v0.4.0

func (a *AuxControls) OnChangeLoopMode(f func())

func (*AuxControls) OnShowPlayQueue added in v0.13.0

func (a *AuxControls) OnShowPlayQueue(f func())

func (*AuxControls) SetLoopMode added in v0.4.0

func (a *AuxControls) SetLoopMode(mode backend.LoopMode)

type BatchingIterator

type BatchingIterator[M any] struct {
	// contains filtered or unexported fields
}

func NewBatchingIterator

func NewBatchingIterator[M any](iter mediaprovider.MediaIterator[M]) BatchingIterator[M]

func (*BatchingIterator[M]) NextN

func (b *BatchingIterator[M]) NextN(n int) []*M

type CaptionedImage added in v0.10.0

type CaptionedImage struct {
	widget.BaseWidget

	Content Aspectable
	Caption fyne.CanvasObject
}

func NewCaptionedImage added in v0.10.0

func NewCaptionedImage(content Aspectable, caption fyne.CanvasObject) *CaptionedImage

func (*CaptionedImage) CreateRenderer added in v0.10.0

func (c *CaptionedImage) CreateRenderer() fyne.WidgetRenderer

type CharAllowedFunc

type CharAllowedFunc func(curText string, selectedText string, r rune) bool

type CompactTracklistRow added in v0.11.0

type CompactTracklistRow struct {
	// contains filtered or unexported fields
}

func NewCompactTracklistRow added in v0.11.0

func NewCompactTracklistRow(tracklist *Tracklist, playingIcon fyne.CanvasObject) *CompactTracklistRow

func (*CompactTracklistRow) SetOnTappedSecondary added in v0.11.0

func (t *CompactTracklistRow) SetOnTappedSecondary(f func(*fyne.PointEvent, int))

func (*CompactTracklistRow) TappedSecondary added in v0.11.0

func (t *CompactTracklistRow) TappedSecondary(e *fyne.PointEvent)

func (*CompactTracklistRow) TrackID added in v0.11.0

func (t *CompactTracklistRow) TrackID() string

func (*CompactTracklistRow) Update added in v0.11.0

func (t *CompactTracklistRow) Update(tm *util.TrackListModel, rowNum int)

type ExpandedTracklistRow added in v0.11.0

type ExpandedTracklistRow struct {
	// contains filtered or unexported fields
}

func NewExpandedTracklistRow added in v0.11.0

func NewExpandedTracklistRow(tracklist *Tracklist, im *backend.ImageManager, playingIcon fyne.CanvasObject) *ExpandedTracklistRow

func (*ExpandedTracklistRow) SetOnTappedSecondary added in v0.11.0

func (t *ExpandedTracklistRow) SetOnTappedSecondary(f func(*fyne.PointEvent, int))

func (*ExpandedTracklistRow) TappedSecondary added in v0.11.0

func (t *ExpandedTracklistRow) TappedSecondary(e *fyne.PointEvent)

func (*ExpandedTracklistRow) TrackID added in v0.11.0

func (t *ExpandedTracklistRow) TrackID() string

func (*ExpandedTracklistRow) Update added in v0.11.0

func (t *ExpandedTracklistRow) Update(tm *util.TrackListModel, rowNum int)

type FavoriteButton

type FavoriteButton struct {
	widget.Button

	IsFavorited bool
}

func NewFavoriteButton

func NewFavoriteButton(onTapped func()) *FavoriteButton

func (*FavoriteButton) Refresh

func (f *FavoriteButton) Refresh()

func (*FavoriteButton) Tapped

func (f *FavoriteButton) Tapped(e *fyne.PointEvent)

type FavoriteIcon added in v0.10.0

type FavoriteIcon struct {
	TappableIcon

	Favorite bool
}

func NewFavoriteIcon added in v0.10.0

func NewFavoriteIcon() *FavoriteIcon

func (*FavoriteIcon) Refresh added in v0.10.0

func (f *FavoriteIcon) Refresh()

type FilterButton added in v0.10.0

type FilterButton[M, F any] interface {
	fyne.CanvasObject

	Filter() mediaprovider.MediaFilter[M, F]
	SetOnChanged(func())
}

type FocusList added in v0.9.1

type FocusList struct {
	list.List
	// contains filtered or unexported fields
}

FocusList extends List to be disabled so that the focus manager considers it unfocusable, and adds utilities for handling our own focus navigation on the rows directly (with FocusListRow

func NewFocusList added in v0.9.1

func NewFocusList(len func() int, create func() fyne.CanvasObject, update func(widget.GridWrapItemID, fyne.CanvasObject)) *FocusList

func (*FocusList) Disable added in v0.9.1

func (g *FocusList) Disable()

func (*FocusList) Disabled added in v0.9.1

func (g *FocusList) Disabled() bool

func (*FocusList) Enable added in v0.9.1

func (g *FocusList) Enable()

func (*FocusList) FocusNeighbor added in v0.9.1

func (g *FocusList) FocusNeighbor(curItem widget.ListItemID, up bool)

type FocusListRow added in v0.9.1

type FocusListRow interface {
	fyne.Focusable
	ItemID() widget.ListItemID
	SetItemID(widget.ListItemID)

	SetOnTapped(func())
	SetOnDoubleTapped(func())
	SetOnFocusNeighbor(func(up bool))
}

type FocusListRowBase added in v0.9.1

type FocusListRowBase struct {
	widget.BaseWidget

	ListItemID widget.ListItemID
	Content    fyne.CanvasObject
	Selected   bool
	Focused    bool

	OnTapped        func()
	OnDoubleTapped  func()
	OnFocusNeighbor func(up bool) //TODO: func(up, selecting bool)
	// contains filtered or unexported fields
}

Base type used for all list rows in widgets such as Tracklist, etc.

func (*FocusListRowBase) CreateRenderer added in v0.9.1

func (l *FocusListRowBase) CreateRenderer() fyne.WidgetRenderer

func (*FocusListRowBase) EnsureUnfocused added in v0.9.1

func (l *FocusListRowBase) EnsureUnfocused()

func (*FocusListRowBase) FocusGained added in v0.9.1

func (l *FocusListRowBase) FocusGained()

func (*FocusListRowBase) FocusLost added in v0.9.1

func (l *FocusListRowBase) FocusLost()

func (*FocusListRowBase) ItemID added in v0.9.1

func (l *FocusListRowBase) ItemID() widget.ListItemID

func (*FocusListRowBase) MouseIn added in v0.13.1

func (l *FocusListRowBase) MouseIn(e *desktop.MouseEvent)

func (*FocusListRowBase) MouseMoved added in v0.13.1

func (l *FocusListRowBase) MouseMoved(e *desktop.MouseEvent)

func (*FocusListRowBase) MouseOut added in v0.13.1

func (l *FocusListRowBase) MouseOut()

func (*FocusListRowBase) Refresh added in v0.9.1

func (l *FocusListRowBase) Refresh()

func (*FocusListRowBase) SetItemID added in v0.11.0

func (l *FocusListRowBase) SetItemID(id widget.ListItemID)

func (*FocusListRowBase) SetOnDoubleTapped added in v0.11.0

func (l *FocusListRowBase) SetOnDoubleTapped(f func())

func (*FocusListRowBase) SetOnFocusNeighbor added in v0.11.0

func (l *FocusListRowBase) SetOnFocusNeighbor(f func(up bool))

func (*FocusListRowBase) SetOnTapped added in v0.11.0

func (l *FocusListRowBase) SetOnTapped(f func())

func (*FocusListRowBase) Tapped added in v0.9.1

func (l *FocusListRowBase) Tapped(*fyne.PointEvent)

We implement our own double tapping so that the Tapped behavior can be triggered instantly.

func (*FocusListRowBase) TypedKey added in v0.9.1

func (l *FocusListRowBase) TypedKey(e *fyne.KeyEvent)

func (*FocusListRowBase) TypedRune added in v0.9.1

func (l *FocusListRowBase) TypedRune(r rune)

type GenreFilterSubsection

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

func NewGenreFilterSubsection

func NewGenreFilterSubsection(onChanged func([]string), initialSelectedGenres []string) *GenreFilterSubsection

func (*GenreFilterSubsection) CreateRenderer

func (g *GenreFilterSubsection) CreateRenderer() fyne.WidgetRenderer

func (*GenreFilterSubsection) MinSize

func (g *GenreFilterSubsection) MinSize() fyne.Size

func (*GenreFilterSubsection) SetGenreList

func (g *GenreFilterSubsection) SetGenreList(genres []string)

type GridView

type GridView struct {
	widget.BaseWidget

	ShowSuffix bool

	GridViewState
	// contains filtered or unexported fields
}

func NewFixedGridView

func NewFixedGridView(items []GridViewItemModel, fetch util.ImageFetcher, placeholder fyne.Resource) *GridView

func NewGridView

func NewGridView(iter GridViewIterator, fetch util.ImageFetcher, placeholder fyne.Resource) *GridView

func NewGridViewFromState

func NewGridViewFromState(state *GridViewState) *GridView

func (*GridView) Clear

func (g *GridView) Clear()

func (*GridView) CreateRenderer

func (g *GridView) CreateRenderer() fyne.WidgetRenderer

func (*GridView) GetScrollOffset

func (g *GridView) GetScrollOffset() float32

func (*GridView) Reset

func (g *GridView) Reset(iter GridViewIterator)

func (*GridView) ResetFixed

func (g *GridView) ResetFixed(items []GridViewItemModel)

func (*GridView) ResetFromState added in v0.5.0

func (g *GridView) ResetFromState(state *GridViewState)

func (*GridView) Resize added in v0.9.1

func (g *GridView) Resize(size fyne.Size)

func (*GridView) SaveToState

func (g *GridView) SaveToState() *GridViewState

func (*GridView) ScrollToOffset

func (g *GridView) ScrollToOffset(offs float32)

func (*GridView) Tapped added in v0.9.1

func (g *GridView) Tapped(*fyne.PointEvent)

type GridViewItem

type GridViewItem struct {
	widget.BaseWidget

	ShowSuffix bool

	// updated by GridView
	Cover     *coverImage
	ImgLoader util.ThumbnailLoader
	ItemIndex int

	OnPlay              func()
	OnShowContextMenu   func(fyne.Position)
	OnShowItemPage      func()
	OnShowSecondaryPage func(string)

	// Invoked with arg 0-3 when left, right, up, or down neighbor should be focused, respectively
	OnFocusNeighbor func(int)
	// contains filtered or unexported fields
}

func NewGridViewItem

func NewGridViewItem(placeholderResource fyne.Resource) *GridViewItem

func (*GridViewItem) CreateRenderer

func (g *GridViewItem) CreateRenderer() fyne.WidgetRenderer

func (*GridViewItem) FocusGained added in v0.9.1

func (g *GridViewItem) FocusGained()

func (*GridViewItem) FocusLost added in v0.9.1

func (g *GridViewItem) FocusLost()

func (*GridViewItem) ItemID

func (g *GridViewItem) ItemID() string

func (*GridViewItem) MouseIn added in v0.7.0

func (g *GridViewItem) MouseIn(e *desktop.MouseEvent)

func (*GridViewItem) MouseMoved added in v0.7.0

func (g *GridViewItem) MouseMoved(e *desktop.MouseEvent)

func (*GridViewItem) MouseOut added in v0.7.0

func (g *GridViewItem) MouseOut()

func (*GridViewItem) NeedsUpdate added in v0.5.2

func (g *GridViewItem) NeedsUpdate(model GridViewItemModel) bool

func (*GridViewItem) Refresh added in v0.5.0

func (g *GridViewItem) Refresh()

func (*GridViewItem) Tapped added in v0.9.1

func (g *GridViewItem) Tapped(*fyne.PointEvent)

func (*GridViewItem) TypedKey added in v0.9.1

func (g *GridViewItem) TypedKey(e *fyne.KeyEvent)

func (*GridViewItem) TypedRune added in v0.9.1

func (g *GridViewItem) TypedRune(rune)

func (*GridViewItem) Update

func (g *GridViewItem) Update(model GridViewItemModel)

type GridViewItemModel

type GridViewItemModel struct {
	Name         string
	ID           string
	CoverArtID   string
	Secondary    []string
	SecondaryIDs []string
	Suffix       string
}

type GridViewIterator

type GridViewIterator interface {
	NextN(int) []GridViewItemModel
}

func NewGridViewAlbumIterator

func NewGridViewAlbumIterator(iter mediaprovider.AlbumIterator) GridViewIterator

func NewGridViewArtistIterator added in v0.10.0

func NewGridViewArtistIterator(iter mediaprovider.ArtistIterator) GridViewIterator

type GridViewState

type GridViewState struct {
	Placeholder fyne.Resource

	DisableSharing bool

	OnPlay              func(id string, shuffle bool)
	OnPlayNext          func(id string)
	OnAddToQueue        func(id string)
	OnAddToPlaylist     func(id string)
	OnDownload          func(id string)
	OnShare             func(id string)
	OnShowItemPage      func(id string)
	OnShowSecondaryPage func(id string)
	// contains filtered or unexported fields
}

type IconButton added in v0.11.0

type IconButton struct {
	ttwidget.ToolTipWidget

	Highlighted bool
	IconSize    IconButtonSize
	OnTapped    func()
	// contains filtered or unexported fields
}

func NewIconButton added in v0.11.0

func NewIconButton(icon fyne.Resource, onTapped func()) *IconButton

func (*IconButton) CreateRenderer added in v0.11.0

func (i *IconButton) CreateRenderer() fyne.WidgetRenderer

func (*IconButton) FocusGained added in v0.11.0

func (i *IconButton) FocusGained()

func (*IconButton) FocusLost added in v0.11.0

func (i *IconButton) FocusLost()

func (*IconButton) MinSize added in v0.11.0

func (i *IconButton) MinSize() fyne.Size

func (*IconButton) MouseIn added in v0.11.0

func (i *IconButton) MouseIn(e *desktop.MouseEvent)

func (*IconButton) MouseMoved added in v0.11.0

func (i *IconButton) MouseMoved(e *desktop.MouseEvent)

func (*IconButton) MouseOut added in v0.11.0

func (i *IconButton) MouseOut()

func (*IconButton) Refresh added in v0.11.0

func (i *IconButton) Refresh()

func (*IconButton) SetIcon added in v0.11.0

func (i *IconButton) SetIcon(icon fyne.Resource)

func (*IconButton) Tapped added in v0.11.0

func (i *IconButton) Tapped(*fyne.PointEvent)

func (*IconButton) TypedKey added in v0.11.0

func (i *IconButton) TypedKey(e *fyne.KeyEvent)

func (*IconButton) TypedRune added in v0.11.0

func (i *IconButton) TypedRune(r rune)

type IconButtonSize added in v0.11.0

type IconButtonSize int
const (
	IconButtonSizeNormal IconButtonSize = iota
	IconButtonSizeBigger
	IconButtonSizeSmaller
)

type ImagePlaceholder

type ImagePlaceholder struct {
	ScaleMode       canvas.ImageScale
	PlaceholderIcon fyne.Resource

	widget.BaseWidget

	OnTapped          func(*fyne.PointEvent)
	OnTappedSecondary func(*fyne.PointEvent)
	// contains filtered or unexported fields
}

A widget that can display an image or else a placeholder with a rectangular border frame and an icon positioned in the center of the frame.

func NewImagePlaceholder

func NewImagePlaceholder(centerIcon fyne.Resource, minSize float32) *ImagePlaceholder

func (*ImagePlaceholder) Aspect added in v0.10.0

func (i *ImagePlaceholder) Aspect() float32

func (*ImagePlaceholder) CreateRenderer

func (i *ImagePlaceholder) CreateRenderer() fyne.WidgetRenderer

func (*ImagePlaceholder) HaveImage

func (i *ImagePlaceholder) HaveImage() bool

func (*ImagePlaceholder) Image

func (i *ImagePlaceholder) Image() image.Image

func (*ImagePlaceholder) MinSize

func (i *ImagePlaceholder) MinSize() fyne.Size

func (*ImagePlaceholder) Refresh

func (i *ImagePlaceholder) Refresh()

func (*ImagePlaceholder) SetImage

func (i *ImagePlaceholder) SetImage(img image.Image, tappable bool)

type LargeNowPlayingCard added in v0.10.0

type LargeNowPlayingCard struct {
	CaptionedImage

	DisableRating bool

	OnArtistNameTapped func(artistID string)
	OnAlbumNameTapped  func()
	OnRadioURLTapped   func(url string)
	OnSetRating        func(rating int)
	OnSetFavorite      func(favorite bool)
	// contains filtered or unexported fields
}

Shows the current album art, track name, artist name, and album name for the currently playing track. Placed into the left side of the BottomPanel.

func NewLargeNowPlayingCard added in v0.10.0

func NewLargeNowPlayingCard() *LargeNowPlayingCard

func (*LargeNowPlayingCard) Refresh added in v0.11.0

func (n *LargeNowPlayingCard) Refresh()

func (*LargeNowPlayingCard) SetCoverImage added in v0.10.0

func (n *LargeNowPlayingCard) SetCoverImage(im image.Image)

func (*LargeNowPlayingCard) SetDisplayedFavorite added in v0.10.0

func (n *LargeNowPlayingCard) SetDisplayedFavorite(favorite bool)

func (*LargeNowPlayingCard) SetDisplayedRating added in v0.10.0

func (n *LargeNowPlayingCard) SetDisplayedRating(rating int)

func (*LargeNowPlayingCard) Update added in v0.10.0

type ListColumn

type ListColumn struct {
	Text             string
	Alignment        fyne.TextAlign
	CanToggleVisible bool
}

type ListHeader

type ListHeader struct {
	widget.BaseWidget

	DisableSorting bool

	OnColumnSortChanged         func(ListHeaderSort)
	OnColumnVisibilityChanged   func(int, bool)
	OnColumnVisibilityMenuShown func(*widget.PopUp)
	// contains filtered or unexported fields
}

func NewListHeader

func NewListHeader(cols []ListColumn, layout *layouts.ColumnsLayout) *ListHeader

func (*ListHeader) CreateRenderer

func (l *ListHeader) CreateRenderer() fyne.WidgetRenderer

func (*ListHeader) SetColumnVisible

func (l *ListHeader) SetColumnVisible(colNum int, visible bool)

func (*ListHeader) SetSorting

func (l *ListHeader) SetSorting(sort ListHeaderSort)

Sets the sorting for the ListHeader. Will invoke OnColumnSortChanged if set.

func (*ListHeader) TappedSecondary

func (l *ListHeader) TappedSecondary(e *fyne.PointEvent)

type ListHeaderSort

type ListHeaderSort struct {
	ColNumber int
	Type      SortType
}

type LoadingDots added in v0.9.1

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

func NewLoadingDots added in v0.9.1

func NewLoadingDots() *LoadingDots

func (*LoadingDots) CreateRenderer added in v0.9.1

func (l *LoadingDots) CreateRenderer() fyne.WidgetRenderer

func (*LoadingDots) Start added in v0.9.1

func (l *LoadingDots) Start()

func (*LoadingDots) Stop added in v0.9.1

func (l *LoadingDots) Stop()

type LyricsViewer added in v0.10.0

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

func NewLyricsViewer added in v0.10.0

func NewLyricsViewer() *LyricsViewer

func (*LyricsViewer) CreateRenderer added in v0.10.0

func (l *LyricsViewer) CreateRenderer() fyne.WidgetRenderer

func (*LyricsViewer) OnSeeked added in v0.11.0

func (l *LyricsViewer) OnSeeked(timeSecs float64)

func (*LyricsViewer) SetLyrics added in v0.10.0

func (l *LyricsViewer) SetLyrics(lyrics *mediaprovider.Lyrics)

func (*LyricsViewer) UpdatePlayPos added in v0.11.0

func (l *LyricsViewer) UpdatePlayPos(timeSecs float64)

type MaxRowsLabel added in v0.8.1

type MaxRowsLabel struct {
	widget.Label
	// contains filtered or unexported fields
}

func NewMaxRowsLabel added in v0.8.1

func NewMaxRowsLabel(maxRows int, text string) *MaxRowsLabel

func (*MaxRowsLabel) MinSize added in v0.8.1

func (m *MaxRowsLabel) MinSize() fyne.Size
type MultiHyperlink struct {
	widget.BaseWidget

	Segments []MultiHyperlinkSegment

	// Suffix string that is appended (with · separator)
	// only if there is enough room
	Suffix string

	OnMouseIn  func(*desktop.MouseEvent)
	OnMouseOut func()
	OnTapped   func(string)

	SizeName       fyne.ThemeSizeName
	SuffixSizeName fyne.ThemeSizeName
	// contains filtered or unexported fields
}
func NewMultiHyperlink() *MultiHyperlink

func (*MultiHyperlink) BuildSegments added in v0.6.0

func (m *MultiHyperlink) BuildSegments(texts, links []string)

func (*MultiHyperlink) CreateRenderer added in v0.6.0

func (c *MultiHyperlink) CreateRenderer() fyne.WidgetRenderer

func (*MultiHyperlink) MinSize added in v0.6.0

func (c *MultiHyperlink) MinSize() fyne.Size

func (*MultiHyperlink) Refresh added in v0.6.0

func (c *MultiHyperlink) Refresh()

func (*MultiHyperlink) Resize added in v0.6.0

func (c *MultiHyperlink) Resize(size fyne.Size)

type MultiHyperlinkSegment added in v0.6.0

type MultiHyperlinkSegment struct {
	Text   string
	LinkID string
}

type NowPlayingCard

type NowPlayingCard struct {
	widget.BaseWidget

	DisableRating bool

	OnTrackNameTapped  func()
	OnArtistNameTapped func(artistID string)
	OnAlbumNameTapped  func()
	OnCoverTapped      func()
	OnSetRating        func(rating int)
	OnSetFavorite      func(favorite bool)
	OnAddToPlaylist    func()
	OnShowTrackInfo    func()
	OnShare            func()
	// contains filtered or unexported fields
}

Shows the current album art, track name, artist name, and album name for the currently playing track. Placed into the left side of the BottomPanel.

func NewNowPlayingCard

func NewNowPlayingCard() *NowPlayingCard

func (*NowPlayingCard) CreateRenderer

func (n *NowPlayingCard) CreateRenderer() fyne.WidgetRenderer

func (*NowPlayingCard) MinSize added in v0.7.0

func (n *NowPlayingCard) MinSize() fyne.Size

func (*NowPlayingCard) SetImage added in v0.11.0

func (n *NowPlayingCard) SetImage(cover image.Image)

func (*NowPlayingCard) Update

func (n *NowPlayingCard) Update(track mediaprovider.MediaItem)
type OptionHyperlink struct {
	widget.BaseWidget

	OnShowMenu func(btnPos fyne.Position)
	// contains filtered or unexported fields
}

OptionHyperlink is a widget that displays a "vertical dots"/"more" button to the right of the text, which can show a menu.

func NewOptionHyperlink() *OptionHyperlink

func (*OptionHyperlink) CreateRenderer added in v0.11.0

func (o *OptionHyperlink) CreateRenderer() fyne.WidgetRenderer

func (*OptionHyperlink) SetMenuBtnEnabled added in v0.11.0

func (o *OptionHyperlink) SetMenuBtnEnabled(enabled bool)

func (*OptionHyperlink) SetOnTapped added in v0.11.0

func (o *OptionHyperlink) SetOnTapped(f func())

func (*OptionHyperlink) SetTextAndToolTip added in v0.13.1

func (o *OptionHyperlink) SetTextAndToolTip(text string)

func (*OptionHyperlink) SetTextStyle added in v0.11.0

func (o *OptionHyperlink) SetTextStyle(style fyne.TextStyle)

func (*OptionHyperlink) Text added in v0.11.0

func (o *OptionHyperlink) Text() string

type PlayQueueList added in v0.10.0

type PlayQueueList struct {
	widget.BaseWidget

	Reorderable    bool
	DisableRating  bool
	DisableSharing bool

	// user action callbacks
	OnPlayItemAt        func(idx int)
	OnPlaySelection     func(items []mediaprovider.MediaItem, shuffle bool)
	OnPlaySelectionNext func(items []mediaprovider.MediaItem)
	OnAddToQueue        func(items []mediaprovider.MediaItem)
	OnAddToPlaylist     func(trackIDs []string)
	OnSetFavorite       func(trackIDs []string, fav bool)
	OnSetRating         func(trackIDs []string, rating int)
	OnRemoveFromQueue   func(idxs []int)
	OnDownload          func(tracks []*mediaprovider.Track, downloadName string)
	OnShowTrackInfo     func(track *mediaprovider.Track)
	OnShare             func(tracks []*mediaprovider.Track)
	OnShowArtistPage    func(artistID string)
	OnReorderItems      func(idxs []int, reorderTo int)
	// contains filtered or unexported fields
}

func NewPlayQueueList added in v0.10.0

func NewPlayQueueList(im *backend.ImageManager, useNonQueueMenu bool) *PlayQueueList

func (*PlayQueueList) CreateRenderer added in v0.10.0

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

func (*PlayQueueList) Items added in v0.13.0

func (p *PlayQueueList) Items() []mediaprovider.MediaItem

func (*PlayQueueList) Refresh added in v0.12.0

func (p *PlayQueueList) Refresh()

func (*PlayQueueList) Scroll added in v0.13.0

func (p *PlayQueueList) Scroll(amount float32)

func (*PlayQueueList) ScrollToNowPlaying added in v0.13.0

func (p *PlayQueueList) ScrollToNowPlaying()

func (*PlayQueueList) SelectAll added in v0.10.0

func (p *PlayQueueList) SelectAll()

func (*PlayQueueList) SetItems added in v0.11.0

func (p *PlayQueueList) SetItems(items []mediaprovider.MediaItem)

func (*PlayQueueList) SetNowPlaying added in v0.10.0

func (p *PlayQueueList) SetNowPlaying(itemID string)

Sets the currently playing item ID and updates the list rendering

func (*PlayQueueList) SetTracks added in v0.10.0

func (p *PlayQueueList) SetTracks(trs []*mediaprovider.Track)

func (*PlayQueueList) UnselectAll added in v0.10.0

func (p *PlayQueueList) UnselectAll()

type PlayQueueListModel added in v0.11.0

type PlayQueueListModel struct {
	Item     mediaprovider.MediaItem
	Selected bool
}

type PlayQueueListRow added in v0.10.0

type PlayQueueListRow struct {
	FocusListRowBase

	OnTappedSecondary func(e *fyne.PointEvent, trackIdx int)
	// contains filtered or unexported fields
}

func NewPlayQueueListRow added in v0.10.0

func NewPlayQueueListRow(playQueueList *PlayQueueList, im *backend.ImageManager, playingIcon fyne.CanvasObject) *PlayQueueListRow

func (*PlayQueueListRow) TappedSecondary added in v0.10.0

func (p *PlayQueueListRow) TappedSecondary(e *fyne.PointEvent)

func (*PlayQueueListRow) Update added in v0.10.0

func (p *PlayQueueListRow) Update(tm *util.TrackListModel, rowNum int)

type PlayerControls

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

func NewPlayerControls

func NewPlayerControls() *PlayerControls

NewPlayerControls sets up the seek bar, and transport buttons.

func (*PlayerControls) CreateRenderer

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

func (*PlayerControls) OnPlayPause

func (pc *PlayerControls) OnPlayPause(f func())

func (*PlayerControls) OnSeek

func (pc *PlayerControls) OnSeek(f func(float64))

func (*PlayerControls) OnSeekNext

func (pc *PlayerControls) OnSeekNext(f func())

func (*PlayerControls) OnSeekPrevious

func (pc *PlayerControls) OnSeekPrevious(f func())

func (*PlayerControls) SetPlaying

func (pc *PlayerControls) SetPlaying(playing bool)

func (*PlayerControls) UpdatePlayTime

func (pc *PlayerControls) UpdatePlayTime(curTime, totalTime float64)

type SearchEntry

type SearchEntry struct {
	widget.Entry

	OnSearched func(string)
}

SearchEntry is a search entry widget that will issue a search command (aka call OnSearched) when a short span of time has elapsed since the user typed into the widget.

func NewSearchEntry

func NewSearchEntry() *SearchEntry

func (*SearchEntry) Init added in v0.7.0

func (sf *SearchEntry) Init()

For use only by extending widgets

func (*SearchEntry) MinSize

func (s *SearchEntry) MinSize() fyne.Size

func (*SearchEntry) Refresh

func (s *SearchEntry) Refresh()

func (*SearchEntry) TypedKey added in v0.7.0

func (s *SearchEntry) TypedKey(e *fyne.KeyEvent)

type SortType

type SortType int
const (
	SortNone SortType = iota
	SortAscending
	SortDescending
)

type StarRating

type StarRating struct {
	widget.BaseWidget

	IsDisabled bool
	Rating     int
	StarSize   float32

	OnRatingChanged func(int)
	// contains filtered or unexported fields
}

func NewStarRating

func NewStarRating() *StarRating

func (*StarRating) CreateRenderer

func (s *StarRating) CreateRenderer() fyne.WidgetRenderer

func (*StarRating) Disable added in v0.8.0

func (s *StarRating) Disable()

func (*StarRating) Disabled added in v0.8.0

func (s *StarRating) Disabled() bool

func (*StarRating) Enable added in v0.8.0

func (s *StarRating) Enable()

func (*StarRating) MinSize

func (s *StarRating) MinSize() fyne.Size

func (*StarRating) MouseIn

func (s *StarRating) MouseIn(e *desktop.MouseEvent)

func (*StarRating) MouseMoved

func (s *StarRating) MouseMoved(e *desktop.MouseEvent)

func (*StarRating) MouseOut

func (s *StarRating) MouseOut()

func (*StarRating) Refresh

func (s *StarRating) Refresh()

func (*StarRating) Tapped

func (s *StarRating) Tapped(*fyne.PointEvent)

type TappableIcon

type TappableIcon struct {
	widget.Icon

	NoPointerCursor bool
	OnTapped        func()
}

TappableIcon is a tappable wrapper of widget.Icon

func NewTappableIcon added in v0.4.0

func NewTappableIcon(res fyne.Resource) *TappableIcon

func (*TappableIcon) Cursor

func (t *TappableIcon) Cursor() desktop.Cursor

func (*TappableIcon) MouseIn

func (t *TappableIcon) MouseIn(*desktop.MouseEvent)

func (*TappableIcon) MouseMoved

func (t *TappableIcon) MouseMoved(*desktop.MouseEvent)

func (*TappableIcon) MouseOut

func (t *TappableIcon) MouseOut()

func (*TappableIcon) Tapped

func (t *TappableIcon) Tapped(_ *fyne.PointEvent)

func (*TappableIcon) TappedSecondary

func (t *TappableIcon) TappedSecondary(_ *fyne.PointEvent)

type TappableImage

type TappableImage struct {
	widget.BaseWidget
	canvas.Image

	DisableTapping    bool
	OnTapped          func(*fyne.PointEvent)
	OnTappedSecondary func(*fyne.PointEvent)
}

TappableImage is a tappable wrapper of canvas.Image

func NewTappableImage

func NewTappableImage(onTapped func(*fyne.PointEvent)) *TappableImage

func (*TappableImage) CreateRenderer

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

func (*TappableImage) Cursor

func (t *TappableImage) Cursor() desktop.Cursor

func (*TappableImage) Hide

func (t *TappableImage) Hide()

func (*TappableImage) MinSize added in v0.5.0

func (t *TappableImage) MinSize() fyne.Size

func (*TappableImage) Move

func (t *TappableImage) Move(pos fyne.Position)

func (*TappableImage) Refresh

func (t *TappableImage) Refresh()

func (*TappableImage) Resize

func (t *TappableImage) Resize(size fyne.Size)

func (*TappableImage) Show

func (t *TappableImage) Show()

func (*TappableImage) Tapped

func (t *TappableImage) Tapped(e *fyne.PointEvent)

func (*TappableImage) TappedSecondary

func (t *TappableImage) TappedSecondary(e *fyne.PointEvent)

type TextRestrictedEntry

type TextRestrictedEntry struct {
	widget.Entry
	// contains filtered or unexported fields
}

A widget.Entry that allows restrictions on the text that can be typed into it, based on a charAllowed callback.

func NewTextRestrictedEntry

func NewTextRestrictedEntry(charAllowed CharAllowedFunc) *TextRestrictedEntry

func (*TextRestrictedEntry) MinSize

func (e *TextRestrictedEntry) MinSize() fyne.Size

func (*TextRestrictedEntry) SetMinCharWidth

func (e *TextRestrictedEntry) SetMinCharWidth(numChars int)

func (*TextRestrictedEntry) TypedRune

func (e *TextRestrictedEntry) TypedRune(r rune)

func (*TextRestrictedEntry) TypedShortcut

func (e *TextRestrictedEntry) TypedShortcut(s fyne.Shortcut)

type ToggleButtonGroup

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

Lays out multiple buttons horizontally with no padding, and uses button.Importance to highlight exactly one which is "active". Similar to a segmented control in other UI toolkits.

func NewToggleButtonGroup

func NewToggleButtonGroup(activatedBtnIdx int, buttons ...*widget.Button) *ToggleButtonGroup

func (*ToggleButtonGroup) ActivatedButtonIndex

func (t *ToggleButtonGroup) ActivatedButtonIndex() int

func (*ToggleButtonGroup) CreateRenderer

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

func (*ToggleButtonGroup) SetActivatedButton

func (t *ToggleButtonGroup) SetActivatedButton(idx int)

type ToggleText

type ToggleText struct {
	widget.BaseWidget

	OnChanged func(int)
	// contains filtered or unexported fields
}

Similar to widgets.ToggleButtonGroup, but using text. The "active" label is bolded non-interactive text, while all the others are hyperlinks.

func NewToggleText

func NewToggleText(activeLblIdx int, labels []string) *ToggleText

func (*ToggleText) CreateRenderer

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

func (*ToggleText) SetActivatedLabel

func (t *ToggleText) SetActivatedLabel(idx int)

type TrackPosSlider

type TrackPosSlider struct {
	widget.Slider

	// to avoid "data echoes" when slider value is updated as
	// playback position changes
	IgnoreNextChangeEnded bool
	// contains filtered or unexported fields
}

TrackPosSlider is a custom slider that exposes an additional IsDragging() API as well as some other customizations

func NewTrackPosSlider

func NewTrackPosSlider() *TrackPosSlider

func (*TrackPosSlider) DragEnd

func (t *TrackPosSlider) DragEnd()

func (*TrackPosSlider) Dragged

func (t *TrackPosSlider) Dragged(e *fyne.DragEvent)

func (*TrackPosSlider) IsDragging

func (t *TrackPosSlider) IsDragging() bool

func (*TrackPosSlider) SetValue added in v0.7.0

func (t *TrackPosSlider) SetValue(value float64)

func (*TrackPosSlider) Tapped

func (t *TrackPosSlider) Tapped(e *fyne.PointEvent)

func (*TrackPosSlider) TypedKey added in v0.7.0

func (t *TrackPosSlider) TypedKey(e *fyne.KeyEvent)

override to increase the distance moved by keyboard control

type Tracklist

type Tracklist struct {
	widget.BaseWidget

	Options TracklistOptions

	// user action callbacks
	OnPlayTrackAt       func(int)
	OnPlaySelection     func(tracks []*mediaprovider.Track, shuffle bool)
	OnPlaySelectionNext func(trackIDs []*mediaprovider.Track)
	OnAddToQueue        func(trackIDs []*mediaprovider.Track)
	OnAddToPlaylist     func(trackIDs []string)
	OnSetFavorite       func(trackIDs []string, fav bool)
	OnSetRating         func(trackIDs []string, rating int)
	OnDownload          func(tracks []*mediaprovider.Track, downloadName string)
	OnShare             func(trackID string)
	OnPlaySongRadio     func(track *mediaprovider.Track)
	OnReorderTracks     func(trackIDs []string, insertPos int)
	OnShowTrackInfo     func(track *mediaprovider.Track)

	OnShowArtistPage func(artistID string)
	OnShowAlbumPage  func(albumID string)

	OnColumnVisibilityMenuShown func(*widget.PopUp)
	OnVisibleColumnsChanged     func([]string)
	OnTrackShown                func(tracknum int)
	// contains filtered or unexported fields
}

func NewTracklist

func NewTracklist(tracks []*mediaprovider.Track, im *backend.ImageManager, useCompactRows bool) *Tracklist

func (*Tracklist) AppendTracks

func (t *Tracklist) AppendTracks(trs []*mediaprovider.Track)

Append more tracks to the tracklist. Does not issue Refresh call. Thread-safe.

func (*Tracklist) Clear

func (t *Tracklist) Clear()

Remove all tracks from the tracklist. Does not issue Refresh call. Thread-safe.

func (*Tracklist) ColNumber added in v0.11.0

func (t *Tracklist) ColNumber(colName string) int

func (*Tracklist) CreateRenderer

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

func (*Tracklist) GetTracks

func (t *Tracklist) GetTracks() []*mediaprovider.Track

Returns the tracks in the tracklist in the current display order.

func (*Tracklist) IncrementPlayCount

func (t *Tracklist) IncrementPlayCount(trackID string)

Increments the play count of the given track and updates the list rendering

func (*Tracklist) Refresh

func (t *Tracklist) Refresh()

func (*Tracklist) Reset added in v0.5.0

func (t *Tracklist) Reset()

func (*Tracklist) Scroll added in v0.9.1

func (t *Tracklist) Scroll(amount float32)

func (*Tracklist) SelectAll

func (t *Tracklist) SelectAll()

func (*Tracklist) SelectAndScrollToTrack

func (t *Tracklist) SelectAndScrollToTrack(trackID string)

func (*Tracklist) SelectedTrackIDs

func (t *Tracklist) SelectedTrackIDs() []string

func (*Tracklist) SetNowPlaying

func (t *Tracklist) SetNowPlaying(trackID string)

Sets the currently playing track ID and updates the list rendering

func (*Tracklist) SetSorting

func (t *Tracklist) SetSorting(sorting TracklistSort)

func (*Tracklist) SetTracks

func (t *Tracklist) SetTracks(trs []*mediaprovider.Track)

Sets the tracks in the tracklist. Thread-safe.

func (*Tracklist) SetVisibleColumns

func (t *Tracklist) SetVisibleColumns(cols []string)

func (*Tracklist) Sorting

func (t *Tracklist) Sorting() TracklistSort

func (*Tracklist) Tapped added in v0.3.1

func (t *Tracklist) Tapped(*fyne.PointEvent)

do nothing Tapped handler so that tapping the separator between rows doesn't fall through to the page (which calls UnselectAll on tracklist)

func (*Tracklist) TrackAt

func (t *Tracklist) TrackAt(idx int) *mediaprovider.Track

Gets the track at the given index. Thread-safe.

func (*Tracklist) UnselectAll

func (t *Tracklist) UnselectAll()

func (*Tracklist) VisibleColumns

func (t *Tracklist) VisibleColumns() []string

type TracklistColumn added in v0.11.0

type TracklistColumn struct {
	Name string
	Col  ListColumn
}

type TracklistLoader

type TracklistLoader struct {
	// contains filtered or unexported fields
}

Component that manages lazily loading more tracks into a Tracklist as the user scrolls near the bottom.

func NewTracklistLoader

func NewTracklistLoader(tracklist *Tracklist, iter mediaprovider.TrackIterator) TracklistLoader

func (*TracklistLoader) Dispose added in v0.5.0

func (t *TracklistLoader) Dispose()

Cancels all asynchronous loads so that they will no longer modify the tracklist.

type TracklistOptions added in v0.5.0

type TracklistOptions struct {
	// AutoNumber sets whether to auto-number the tracks 1..N in display order,
	// or to use the number from the track's metadata
	AutoNumber bool

	// Reorderable sets whether the tracklist supports drag-and-drop reordering.
	Reorderable bool

	// ShowDiscNumber sets whether to display the disc number as part of the '#' column,
	// (with format %d.%02d). Only applies if AutoNumber==false.
	ShowDiscNumber bool

	// AuxiliaryMenuItems sets additional menu items appended to the context menu
	// must be set before the context menu is shown for the first time
	AuxiliaryMenuItems []*fyne.MenuItem

	// DisablePlaybackMenu sets whether to disable playback options in
	// the tracklist context menu.
	DisablePlaybackMenu bool

	// Disables sorting the tracklist by clicking individual columns.
	DisableSorting bool

	// Disables the five star rating widget.
	DisableRating bool

	// Disables the sharing option.
	DisableSharing bool
}

type TracklistRow added in v0.11.0

type TracklistRow interface {
	fyne.CanvasObject
	FocusListRow

	SetOnTappedSecondary(func(_ *fyne.PointEvent, trackNum int))

	TrackID() string
	Update(model *util.TrackListModel, rowNum int)
}

type TracklistSort

type TracklistSort struct {
	SortOrder  SortType
	ColumnName string
}

type VolumeControl

type VolumeControl struct {
	widget.BaseWidget

	OnSetVolume func(int)
	// contains filtered or unexported fields
}

func NewVolumeControl

func NewVolumeControl(initialVol int) *VolumeControl

func (*VolumeControl) CreateRenderer

func (v *VolumeControl) CreateRenderer() fyne.WidgetRenderer

func (*VolumeControl) SetVolume

func (v *VolumeControl) SetVolume(vol int)

Sets the volume that is displayed in the slider. Does not invoke OnSetVolume callback.

Jump to

Keyboard shortcuts

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