Fyne API "widget.Tree"

widget.Tree


import "fyne.io/fyne/v2/widget"

Usage

type Tree

type Tree struct {
	BaseWidget
	Root TreeNodeID

	// HideSeparators hides the separators between tree nodes
	//
	// Since: 2.5
	HideSeparators bool

	ChildUIDs      func(uid TreeNodeID) (c []TreeNodeID)                     `json:"-"` // Return a sorted slice of Children TreeNodeIDs for the given Node TreeNodeID
	CreateNode     func(branch bool) (o fyne.CanvasObject)                   `json:"-"` // Return a CanvasObject that can represent a Branch (if branch is true), or a Leaf (if branch is false)
	IsBranch       func(uid TreeNodeID) (ok bool)                            `json:"-"` // Return true if the given TreeNodeID represents a Branch
	OnBranchClosed func(uid TreeNodeID)                                      `json:"-"` // Called when a Branch is closed
	OnBranchOpened func(uid TreeNodeID)                                      `json:"-"` // Called when a Branch is opened
	OnSelected     func(uid TreeNodeID)                                      `json:"-"` // Called when the Node with the given TreeNodeID is selected.
	OnUnselected   func(uid TreeNodeID)                                      `json:"-"` // Called when the Node with the given TreeNodeID is unselected.
	UpdateNode     func(uid TreeNodeID, branch bool, node fyne.CanvasObject) `json:"-"` // Called to update the given CanvasObject to represent the data at the given TreeNodeID
}

Tree widget displays hierarchical data. Each node of the tree must be identified by a Unique TreeNodeID.

Since: 1.4

func NewTree

func NewTree(childUIDs func(TreeNodeID) []TreeNodeID, isBranch func(TreeNodeID) bool, create func(bool) fyne.CanvasObject, update func(TreeNodeID, bool, fyne.CanvasObject)) *Tree

NewTree returns a new performant tree widget defined by the passed functions. childUIDs returns the child TreeNodeIDs of the given node. isBranch returns true if the given node is a branch, false if it is a leaf. create returns a new template object that can be cached. update is used to apply data at specified data location to the passed template CanvasObject.

Since: 1.4

func NewTreeWithData

func NewTreeWithData(data binding.DataTree, createItem func(bool) fyne.CanvasObject, updateItem func(binding.DataItem, bool, fyne.CanvasObject)) *Tree

NewTreeWithData creates a new tree widget that will display the contents of the provided data.

Since: 2.4

func NewTreeWithStrings

func NewTreeWithStrings(data map[string][]string) (t *Tree)

NewTreeWithStrings creates a new tree with the given string map. Data must contain a mapping for the root, which defaults to empty string (“”).

Since: 1.4

func (*Tree) CloseAllBranches

func (t *Tree) CloseAllBranches()

CloseAllBranches closes all branches in the tree.

func (*Tree) CloseBranch

func (t *Tree) CloseBranch(uid TreeNodeID)

CloseBranch closes the branch with the given TreeNodeID.

func (*Tree) CreateRenderer

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

CreateRenderer is a private method to Fyne which links this widget to its renderer.

func (*Tree) FocusGained

func (t *Tree) FocusGained()

FocusGained is called after this Tree has gained focus.

Implements: fyne.Focusable

func (*Tree) FocusLost

func (t *Tree) FocusLost()

FocusLost is called after this Tree has lost focus.

Implements: fyne.Focusable

func (*Tree) IsBranchOpen

func (t *Tree) IsBranchOpen(uid TreeNodeID) bool

IsBranchOpen returns true if the branch with the given TreeNodeID is expanded.

func (*Tree) MinSize

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

MinSize returns the size that this widget should not shrink below.

func (*Tree) OpenAllBranches

func (t *Tree) OpenAllBranches()

OpenAllBranches opens all branches in the tree.

func (*Tree) OpenBranch

func (t *Tree) OpenBranch(uid TreeNodeID)

OpenBranch opens the branch with the given TreeNodeID.

func (*Tree) RefreshItem

func (t *Tree) RefreshItem(id TreeNodeID)

RefreshItem refreshes a single item, specified by the item ID passed in.

Since: 2.4

func (*Tree) Resize

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

Resize sets a new size for a widget.

func (*Tree) ScrollTo

func (t *Tree) ScrollTo(uid TreeNodeID)

ScrollTo scrolls to the node with the given id.

Since 2.1

func (*Tree) ScrollToBottom

func (t *Tree) ScrollToBottom()

ScrollToBottom scrolls to the bottom of the tree.

Since 2.1

func (*Tree) ScrollToTop

func (t *Tree) ScrollToTop()

ScrollToTop scrolls to the top of the tree.

Since 2.1

func (*Tree) Select

func (t *Tree) Select(uid TreeNodeID)

Select marks the specified node to be selected.

func (*Tree) ToggleBranch

func (t *Tree) ToggleBranch(uid string)

ToggleBranch flips the state of the branch with the given TreeNodeID.

func (*Tree) TypedKey

func (t *Tree) TypedKey(event *fyne.KeyEvent)

TypedKey is called if a key event happens while this Tree is focused.

Implements: fyne.Focusable

func (*Tree) TypedRune

func (t *Tree) TypedRune(_ rune)

TypedRune is called if a text event happens while this Tree is focused.

Implements: fyne.Focusable

func (*Tree) Unselect

func (t *Tree) Unselect(uid TreeNodeID)

Unselect marks the specified node to be not selected.

func (*Tree) UnselectAll

func (t *Tree) UnselectAll()

UnselectAll sets all nodes to be not selected.

Since: 2.1