keyInputNav supports multiple selection navigation keys
(kt events.Event)
| 1582 | |
| 1583 | // keyInputNav supports multiple selection navigation keys |
| 1584 | func (lb *ListBase) keyInputNav(kt events.Event) { |
| 1585 | kf := keymap.Of(kt.KeyChord()) |
| 1586 | selMode := events.SelectModeBits(kt.Modifiers()) |
| 1587 | if selMode == events.SelectOne { |
| 1588 | if lb.SelectMode { |
| 1589 | selMode = events.ExtendContinuous |
| 1590 | } |
| 1591 | } |
| 1592 | switch kf { |
| 1593 | case keymap.CancelSelect: |
| 1594 | lb.unselectAllIndexes() |
| 1595 | lb.SelectMode = false |
| 1596 | kt.SetHandled() |
| 1597 | case keymap.MoveDown: |
| 1598 | lb.moveDownEvent(selMode) |
| 1599 | kt.SetHandled() |
| 1600 | case keymap.MoveUp: |
| 1601 | lb.moveUpEvent(selMode) |
| 1602 | kt.SetHandled() |
| 1603 | case keymap.PageDown: |
| 1604 | lb.movePageDownEvent(selMode) |
| 1605 | kt.SetHandled() |
| 1606 | case keymap.PageUp: |
| 1607 | lb.movePageUpEvent(selMode) |
| 1608 | kt.SetHandled() |
| 1609 | case keymap.SelectMode: |
| 1610 | lb.SelectMode = !lb.SelectMode |
| 1611 | kt.SetHandled() |
| 1612 | case keymap.SelectAll: |
| 1613 | lb.selectAllIndexes() |
| 1614 | lb.SelectMode = false |
| 1615 | kt.SetHandled() |
| 1616 | } |
| 1617 | } |
| 1618 | |
| 1619 | func (lb *ListBase) keyInputEditable(kt events.Event) { |
| 1620 | lb.keyInputNav(kt) |
no test coverage detected