// 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 }