listselect

package
v0.6.4 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package listselect owns one concern: the multi-selection mode a record list enters when its host is about to act on several rows at once. It is a lego piece — targetlist and targetdate assemble it, they do not re-declare it.

Sibling of listgap, and for the same reason: two lists that must stay visually and behaviourally interchangeable (crudview swaps one for the other) cannot each own a private copy of the rule.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Apply

func Apply(s *style.Sheet, check widget.Part) *style.Sheet

Apply adds the check part's skin to s and returns s for chaining. Both target* lists call this instead of hand-writing the block, so the check cannot drift between them.

Types

type Mode

type Mode struct {

	// OnChange fires after every toggle with the current count, so a host can
	// label its commit button ("🗑 3") and disable it at zero.
	OnChange func(n int)
	// contains filtered or unexported fields
}

Mode is the selection state of one list. The zero value is a usable list in normal mode — a list is a list until its host says otherwise.

func (*Mode) CheckedIDs

func (m *Mode) CheckedIDs(ids []string) []string

CheckedIDs returns the marked ids in the order given by ids, which the caller passes as its current render order.

Ordering is NOT optional and NOT the caller's problem to remember: checked accumulates in TAP order, and a host building a confirmation message from tap order would list rows in an order that matches nothing on screen. Taking the render order as a parameter is what makes the wrong version unwritable — there is no accessor that returns the raw slice.

func (*Mode) IsChecked

func (m *Mode) IsChecked(id string) bool

IsChecked answers for one id — what a row binds its check state to.

func (*Mode) On

func (m *Mode) On() *SignalBool

On reports the signal a component binds its root state to, so the stylesheet can reveal the checks. Never a bool: the skin has to react.

func (*Mode) SetOn

func (m *Mode) SetOn(on bool)

SetOn enters or leaves selection mode. Leaving ALWAYS clears the marks: a mode the user cancelled must not leave a hidden selection behind for the next entry to inherit silently.

func (*Mode) Toggle

func (m *Mode) Toggle(id string)

Toggle marks or unmarks one id and fires OnChange.

Jump to

Keyboard shortcuts

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