Files

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
}