widgets

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: 29 Imported by: 0

Documentation

Index

Constants

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

Variables

This section is empty.

Functions

func ColNumber

func ColNumber(colName string) int

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 NewLabelMinSize

func NewLabelMinSize(text string, minWidth float32) *labelMinSize

func NewVolumeSlider

func NewVolumeSlider(width float32) *volumeSlider

Types

type AlbumFilterButton

type AlbumFilterButton struct {
	widget.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) 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 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 {
	widget.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) ClearItemForIDMap added in v0.9.1

func (g *FocusList) ClearItemForIDMap()

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)

func (*FocusList) SetItemForID added in v0.9.1

func (g *FocusList) SetItemForID(id widget.ListItemID, item FocusListRow)

MUST be called *before* updating the ListItemID field to the new ItemID this row will be bound to.

type FocusListRow added in v0.9.1

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

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) Refresh added in v0.9.1

func (l *FocusListRowBase) Refresh()

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

	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

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

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 ImagePlaceholder

type ImagePlaceholder struct {
	ScaleMode  canvas.ImageScale
	CenterIcon 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()
	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) 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

func (n *LargeNowPlayingCard) Update(track *mediaprovider.Track)

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) SetLyrics added in v0.10.0

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

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
	OnTapped func(string)
	// 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()
	// 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) Update

func (n *NowPlayingCard) Update(track string, artists, artistIDs []string, album string, cover image.Image)

type PlayQueueList added in v0.10.0

type PlayQueueList struct {
	widget.BaseWidget

	DisableRating  bool
	DisableSharing bool

	// user action callbacks
	OnAddToPlaylist   func(trackIDs []string)
	OnSetFavorite     func(trackIDs []string, fav bool)
	OnSetRating       func(trackIDs []string, rating int)
	OnRemoveFromQueue func(trackIDs []string)
	OnDownload        func(tracks []*mediaprovider.Track, downloadName string)
	OnShare           func(tracks []*mediaprovider.Track)
	OnShowArtistPage  func(artistID string)
	OnPlayTrackAt     func(idx int)
	OnReorderTracks   func(trackIDs []string, op sharedutil.TrackReorderOp)
	// contains filtered or unexported fields
}

func NewPlayQueueList added in v0.10.0

func NewPlayQueueList(im *backend.ImageManager) *PlayQueueList

func (*PlayQueueList) CreateRenderer added in v0.10.0

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

func (*PlayQueueList) SelectAll added in v0.10.0

func (p *PlayQueueList) SelectAll()

func (*PlayQueueList) SetNowPlaying added in v0.10.0

func (p *PlayQueueList) SetNowPlaying(trackID string)

Sets the currently playing track 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 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 TrackRow

type TrackRow struct {
	FocusListRowBase

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

func NewTrackRow

func NewTrackRow(tracklist *Tracklist, playingIcon fyne.CanvasObject) *TrackRow

func (*TrackRow) TappedSecondary

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

func (*TrackRow) Update

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

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)

	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) *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) 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 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

	// 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 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