89 lines
5.3 KiB
Go
89 lines
5.3 KiB
Go
// Copyright (c) 2026 Storm Dragon
|
|
// Authors: Storm Dragon, Angus Kola
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
package input
|
|
|
|
const (
|
|
DocumentListBlockQuotes Command = "document-list-block-quotes"
|
|
DocumentListButtons Command = "document-list-buttons"
|
|
DocumentListCheckBoxes Command = "document-list-check-boxes"
|
|
DocumentListComboBoxes Command = "document-list-combo-boxes"
|
|
DocumentListEntries Command = "document-list-entries"
|
|
DocumentListFormFields Command = "document-list-form-fields"
|
|
DocumentListHeadings Command = "document-list-headings"
|
|
DocumentListImages Command = "document-list-images"
|
|
DocumentListLandmarks Command = "document-list-landmarks"
|
|
DocumentListLists Command = "document-list-lists"
|
|
DocumentListListItems Command = "document-list-list-items"
|
|
DocumentListParagraphs Command = "document-list-paragraphs"
|
|
DocumentListRadioButtons Command = "document-list-radio-buttons"
|
|
DocumentListTables Command = "document-list-tables"
|
|
DocumentListLinks Command = "document-list-links"
|
|
DocumentListUnvisitedLinks Command = "document-list-unvisited-links"
|
|
DocumentListVisitedLinks Command = "document-list-visited-links"
|
|
DocumentListLargeObjects Command = "document-list-large-objects"
|
|
DocumentListClickables Command = "document-list-clickables"
|
|
DocumentListHeadingsAtLevel1 Command = "document-list-headings-at-level-1"
|
|
DocumentListHeadingsAtLevel2 Command = "document-list-headings-at-level-2"
|
|
DocumentListHeadingsAtLevel3 Command = "document-list-headings-at-level-3"
|
|
DocumentListHeadingsAtLevel4 Command = "document-list-headings-at-level-4"
|
|
DocumentListHeadingsAtLevel5 Command = "document-list-headings-at-level-5"
|
|
DocumentListHeadingsAtLevel6 Command = "document-list-headings-at-level-6"
|
|
DocumentListAnnotations Command = "document-list-annotations"
|
|
DocumentListInternalFrames Command = "document-list-internal-frames"
|
|
DocumentListMath Command = "document-list-math"
|
|
)
|
|
|
|
// DocumentListBinding describes browser lists independently of presentation.
|
|
// Unbound commands remain available in the shortcut editor, as in Orca.
|
|
type DocumentListBinding struct {
|
|
Command Command
|
|
Symbol uint32
|
|
Title string
|
|
Next Command
|
|
Level int
|
|
}
|
|
|
|
func DocumentListBindings() []DocumentListBinding {
|
|
return []DocumentListBinding{
|
|
{Command: DocumentListBlockQuotes, Symbol: 'q', Title: "Block quotes", Next: DocumentNextBlockQuote},
|
|
{Command: DocumentListButtons, Symbol: 'b', Title: "Buttons", Next: DocumentNextButton},
|
|
{Command: DocumentListCheckBoxes, Symbol: 'x', Title: "Check boxes", Next: DocumentNextCheckBox},
|
|
{Command: DocumentListComboBoxes, Symbol: 'c', Title: "Combo boxes", Next: DocumentNextComboBox},
|
|
{Command: DocumentListEntries, Symbol: 'e', Title: "Text entries", Next: DocumentNextEntry},
|
|
{Command: DocumentListFormFields, Symbol: 'f', Title: "Form fields", Next: DocumentNextFormField},
|
|
{Command: DocumentListHeadings, Symbol: 'h', Title: "Headings", Next: DocumentNextHeading},
|
|
{Command: DocumentListImages, Symbol: 'g', Title: "Images", Next: DocumentNextImage},
|
|
{Command: DocumentListLandmarks, Symbol: 'm', Title: "Landmarks", Next: DocumentNextLandmark},
|
|
{Command: DocumentListLists, Symbol: 'l', Title: "Lists", Next: DocumentNextList},
|
|
{Command: DocumentListListItems, Symbol: 'i', Title: "List items", Next: DocumentNextListItem},
|
|
{Command: DocumentListParagraphs, Symbol: 'p', Title: "Paragraphs", Next: DocumentNextParagraph},
|
|
{Command: DocumentListRadioButtons, Symbol: 'r', Title: "Radio buttons", Next: DocumentNextRadioButton},
|
|
{Command: DocumentListTables, Symbol: 't', Title: "Tables", Next: DocumentNextTable},
|
|
{Command: DocumentListLinks, Symbol: 'k', Title: "Links", Next: DocumentNextLink},
|
|
{Command: DocumentListUnvisitedLinks, Symbol: 'u', Title: "Unvisited links", Next: DocumentNextUnvisitedLink},
|
|
{Command: DocumentListVisitedLinks, Symbol: 'v', Title: "Visited links", Next: DocumentNextVisitedLink},
|
|
{Command: DocumentListLargeObjects, Symbol: 'o', Title: "Large objects", Next: DocumentNextChunk},
|
|
{Command: DocumentListClickables, Symbol: 'a', Title: "Clickables", Next: DocumentNextClickable},
|
|
{Command: DocumentListHeadingsAtLevel1, Symbol: '1', Title: "Headings at level 1", Next: DocumentNextHeading, Level: 1},
|
|
{Command: DocumentListHeadingsAtLevel2, Symbol: '2', Title: "Headings at level 2", Next: DocumentNextHeading, Level: 2},
|
|
{Command: DocumentListHeadingsAtLevel3, Symbol: '3', Title: "Headings at level 3", Next: DocumentNextHeading, Level: 3},
|
|
{Command: DocumentListHeadingsAtLevel4, Symbol: '4', Title: "Headings at level 4", Next: DocumentNextHeading, Level: 4},
|
|
{Command: DocumentListHeadingsAtLevel5, Symbol: '5', Title: "Headings at level 5", Next: DocumentNextHeading, Level: 5},
|
|
{Command: DocumentListHeadingsAtLevel6, Symbol: '6', Title: "Headings at level 6", Next: DocumentNextHeading, Level: 6},
|
|
{Command: DocumentListAnnotations, Title: "Annotations"},
|
|
{Command: DocumentListInternalFrames, Title: "Internal frames"},
|
|
{Command: DocumentListMath, Title: "Math"},
|
|
}
|
|
}
|
|
|
|
func LookupDocumentList(command Command) (DocumentListBinding, bool) {
|
|
for _, binding := range DocumentListBindings() {
|
|
if binding.Command == command {
|
|
return binding, true
|
|
}
|
|
}
|
|
return DocumentListBinding{}, false
|
|
}
|