MCPcopy Create free account
hub / github.com/cogentcore/core / keyInputReadOnly

Method keyInputReadOnly

core/list.go:1668–1713  ·  view source on GitHub ↗
(kt events.Event)

Source from the content-addressed store, hash-verified

1666}
1667
1668func (lb *ListBase) keyInputReadOnly(kt events.Event) {
1669 if lb.ReadOnlyMultiSelect {
1670 lb.keyInputNav(kt)
1671 if kt.IsHandled() {
1672 return
1673 }
1674 }
1675 selMode := kt.SelectMode()
1676 if lb.SelectMode {
1677 selMode = events.ExtendOne
1678 }
1679 kf := keymap.Of(kt.KeyChord())
1680 if DebugSettings.KeyEventTrace {
1681 slog.Info("ListBase ReadOnly KeyInput", "widget", lb, "keyFunction", kf)
1682 }
1683 idx := lb.SelectedIndex
1684 switch {
1685 case kf == keymap.MoveDown:
1686 ni := idx + 1
1687 if ni < lb.SliceSize {
1688 lb.ScrollToIndex(ni)
1689 lb.updateSelectIndex(ni, true, selMode)
1690 kt.SetHandled()
1691 }
1692 case kf == keymap.MoveUp:
1693 ni := idx - 1
1694 if ni >= 0 {
1695 lb.ScrollToIndex(ni)
1696 lb.updateSelectIndex(ni, true, selMode)
1697 kt.SetHandled()
1698 }
1699 case kf == keymap.PageDown:
1700 ni := min(idx+lb.VisibleRows-1, lb.SliceSize-1)
1701 lb.ScrollToIndex(ni)
1702 lb.updateSelectIndex(ni, true, selMode)
1703 kt.SetHandled()
1704 case kf == keymap.PageUp:
1705 ni := max(idx-(lb.VisibleRows-1), 0)
1706 lb.ScrollToIndex(ni)
1707 lb.updateSelectIndex(ni, true, selMode)
1708 kt.SetHandled()
1709 case kf == keymap.Enter || kf == keymap.Accept || kt.KeyRune() == ' ':
1710 lb.Send(events.DoubleClick, kt)
1711 kt.SetHandled()
1712 }
1713}
1714
1715func (lb *ListBase) SizeFinal() {
1716 sg := lb.ListGrid

Callers 1

InitMethod · 0.95

Calls 10

keyInputNavMethod · 0.95
ScrollToIndexMethod · 0.95
updateSelectIndexMethod · 0.95
OfFunction · 0.92
IsHandledMethod · 0.65
SelectModeMethod · 0.65
KeyChordMethod · 0.65
SetHandledMethod · 0.65
KeyRuneMethod · 0.65
SendMethod · 0.45

Tested by

no test coverage detected