123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352 |
- /**
- * Copyright 2023 The AccessKit Authors. All rights reserved.
- * Licensed under the Apache License, Version 2.0 (found in
- * the LICENSE-APACHE file) or the MIT license (found in
- * the LICENSE-MIT file), at your option.
- */
- #ifndef ACCESSKIT_H
- #define ACCESSKIT_H
- #include <stdarg.h>
- #include <stdbool.h>
- #include <stddef.h>
- #include <stdint.h>
- #include <stdlib.h>
- #ifdef _WIN32
- #include <windows.h>
- #endif
- /**
- * An action to be taken on an accessibility node.
- */
- enum accesskit_action
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- /**
- * Do the equivalent of a single click or tap.
- */
- ACCESSKIT_ACTION_CLICK,
- ACCESSKIT_ACTION_FOCUS,
- ACCESSKIT_ACTION_BLUR,
- ACCESSKIT_ACTION_COLLAPSE,
- ACCESSKIT_ACTION_EXPAND,
- /**
- * Requires [`ActionRequest::data`] to be set to [`ActionData::CustomAction`].
- */
- ACCESSKIT_ACTION_CUSTOM_ACTION,
- /**
- * Decrement a numeric value by one step.
- */
- ACCESSKIT_ACTION_DECREMENT,
- /**
- * Increment a numeric value by one step.
- */
- ACCESSKIT_ACTION_INCREMENT,
- ACCESSKIT_ACTION_HIDE_TOOLTIP,
- ACCESSKIT_ACTION_SHOW_TOOLTIP,
- /**
- * Delete any selected text in the control's text value and
- * insert the specified value in its place, like when typing or pasting.
- * Requires [`ActionRequest::data`] to be set to [`ActionData::Value`].
- */
- ACCESSKIT_ACTION_REPLACE_SELECTED_TEXT,
- ACCESSKIT_ACTION_SCROLL_BACKWARD,
- ACCESSKIT_ACTION_SCROLL_DOWN,
- ACCESSKIT_ACTION_SCROLL_FORWARD,
- ACCESSKIT_ACTION_SCROLL_LEFT,
- ACCESSKIT_ACTION_SCROLL_RIGHT,
- ACCESSKIT_ACTION_SCROLL_UP,
- /**
- * Scroll any scrollable containers to make the target object visible
- * on the screen. Optionally set [`ActionRequest::data`] to
- * [`ActionData::ScrollTargetRect`].
- */
- ACCESSKIT_ACTION_SCROLL_INTO_VIEW,
- /**
- * Scroll the given object to a specified point in the tree's container
- * (e.g. window). Requires [`ActionRequest::data`] to be set to
- * [`ActionData::ScrollToPoint`].
- */
- ACCESSKIT_ACTION_SCROLL_TO_POINT,
- /**
- * Requires [`ActionRequest::data`] to be set to
- * [`ActionData::SetScrollOffset`].
- */
- ACCESSKIT_ACTION_SET_SCROLL_OFFSET,
- /**
- * Requires [`ActionRequest::data`] to be set to
- * [`ActionData::SetTextSelection`].
- */
- ACCESSKIT_ACTION_SET_TEXT_SELECTION,
- /**
- * Don't focus this node, but set it as the sequential focus navigation
- * starting point, so that pressing Tab moves to the next element
- * following this one, for example.
- */
- ACCESSKIT_ACTION_SET_SEQUENTIAL_FOCUS_NAVIGATION_STARTING_POINT,
- /**
- * Replace the value of the control with the specified value and
- * reset the selection, if applicable. Requires [`ActionRequest::data`]
- * to be set to [`ActionData::Value`] or [`ActionData::NumericValue`].
- */
- ACCESSKIT_ACTION_SET_VALUE,
- ACCESSKIT_ACTION_SHOW_CONTEXT_MENU,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_action;
- #endif // __cplusplus
- enum accesskit_aria_current
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- ACCESSKIT_ARIA_CURRENT_FALSE,
- ACCESSKIT_ARIA_CURRENT_TRUE,
- ACCESSKIT_ARIA_CURRENT_PAGE,
- ACCESSKIT_ARIA_CURRENT_STEP,
- ACCESSKIT_ARIA_CURRENT_LOCATION,
- ACCESSKIT_ARIA_CURRENT_DATE,
- ACCESSKIT_ARIA_CURRENT_TIME,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_aria_current;
- #endif // __cplusplus
- enum accesskit_auto_complete
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- ACCESSKIT_AUTO_COMPLETE_INLINE,
- ACCESSKIT_AUTO_COMPLETE_LIST,
- ACCESSKIT_AUTO_COMPLETE_BOTH,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_auto_complete;
- #endif // __cplusplus
- enum accesskit_has_popup
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- ACCESSKIT_HAS_POPUP_TRUE,
- ACCESSKIT_HAS_POPUP_MENU,
- ACCESSKIT_HAS_POPUP_LISTBOX,
- ACCESSKIT_HAS_POPUP_TREE,
- ACCESSKIT_HAS_POPUP_GRID,
- ACCESSKIT_HAS_POPUP_DIALOG,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_has_popup;
- #endif // __cplusplus
- /**
- * Indicates if a form control has invalid input or if a web DOM element has an
- * [`aria-invalid`] attribute.
- *
- * [`aria-invalid`]: https://www.w3.org/TR/wai-aria-1.1/#aria-invalid
- */
- enum accesskit_invalid
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- ACCESSKIT_INVALID_TRUE,
- ACCESSKIT_INVALID_GRAMMAR,
- ACCESSKIT_INVALID_SPELLING,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_invalid;
- #endif // __cplusplus
- enum accesskit_list_style
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- ACCESSKIT_LIST_STYLE_CIRCLE,
- ACCESSKIT_LIST_STYLE_DISC,
- ACCESSKIT_LIST_STYLE_IMAGE,
- ACCESSKIT_LIST_STYLE_NUMERIC,
- ACCESSKIT_LIST_STYLE_SQUARE,
- /**
- * Language specific ordering (alpha, roman, cjk-ideographic, etc...)
- */
- ACCESSKIT_LIST_STYLE_OTHER,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_list_style;
- #endif // __cplusplus
- enum accesskit_live
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- ACCESSKIT_LIVE_OFF,
- ACCESSKIT_LIVE_POLITE,
- ACCESSKIT_LIVE_ASSERTIVE,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_live;
- #endif // __cplusplus
- enum accesskit_orientation
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- /**
- * E.g. most toolbars and separators.
- */
- ACCESSKIT_ORIENTATION_HORIZONTAL,
- /**
- * E.g. menu or combo box.
- */
- ACCESSKIT_ORIENTATION_VERTICAL,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_orientation;
- #endif // __cplusplus
- /**
- * The type of an accessibility node.
- *
- * The majority of these roles come from the ARIA specification. Reference
- * the latest draft for proper usage.
- *
- * Like the AccessKit schema as a whole, this list is largely taken
- * from Chromium. However, unlike Chromium's alphabetized list, this list
- * is ordered roughly by expected usage frequency (with the notable exception
- * of [`Role::Unknown`]). This is more efficient in serialization formats
- * where integers use a variable-length encoding.
- */
- enum accesskit_role
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- ACCESSKIT_ROLE_UNKNOWN,
- ACCESSKIT_ROLE_TEXT_RUN,
- ACCESSKIT_ROLE_CELL,
- ACCESSKIT_ROLE_LABEL,
- ACCESSKIT_ROLE_IMAGE,
- ACCESSKIT_ROLE_LINK,
- ACCESSKIT_ROLE_ROW,
- ACCESSKIT_ROLE_LIST_ITEM,
- /**
- * Contains the bullet, number, or other marker for a list item.
- */
- ACCESSKIT_ROLE_LIST_MARKER,
- ACCESSKIT_ROLE_TREE_ITEM,
- ACCESSKIT_ROLE_LIST_BOX_OPTION,
- ACCESSKIT_ROLE_MENU_ITEM,
- ACCESSKIT_ROLE_MENU_LIST_OPTION,
- ACCESSKIT_ROLE_PARAGRAPH,
- /**
- * A generic container that should be ignored by assistive technologies
- * and filtered out of platform accessibility trees. Equivalent to the ARIA
- * `none` or `presentation` role, or to an HTML `div` with no role.
- */
- ACCESSKIT_ROLE_GENERIC_CONTAINER,
- ACCESSKIT_ROLE_CHECK_BOX,
- ACCESSKIT_ROLE_RADIO_BUTTON,
- ACCESSKIT_ROLE_TEXT_INPUT,
- ACCESSKIT_ROLE_BUTTON,
- ACCESSKIT_ROLE_DEFAULT_BUTTON,
- ACCESSKIT_ROLE_PANE,
- ACCESSKIT_ROLE_ROW_HEADER,
- ACCESSKIT_ROLE_COLUMN_HEADER,
- ACCESSKIT_ROLE_ROW_GROUP,
- ACCESSKIT_ROLE_LIST,
- ACCESSKIT_ROLE_TABLE,
- ACCESSKIT_ROLE_LAYOUT_TABLE_CELL,
- ACCESSKIT_ROLE_LAYOUT_TABLE_ROW,
- ACCESSKIT_ROLE_LAYOUT_TABLE,
- ACCESSKIT_ROLE_SWITCH,
- ACCESSKIT_ROLE_MENU,
- ACCESSKIT_ROLE_MULTILINE_TEXT_INPUT,
- ACCESSKIT_ROLE_SEARCH_INPUT,
- ACCESSKIT_ROLE_DATE_INPUT,
- ACCESSKIT_ROLE_DATE_TIME_INPUT,
- ACCESSKIT_ROLE_WEEK_INPUT,
- ACCESSKIT_ROLE_MONTH_INPUT,
- ACCESSKIT_ROLE_TIME_INPUT,
- ACCESSKIT_ROLE_EMAIL_INPUT,
- ACCESSKIT_ROLE_NUMBER_INPUT,
- ACCESSKIT_ROLE_PASSWORD_INPUT,
- ACCESSKIT_ROLE_PHONE_NUMBER_INPUT,
- ACCESSKIT_ROLE_URL_INPUT,
- ACCESSKIT_ROLE_ABBR,
- ACCESSKIT_ROLE_ALERT,
- ACCESSKIT_ROLE_ALERT_DIALOG,
- ACCESSKIT_ROLE_APPLICATION,
- ACCESSKIT_ROLE_ARTICLE,
- ACCESSKIT_ROLE_AUDIO,
- ACCESSKIT_ROLE_BANNER,
- ACCESSKIT_ROLE_BLOCKQUOTE,
- ACCESSKIT_ROLE_CANVAS,
- ACCESSKIT_ROLE_CAPTION,
- ACCESSKIT_ROLE_CARET,
- ACCESSKIT_ROLE_CODE,
- ACCESSKIT_ROLE_COLOR_WELL,
- ACCESSKIT_ROLE_COMBO_BOX,
- ACCESSKIT_ROLE_EDITABLE_COMBO_BOX,
- ACCESSKIT_ROLE_COMPLEMENTARY,
- ACCESSKIT_ROLE_COMMENT,
- ACCESSKIT_ROLE_CONTENT_DELETION,
- ACCESSKIT_ROLE_CONTENT_INSERTION,
- ACCESSKIT_ROLE_CONTENT_INFO,
- ACCESSKIT_ROLE_DEFINITION,
- ACCESSKIT_ROLE_DESCRIPTION_LIST,
- ACCESSKIT_ROLE_DESCRIPTION_LIST_DETAIL,
- ACCESSKIT_ROLE_DESCRIPTION_LIST_TERM,
- ACCESSKIT_ROLE_DETAILS,
- ACCESSKIT_ROLE_DIALOG,
- ACCESSKIT_ROLE_DIRECTORY,
- ACCESSKIT_ROLE_DISCLOSURE_TRIANGLE,
- ACCESSKIT_ROLE_DOCUMENT,
- ACCESSKIT_ROLE_EMBEDDED_OBJECT,
- ACCESSKIT_ROLE_EMPHASIS,
- ACCESSKIT_ROLE_FEED,
- ACCESSKIT_ROLE_FIGURE_CAPTION,
- ACCESSKIT_ROLE_FIGURE,
- ACCESSKIT_ROLE_FOOTER,
- ACCESSKIT_ROLE_FOOTER_AS_NON_LANDMARK,
- ACCESSKIT_ROLE_FORM,
- ACCESSKIT_ROLE_GRID,
- ACCESSKIT_ROLE_GROUP,
- ACCESSKIT_ROLE_HEADER,
- ACCESSKIT_ROLE_HEADER_AS_NON_LANDMARK,
- ACCESSKIT_ROLE_HEADING,
- ACCESSKIT_ROLE_IFRAME,
- ACCESSKIT_ROLE_IFRAME_PRESENTATIONAL,
- ACCESSKIT_ROLE_IME_CANDIDATE,
- ACCESSKIT_ROLE_KEYBOARD,
- ACCESSKIT_ROLE_LEGEND,
- ACCESSKIT_ROLE_LINE_BREAK,
- ACCESSKIT_ROLE_LIST_BOX,
- ACCESSKIT_ROLE_LOG,
- ACCESSKIT_ROLE_MAIN,
- ACCESSKIT_ROLE_MARK,
- ACCESSKIT_ROLE_MARQUEE,
- ACCESSKIT_ROLE_MATH,
- ACCESSKIT_ROLE_MENU_BAR,
- ACCESSKIT_ROLE_MENU_ITEM_CHECK_BOX,
- ACCESSKIT_ROLE_MENU_ITEM_RADIO,
- ACCESSKIT_ROLE_MENU_LIST_POPUP,
- ACCESSKIT_ROLE_METER,
- ACCESSKIT_ROLE_NAVIGATION,
- ACCESSKIT_ROLE_NOTE,
- ACCESSKIT_ROLE_PLUGIN_OBJECT,
- ACCESSKIT_ROLE_PORTAL,
- ACCESSKIT_ROLE_PRE,
- ACCESSKIT_ROLE_PROGRESS_INDICATOR,
- ACCESSKIT_ROLE_RADIO_GROUP,
- ACCESSKIT_ROLE_REGION,
- ACCESSKIT_ROLE_ROOT_WEB_AREA,
- ACCESSKIT_ROLE_RUBY,
- ACCESSKIT_ROLE_RUBY_ANNOTATION,
- ACCESSKIT_ROLE_SCROLL_BAR,
- ACCESSKIT_ROLE_SCROLL_VIEW,
- ACCESSKIT_ROLE_SEARCH,
- ACCESSKIT_ROLE_SECTION,
- ACCESSKIT_ROLE_SLIDER,
- ACCESSKIT_ROLE_SPIN_BUTTON,
- ACCESSKIT_ROLE_SPLITTER,
- ACCESSKIT_ROLE_STATUS,
- ACCESSKIT_ROLE_STRONG,
- ACCESSKIT_ROLE_SUGGESTION,
- ACCESSKIT_ROLE_SVG_ROOT,
- ACCESSKIT_ROLE_TAB,
- ACCESSKIT_ROLE_TAB_LIST,
- ACCESSKIT_ROLE_TAB_PANEL,
- ACCESSKIT_ROLE_TERM,
- ACCESSKIT_ROLE_TIME,
- ACCESSKIT_ROLE_TIMER,
- ACCESSKIT_ROLE_TITLE_BAR,
- ACCESSKIT_ROLE_TOOLBAR,
- ACCESSKIT_ROLE_TOOLTIP,
- ACCESSKIT_ROLE_TREE,
- ACCESSKIT_ROLE_TREE_GRID,
- ACCESSKIT_ROLE_VIDEO,
- ACCESSKIT_ROLE_WEB_VIEW,
- ACCESSKIT_ROLE_WINDOW,
- ACCESSKIT_ROLE_PDF_ACTIONABLE_HIGHLIGHT,
- ACCESSKIT_ROLE_PDF_ROOT,
- ACCESSKIT_ROLE_GRAPHICS_DOCUMENT,
- ACCESSKIT_ROLE_GRAPHICS_OBJECT,
- ACCESSKIT_ROLE_GRAPHICS_SYMBOL,
- ACCESSKIT_ROLE_DOC_ABSTRACT,
- ACCESSKIT_ROLE_DOC_ACKNOWLEDGEMENTS,
- ACCESSKIT_ROLE_DOC_AFTERWORD,
- ACCESSKIT_ROLE_DOC_APPENDIX,
- ACCESSKIT_ROLE_DOC_BACK_LINK,
- ACCESSKIT_ROLE_DOC_BIBLIO_ENTRY,
- ACCESSKIT_ROLE_DOC_BIBLIOGRAPHY,
- ACCESSKIT_ROLE_DOC_BIBLIO_REF,
- ACCESSKIT_ROLE_DOC_CHAPTER,
- ACCESSKIT_ROLE_DOC_COLOPHON,
- ACCESSKIT_ROLE_DOC_CONCLUSION,
- ACCESSKIT_ROLE_DOC_COVER,
- ACCESSKIT_ROLE_DOC_CREDIT,
- ACCESSKIT_ROLE_DOC_CREDITS,
- ACCESSKIT_ROLE_DOC_DEDICATION,
- ACCESSKIT_ROLE_DOC_ENDNOTE,
- ACCESSKIT_ROLE_DOC_ENDNOTES,
- ACCESSKIT_ROLE_DOC_EPIGRAPH,
- ACCESSKIT_ROLE_DOC_EPILOGUE,
- ACCESSKIT_ROLE_DOC_ERRATA,
- ACCESSKIT_ROLE_DOC_EXAMPLE,
- ACCESSKIT_ROLE_DOC_FOOTNOTE,
- ACCESSKIT_ROLE_DOC_FOREWORD,
- ACCESSKIT_ROLE_DOC_GLOSSARY,
- ACCESSKIT_ROLE_DOC_GLOSS_REF,
- ACCESSKIT_ROLE_DOC_INDEX,
- ACCESSKIT_ROLE_DOC_INTRODUCTION,
- ACCESSKIT_ROLE_DOC_NOTE_REF,
- ACCESSKIT_ROLE_DOC_NOTICE,
- ACCESSKIT_ROLE_DOC_PAGE_BREAK,
- ACCESSKIT_ROLE_DOC_PAGE_FOOTER,
- ACCESSKIT_ROLE_DOC_PAGE_HEADER,
- ACCESSKIT_ROLE_DOC_PAGE_LIST,
- ACCESSKIT_ROLE_DOC_PART,
- ACCESSKIT_ROLE_DOC_PREFACE,
- ACCESSKIT_ROLE_DOC_PROLOGUE,
- ACCESSKIT_ROLE_DOC_PULLQUOTE,
- ACCESSKIT_ROLE_DOC_QNA,
- ACCESSKIT_ROLE_DOC_SUBTITLE,
- ACCESSKIT_ROLE_DOC_TIP,
- ACCESSKIT_ROLE_DOC_TOC,
- /**
- * Behaves similar to an ARIA grid but is primarily used by Chromium's
- * `TableView` and its subclasses, so they can be exposed correctly
- * on certain platforms.
- */
- ACCESSKIT_ROLE_LIST_GRID,
- /**
- * This is just like a multi-line document, but signals that assistive
- * technologies should implement behavior specific to a VT-100-style
- * terminal.
- */
- ACCESSKIT_ROLE_TERMINAL,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_role;
- #endif // __cplusplus
- enum accesskit_sort_direction
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- ACCESSKIT_SORT_DIRECTION_ASCENDING,
- ACCESSKIT_SORT_DIRECTION_DESCENDING,
- ACCESSKIT_SORT_DIRECTION_OTHER,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_sort_direction;
- #endif // __cplusplus
- enum accesskit_text_align
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- ACCESSKIT_TEXT_ALIGN_LEFT,
- ACCESSKIT_TEXT_ALIGN_RIGHT,
- ACCESSKIT_TEXT_ALIGN_CENTER,
- ACCESSKIT_TEXT_ALIGN_JUSTIFY,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_text_align;
- #endif // __cplusplus
- enum accesskit_text_decoration
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- ACCESSKIT_TEXT_DECORATION_SOLID,
- ACCESSKIT_TEXT_DECORATION_DOTTED,
- ACCESSKIT_TEXT_DECORATION_DASHED,
- ACCESSKIT_TEXT_DECORATION_DOUBLE,
- ACCESSKIT_TEXT_DECORATION_WAVY,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_text_decoration;
- #endif // __cplusplus
- enum accesskit_text_direction
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- ACCESSKIT_TEXT_DIRECTION_LEFT_TO_RIGHT,
- ACCESSKIT_TEXT_DIRECTION_RIGHT_TO_LEFT,
- ACCESSKIT_TEXT_DIRECTION_TOP_TO_BOTTOM,
- ACCESSKIT_TEXT_DIRECTION_BOTTOM_TO_TOP,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_text_direction;
- #endif // __cplusplus
- enum accesskit_toggled
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- ACCESSKIT_TOGGLED_FALSE,
- ACCESSKIT_TOGGLED_TRUE,
- ACCESSKIT_TOGGLED_MIXED,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_toggled;
- #endif // __cplusplus
- enum accesskit_vertical_offset
- #ifdef __cplusplus
- : uint8_t
- #endif // __cplusplus
- {
- ACCESSKIT_VERTICAL_OFFSET_SUBSCRIPT,
- ACCESSKIT_VERTICAL_OFFSET_SUPERSCRIPT,
- };
- #ifndef __cplusplus
- typedef uint8_t accesskit_vertical_offset;
- #endif // __cplusplus
- #if defined(__APPLE__)
- typedef struct accesskit_macos_adapter accesskit_macos_adapter;
- #endif
- #if defined(__APPLE__)
- typedef struct accesskit_macos_queued_events accesskit_macos_queued_events;
- #endif
- #if defined(__APPLE__)
- typedef struct accesskit_macos_subclassing_adapter
- accesskit_macos_subclassing_adapter;
- #endif
- typedef struct accesskit_node accesskit_node;
- typedef struct accesskit_tree accesskit_tree;
- typedef struct accesskit_tree_update accesskit_tree_update;
- #if (defined(__linux__) || defined(__DragonFly__) || defined(__FreeBSD__) || \
- defined(__NetBSD__) || defined(__OpenBSD__))
- typedef struct accesskit_unix_adapter accesskit_unix_adapter;
- #endif
- #if defined(_WIN32)
- typedef struct accesskit_windows_adapter accesskit_windows_adapter;
- #endif
- #if defined(_WIN32)
- typedef struct accesskit_windows_queued_events accesskit_windows_queued_events;
- #endif
- #if defined(_WIN32)
- typedef struct accesskit_windows_subclassing_adapter
- accesskit_windows_subclassing_adapter;
- #endif
- typedef uint64_t accesskit_node_id;
- typedef struct accesskit_node_ids {
- size_t length;
- const accesskit_node_id *values;
- } accesskit_node_ids;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_node_id {
- bool has_value;
- accesskit_node_id value;
- } accesskit_opt_node_id;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_double {
- bool has_value;
- double value;
- } accesskit_opt_double;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_index {
- bool has_value;
- size_t value;
- } accesskit_opt_index;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_color {
- bool has_value;
- uint32_t value;
- } accesskit_opt_color;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_text_decoration {
- bool has_value;
- accesskit_text_decoration value;
- } accesskit_opt_text_decoration;
- typedef struct accesskit_lengths {
- size_t length;
- const uint8_t *values;
- } accesskit_lengths;
- typedef struct accesskit_opt_coords {
- bool has_value;
- size_t length;
- const float *values;
- } accesskit_opt_coords;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_bool {
- bool has_value;
- bool value;
- } accesskit_opt_bool;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_invalid {
- bool has_value;
- accesskit_invalid value;
- } accesskit_opt_invalid;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_toggled {
- bool has_value;
- accesskit_toggled value;
- } accesskit_opt_toggled;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_live {
- bool has_value;
- accesskit_live value;
- } accesskit_opt_live;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_text_direction {
- bool has_value;
- accesskit_text_direction value;
- } accesskit_opt_text_direction;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_orientation {
- bool has_value;
- accesskit_orientation value;
- } accesskit_opt_orientation;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_sort_direction {
- bool has_value;
- accesskit_sort_direction value;
- } accesskit_opt_sort_direction;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_aria_current {
- bool has_value;
- accesskit_aria_current value;
- } accesskit_opt_aria_current;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_auto_complete {
- bool has_value;
- accesskit_auto_complete value;
- } accesskit_opt_auto_complete;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_has_popup {
- bool has_value;
- accesskit_has_popup value;
- } accesskit_opt_has_popup;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_list_style {
- bool has_value;
- accesskit_list_style value;
- } accesskit_opt_list_style;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_text_align {
- bool has_value;
- accesskit_text_align value;
- } accesskit_opt_text_align;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_vertical_offset {
- bool has_value;
- accesskit_vertical_offset value;
- } accesskit_opt_vertical_offset;
- /**
- * A 2D affine transform. Derived from
- * [kurbo](https://github.com/linebender/kurbo).
- */
- typedef struct accesskit_affine {
- double _0[6];
- } accesskit_affine;
- /**
- * A rectangle. Derived from [kurbo](https://github.com/linebender/kurbo).
- */
- typedef struct accesskit_rect {
- /**
- * The minimum x coordinate (left edge).
- */
- double x0;
- /**
- * The minimum y coordinate (top edge in y-down spaces).
- */
- double y0;
- /**
- * The maximum x coordinate (right edge).
- */
- double x1;
- /**
- * The maximum y coordinate (bottom edge in y-down spaces).
- */
- double y1;
- } accesskit_rect;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_rect {
- bool has_value;
- struct accesskit_rect value;
- } accesskit_opt_rect;
- typedef struct accesskit_text_position {
- accesskit_node_id node;
- size_t character_index;
- } accesskit_text_position;
- typedef struct accesskit_text_selection {
- struct accesskit_text_position anchor;
- struct accesskit_text_position focus;
- } accesskit_text_selection;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_text_selection {
- bool has_value;
- struct accesskit_text_selection value;
- } accesskit_opt_text_selection;
- /**
- * Use `accesskit_custom_action_new` to create this struct. Do not reallocate
- * `description`.
- *
- * When you get this struct, you are responsible for freeing `description`.
- */
- typedef struct accesskit_custom_action {
- int32_t id;
- char *description;
- } accesskit_custom_action;
- typedef struct accesskit_custom_actions {
- size_t length;
- struct accesskit_custom_action *values;
- } accesskit_custom_actions;
- /**
- * A 2D point. Derived from [kurbo](https://github.com/linebender/kurbo).
- */
- typedef struct accesskit_point {
- /**
- * The x coordinate.
- */
- double x;
- /**
- * The y coordinate.
- */
- double y;
- } accesskit_point;
- typedef enum accesskit_action_data_Tag {
- ACCESSKIT_ACTION_DATA_CUSTOM_ACTION,
- ACCESSKIT_ACTION_DATA_VALUE,
- ACCESSKIT_ACTION_DATA_NUMERIC_VALUE,
- ACCESSKIT_ACTION_DATA_SCROLL_TARGET_RECT,
- ACCESSKIT_ACTION_DATA_SCROLL_TO_POINT,
- ACCESSKIT_ACTION_DATA_SET_SCROLL_OFFSET,
- ACCESSKIT_ACTION_DATA_SET_TEXT_SELECTION,
- } accesskit_action_data_Tag;
- typedef struct accesskit_action_data {
- accesskit_action_data_Tag tag;
- union {
- struct {
- int32_t custom_action;
- };
- struct {
- char *value;
- };
- struct {
- double numeric_value;
- };
- struct {
- struct accesskit_rect scroll_target_rect;
- };
- struct {
- struct accesskit_point scroll_to_point;
- };
- struct {
- struct accesskit_point set_scroll_offset;
- };
- struct {
- struct accesskit_text_selection set_text_selection;
- };
- };
- } accesskit_action_data;
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_action_data {
- bool has_value;
- struct accesskit_action_data value;
- } accesskit_opt_action_data;
- typedef struct accesskit_action_request {
- accesskit_action action;
- accesskit_node_id target;
- struct accesskit_opt_action_data data;
- } accesskit_action_request;
- /**
- * A 2D vector. Derived from [kurbo](https://github.com/linebender/kurbo).
- *
- * This is intended primarily for a vector in the mathematical sense,
- * but it can be interpreted as a translation, and converted to and
- * from a point (vector relative to the origin) and size.
- */
- typedef struct accesskit_vec2 {
- /**
- * The x-coordinate.
- */
- double x;
- /**
- * The y-coordinate.
- */
- double y;
- } accesskit_vec2;
- /**
- * A 2D size. Derived from [kurbo](https://github.com/linebender/kurbo).
- */
- typedef struct accesskit_size {
- /**
- * The width.
- */
- double width;
- /**
- * The height.
- */
- double height;
- } accesskit_size;
- /**
- * Ownership of `request` is transferred to the callback. `request` must
- * be freed using `accesskit_action_request_free`.
- */
- typedef void (*accesskit_action_handler_callback)(
- struct accesskit_action_request *request, void *userdata);
- typedef void *accesskit_tree_update_factory_userdata;
- /**
- * This function can't return a null pointer. Ownership of the returned value
- * will be transferred to the caller.
- */
- typedef struct accesskit_tree_update *(*accesskit_tree_update_factory)(
- accesskit_tree_update_factory_userdata);
- typedef struct accesskit_tree_update *(*accesskit_activation_handler_callback)(
- void *userdata);
- typedef void (*accesskit_deactivation_handler_callback)(void *userdata);
- #if defined(_WIN32)
- /**
- * Represents an optional value.
- *
- * If `has_value` is false, do not read the `value` field.
- */
- typedef struct accesskit_opt_lresult {
- bool has_value;
- LRESULT value;
- } accesskit_opt_lresult;
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif // __cplusplus
- accesskit_role accesskit_node_role(const struct accesskit_node *node);
- void accesskit_node_set_role(struct accesskit_node *node, accesskit_role value);
- bool accesskit_node_supports_action(const struct accesskit_node *node,
- accesskit_action action);
- void accesskit_node_add_action(struct accesskit_node *node,
- accesskit_action action);
- void accesskit_node_remove_action(struct accesskit_node *node,
- accesskit_action action);
- void accesskit_node_clear_actions(struct accesskit_node *node);
- bool accesskit_node_is_hidden(const struct accesskit_node *node);
- void accesskit_node_set_hidden(struct accesskit_node *node);
- void accesskit_node_clear_hidden(struct accesskit_node *node);
- bool accesskit_node_is_linked(const struct accesskit_node *node);
- void accesskit_node_set_linked(struct accesskit_node *node);
- void accesskit_node_clear_linked(struct accesskit_node *node);
- bool accesskit_node_is_multiselectable(const struct accesskit_node *node);
- void accesskit_node_set_multiselectable(struct accesskit_node *node);
- void accesskit_node_clear_multiselectable(struct accesskit_node *node);
- bool accesskit_node_is_required(const struct accesskit_node *node);
- void accesskit_node_set_required(struct accesskit_node *node);
- void accesskit_node_clear_required(struct accesskit_node *node);
- bool accesskit_node_is_visited(const struct accesskit_node *node);
- void accesskit_node_set_visited(struct accesskit_node *node);
- void accesskit_node_clear_visited(struct accesskit_node *node);
- bool accesskit_node_is_busy(const struct accesskit_node *node);
- void accesskit_node_set_busy(struct accesskit_node *node);
- void accesskit_node_clear_busy(struct accesskit_node *node);
- bool accesskit_node_is_live_atomic(const struct accesskit_node *node);
- void accesskit_node_set_live_atomic(struct accesskit_node *node);
- void accesskit_node_clear_live_atomic(struct accesskit_node *node);
- bool accesskit_node_is_modal(const struct accesskit_node *node);
- void accesskit_node_set_modal(struct accesskit_node *node);
- void accesskit_node_clear_modal(struct accesskit_node *node);
- bool accesskit_node_is_touch_transparent(const struct accesskit_node *node);
- void accesskit_node_set_touch_transparent(struct accesskit_node *node);
- void accesskit_node_clear_touch_transparent(struct accesskit_node *node);
- bool accesskit_node_is_read_only(const struct accesskit_node *node);
- void accesskit_node_set_read_only(struct accesskit_node *node);
- void accesskit_node_clear_read_only(struct accesskit_node *node);
- bool accesskit_node_is_disabled(const struct accesskit_node *node);
- void accesskit_node_set_disabled(struct accesskit_node *node);
- void accesskit_node_clear_disabled(struct accesskit_node *node);
- bool accesskit_node_is_bold(const struct accesskit_node *node);
- void accesskit_node_set_bold(struct accesskit_node *node);
- void accesskit_node_clear_bold(struct accesskit_node *node);
- bool accesskit_node_is_italic(const struct accesskit_node *node);
- void accesskit_node_set_italic(struct accesskit_node *node);
- void accesskit_node_clear_italic(struct accesskit_node *node);
- bool accesskit_node_clips_children(const struct accesskit_node *node);
- void accesskit_node_set_clips_children(struct accesskit_node *node);
- void accesskit_node_clear_clips_children(struct accesskit_node *node);
- bool accesskit_node_is_line_breaking_object(const struct accesskit_node *node);
- void accesskit_node_set_is_line_breaking_object(struct accesskit_node *node);
- void accesskit_node_clear_is_line_breaking_object(struct accesskit_node *node);
- bool accesskit_node_is_page_breaking_object(const struct accesskit_node *node);
- void accesskit_node_set_is_page_breaking_object(struct accesskit_node *node);
- void accesskit_node_clear_is_page_breaking_object(struct accesskit_node *node);
- bool accesskit_node_is_spelling_error(const struct accesskit_node *node);
- void accesskit_node_set_is_spelling_error(struct accesskit_node *node);
- void accesskit_node_clear_is_spelling_error(struct accesskit_node *node);
- bool accesskit_node_is_grammar_error(const struct accesskit_node *node);
- void accesskit_node_set_is_grammar_error(struct accesskit_node *node);
- void accesskit_node_clear_is_grammar_error(struct accesskit_node *node);
- bool accesskit_node_is_search_match(const struct accesskit_node *node);
- void accesskit_node_set_is_search_match(struct accesskit_node *node);
- void accesskit_node_clear_is_search_match(struct accesskit_node *node);
- bool accesskit_node_is_suggestion(const struct accesskit_node *node);
- void accesskit_node_set_is_suggestion(struct accesskit_node *node);
- void accesskit_node_clear_is_suggestion(struct accesskit_node *node);
- struct accesskit_node_ids accesskit_node_children(
- const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing `values`.
- */
- void accesskit_node_set_children(struct accesskit_node *node, size_t length,
- const accesskit_node_id *values);
- void accesskit_node_push_child(struct accesskit_node *node,
- accesskit_node_id item);
- void accesskit_node_clear_children(struct accesskit_node *node);
- struct accesskit_node_ids accesskit_node_controls(
- const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing `values`.
- */
- void accesskit_node_set_controls(struct accesskit_node *node, size_t length,
- const accesskit_node_id *values);
- void accesskit_node_push_controlled(struct accesskit_node *node,
- accesskit_node_id item);
- void accesskit_node_clear_controls(struct accesskit_node *node);
- struct accesskit_node_ids accesskit_node_details(
- const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing `values`.
- */
- void accesskit_node_set_details(struct accesskit_node *node, size_t length,
- const accesskit_node_id *values);
- void accesskit_node_push_detail(struct accesskit_node *node,
- accesskit_node_id item);
- void accesskit_node_clear_details(struct accesskit_node *node);
- struct accesskit_node_ids accesskit_node_described_by(
- const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing `values`.
- */
- void accesskit_node_set_described_by(struct accesskit_node *node, size_t length,
- const accesskit_node_id *values);
- void accesskit_node_push_described_by(struct accesskit_node *node,
- accesskit_node_id item);
- void accesskit_node_clear_described_by(struct accesskit_node *node);
- struct accesskit_node_ids accesskit_node_flow_to(
- const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing `values`.
- */
- void accesskit_node_set_flow_to(struct accesskit_node *node, size_t length,
- const accesskit_node_id *values);
- void accesskit_node_push_flow_to(struct accesskit_node *node,
- accesskit_node_id item);
- void accesskit_node_clear_flow_to(struct accesskit_node *node);
- struct accesskit_node_ids accesskit_node_labelled_by(
- const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing `values`.
- */
- void accesskit_node_set_labelled_by(struct accesskit_node *node, size_t length,
- const accesskit_node_id *values);
- void accesskit_node_push_labelled_by(struct accesskit_node *node,
- accesskit_node_id item);
- void accesskit_node_clear_labelled_by(struct accesskit_node *node);
- struct accesskit_node_ids accesskit_node_owns(
- const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing `values`.
- */
- void accesskit_node_set_owns(struct accesskit_node *node, size_t length,
- const accesskit_node_id *values);
- void accesskit_node_push_owned(struct accesskit_node *node,
- accesskit_node_id item);
- void accesskit_node_clear_owns(struct accesskit_node *node);
- struct accesskit_node_ids accesskit_node_radio_group(
- const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing `values`.
- */
- void accesskit_node_set_radio_group(struct accesskit_node *node, size_t length,
- const accesskit_node_id *values);
- void accesskit_node_push_to_radio_group(struct accesskit_node *node,
- accesskit_node_id item);
- void accesskit_node_clear_radio_group(struct accesskit_node *node);
- struct accesskit_opt_node_id accesskit_node_active_descendant(
- const struct accesskit_node *node);
- void accesskit_node_set_active_descendant(struct accesskit_node *node,
- accesskit_node_id value);
- void accesskit_node_clear_active_descendant(struct accesskit_node *node);
- struct accesskit_opt_node_id accesskit_node_error_message(
- const struct accesskit_node *node);
- void accesskit_node_set_error_message(struct accesskit_node *node,
- accesskit_node_id value);
- void accesskit_node_clear_error_message(struct accesskit_node *node);
- struct accesskit_opt_node_id accesskit_node_in_page_link_target(
- const struct accesskit_node *node);
- void accesskit_node_set_in_page_link_target(struct accesskit_node *node,
- accesskit_node_id value);
- void accesskit_node_clear_in_page_link_target(struct accesskit_node *node);
- struct accesskit_opt_node_id accesskit_node_member_of(
- const struct accesskit_node *node);
- void accesskit_node_set_member_of(struct accesskit_node *node,
- accesskit_node_id value);
- void accesskit_node_clear_member_of(struct accesskit_node *node);
- struct accesskit_opt_node_id accesskit_node_next_on_line(
- const struct accesskit_node *node);
- void accesskit_node_set_next_on_line(struct accesskit_node *node,
- accesskit_node_id value);
- void accesskit_node_clear_next_on_line(struct accesskit_node *node);
- struct accesskit_opt_node_id accesskit_node_previous_on_line(
- const struct accesskit_node *node);
- void accesskit_node_set_previous_on_line(struct accesskit_node *node,
- accesskit_node_id value);
- void accesskit_node_clear_previous_on_line(struct accesskit_node *node);
- struct accesskit_opt_node_id accesskit_node_popup_for(
- const struct accesskit_node *node);
- void accesskit_node_set_popup_for(struct accesskit_node *node,
- accesskit_node_id value);
- void accesskit_node_clear_popup_for(struct accesskit_node *node);
- /**
- * Only call this function with a string that originated from AccessKit.
- */
- void accesskit_string_free(char *string);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_label(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_label(struct accesskit_node *node, const char *value);
- void accesskit_node_clear_label(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_description(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_description(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_description(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_value(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_value(struct accesskit_node *node, const char *value);
- void accesskit_node_clear_value(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_access_key(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_access_key(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_access_key(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_author_id(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_author_id(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_author_id(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_class_name(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_class_name(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_class_name(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_font_family(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_font_family(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_font_family(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_html_tag(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_html_tag(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_html_tag(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_inner_html(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_inner_html(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_inner_html(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_keyboard_shortcut(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_keyboard_shortcut(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_keyboard_shortcut(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_language(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_language(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_language(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_placeholder(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_placeholder(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_placeholder(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_role_description(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_role_description(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_role_description(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_state_description(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_state_description(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_state_description(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_tooltip(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_tooltip(struct accesskit_node *node, const char *value);
- void accesskit_node_clear_tooltip(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_url(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_url(struct accesskit_node *node, const char *value);
- void accesskit_node_clear_url(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_row_index_text(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_row_index_text(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_row_index_text(struct accesskit_node *node);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_node_column_index_text(const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing the memory pointed by `value`.
- */
- void accesskit_node_set_column_index_text(struct accesskit_node *node,
- const char *value);
- void accesskit_node_clear_column_index_text(struct accesskit_node *node);
- struct accesskit_opt_double accesskit_node_scroll_x(
- const struct accesskit_node *node);
- void accesskit_node_set_scroll_x(struct accesskit_node *node, double value);
- void accesskit_node_clear_scroll_x(struct accesskit_node *node);
- struct accesskit_opt_double accesskit_node_scroll_x_min(
- const struct accesskit_node *node);
- void accesskit_node_set_scroll_x_min(struct accesskit_node *node, double value);
- void accesskit_node_clear_scroll_x_min(struct accesskit_node *node);
- struct accesskit_opt_double accesskit_node_scroll_x_max(
- const struct accesskit_node *node);
- void accesskit_node_set_scroll_x_max(struct accesskit_node *node, double value);
- void accesskit_node_clear_scroll_x_max(struct accesskit_node *node);
- struct accesskit_opt_double accesskit_node_scroll_y(
- const struct accesskit_node *node);
- void accesskit_node_set_scroll_y(struct accesskit_node *node, double value);
- void accesskit_node_clear_scroll_y(struct accesskit_node *node);
- struct accesskit_opt_double accesskit_node_scroll_y_min(
- const struct accesskit_node *node);
- void accesskit_node_set_scroll_y_min(struct accesskit_node *node, double value);
- void accesskit_node_clear_scroll_y_min(struct accesskit_node *node);
- struct accesskit_opt_double accesskit_node_scroll_y_max(
- const struct accesskit_node *node);
- void accesskit_node_set_scroll_y_max(struct accesskit_node *node, double value);
- void accesskit_node_clear_scroll_y_max(struct accesskit_node *node);
- struct accesskit_opt_double accesskit_node_numeric_value(
- const struct accesskit_node *node);
- void accesskit_node_set_numeric_value(struct accesskit_node *node,
- double value);
- void accesskit_node_clear_numeric_value(struct accesskit_node *node);
- struct accesskit_opt_double accesskit_node_min_numeric_value(
- const struct accesskit_node *node);
- void accesskit_node_set_min_numeric_value(struct accesskit_node *node,
- double value);
- void accesskit_node_clear_min_numeric_value(struct accesskit_node *node);
- struct accesskit_opt_double accesskit_node_max_numeric_value(
- const struct accesskit_node *node);
- void accesskit_node_set_max_numeric_value(struct accesskit_node *node,
- double value);
- void accesskit_node_clear_max_numeric_value(struct accesskit_node *node);
- struct accesskit_opt_double accesskit_node_numeric_value_step(
- const struct accesskit_node *node);
- void accesskit_node_set_numeric_value_step(struct accesskit_node *node,
- double value);
- void accesskit_node_clear_numeric_value_step(struct accesskit_node *node);
- struct accesskit_opt_double accesskit_node_numeric_value_jump(
- const struct accesskit_node *node);
- void accesskit_node_set_numeric_value_jump(struct accesskit_node *node,
- double value);
- void accesskit_node_clear_numeric_value_jump(struct accesskit_node *node);
- struct accesskit_opt_double accesskit_node_font_size(
- const struct accesskit_node *node);
- void accesskit_node_set_font_size(struct accesskit_node *node, double value);
- void accesskit_node_clear_font_size(struct accesskit_node *node);
- struct accesskit_opt_double accesskit_node_font_weight(
- const struct accesskit_node *node);
- void accesskit_node_set_font_weight(struct accesskit_node *node, double value);
- void accesskit_node_clear_font_weight(struct accesskit_node *node);
- struct accesskit_opt_index accesskit_node_row_count(
- const struct accesskit_node *node);
- void accesskit_node_set_row_count(struct accesskit_node *node, size_t value);
- void accesskit_node_clear_row_count(struct accesskit_node *node);
- struct accesskit_opt_index accesskit_node_column_count(
- const struct accesskit_node *node);
- void accesskit_node_set_column_count(struct accesskit_node *node, size_t value);
- void accesskit_node_clear_column_count(struct accesskit_node *node);
- struct accesskit_opt_index accesskit_node_row_index(
- const struct accesskit_node *node);
- void accesskit_node_set_row_index(struct accesskit_node *node, size_t value);
- void accesskit_node_clear_row_index(struct accesskit_node *node);
- struct accesskit_opt_index accesskit_node_column_index(
- const struct accesskit_node *node);
- void accesskit_node_set_column_index(struct accesskit_node *node, size_t value);
- void accesskit_node_clear_column_index(struct accesskit_node *node);
- struct accesskit_opt_index accesskit_node_row_span(
- const struct accesskit_node *node);
- void accesskit_node_set_row_span(struct accesskit_node *node, size_t value);
- void accesskit_node_clear_row_span(struct accesskit_node *node);
- struct accesskit_opt_index accesskit_node_column_span(
- const struct accesskit_node *node);
- void accesskit_node_set_column_span(struct accesskit_node *node, size_t value);
- void accesskit_node_clear_column_span(struct accesskit_node *node);
- struct accesskit_opt_index accesskit_node_level(
- const struct accesskit_node *node);
- void accesskit_node_set_level(struct accesskit_node *node, size_t value);
- void accesskit_node_clear_level(struct accesskit_node *node);
- struct accesskit_opt_index accesskit_node_size_of_set(
- const struct accesskit_node *node);
- void accesskit_node_set_size_of_set(struct accesskit_node *node, size_t value);
- void accesskit_node_clear_size_of_set(struct accesskit_node *node);
- struct accesskit_opt_index accesskit_node_position_in_set(
- const struct accesskit_node *node);
- void accesskit_node_set_position_in_set(struct accesskit_node *node,
- size_t value);
- void accesskit_node_clear_position_in_set(struct accesskit_node *node);
- struct accesskit_opt_color accesskit_node_color_value(
- const struct accesskit_node *node);
- void accesskit_node_set_color_value(struct accesskit_node *node,
- uint32_t value);
- void accesskit_node_clear_color_value(struct accesskit_node *node);
- struct accesskit_opt_color accesskit_node_background_color(
- const struct accesskit_node *node);
- void accesskit_node_set_background_color(struct accesskit_node *node,
- uint32_t value);
- void accesskit_node_clear_background_color(struct accesskit_node *node);
- struct accesskit_opt_color accesskit_node_foreground_color(
- const struct accesskit_node *node);
- void accesskit_node_set_foreground_color(struct accesskit_node *node,
- uint32_t value);
- void accesskit_node_clear_foreground_color(struct accesskit_node *node);
- struct accesskit_opt_text_decoration accesskit_node_overline(
- const struct accesskit_node *node);
- void accesskit_node_set_overline(struct accesskit_node *node,
- accesskit_text_decoration value);
- void accesskit_node_clear_overline(struct accesskit_node *node);
- struct accesskit_opt_text_decoration accesskit_node_strikethrough(
- const struct accesskit_node *node);
- void accesskit_node_set_strikethrough(struct accesskit_node *node,
- accesskit_text_decoration value);
- void accesskit_node_clear_strikethrough(struct accesskit_node *node);
- struct accesskit_opt_text_decoration accesskit_node_underline(
- const struct accesskit_node *node);
- void accesskit_node_set_underline(struct accesskit_node *node,
- accesskit_text_decoration value);
- void accesskit_node_clear_underline(struct accesskit_node *node);
- struct accesskit_lengths accesskit_node_character_lengths(
- const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing `values`.
- */
- void accesskit_node_set_character_lengths(struct accesskit_node *node,
- size_t length, const uint8_t *values);
- void accesskit_node_clear_character_lengths(struct accesskit_node *node);
- struct accesskit_lengths accesskit_node_word_lengths(
- const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing `values`.
- */
- void accesskit_node_set_word_lengths(struct accesskit_node *node, size_t length,
- const uint8_t *values);
- void accesskit_node_clear_word_lengths(struct accesskit_node *node);
- struct accesskit_opt_coords accesskit_node_character_positions(
- const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing `values`.
- */
- void accesskit_node_set_character_positions(struct accesskit_node *node,
- size_t length, const float *values);
- void accesskit_node_clear_character_positions(struct accesskit_node *node);
- struct accesskit_opt_coords accesskit_node_character_widths(
- const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing `values`.
- */
- void accesskit_node_set_character_widths(struct accesskit_node *node,
- size_t length, const float *values);
- void accesskit_node_clear_character_widths(struct accesskit_node *node);
- struct accesskit_opt_bool accesskit_node_is_expanded(
- const struct accesskit_node *node);
- void accesskit_node_set_expanded(struct accesskit_node *node, bool value);
- void accesskit_node_clear_expanded(struct accesskit_node *node);
- struct accesskit_opt_bool accesskit_node_is_selected(
- const struct accesskit_node *node);
- void accesskit_node_set_selected(struct accesskit_node *node, bool value);
- void accesskit_node_clear_selected(struct accesskit_node *node);
- struct accesskit_opt_invalid accesskit_node_invalid(
- const struct accesskit_node *node);
- void accesskit_node_set_invalid(struct accesskit_node *node,
- accesskit_invalid value);
- void accesskit_node_clear_invalid(struct accesskit_node *node);
- struct accesskit_opt_toggled accesskit_node_toggled(
- const struct accesskit_node *node);
- void accesskit_node_set_toggled(struct accesskit_node *node,
- accesskit_toggled value);
- void accesskit_node_clear_toggled(struct accesskit_node *node);
- struct accesskit_opt_live accesskit_node_live(
- const struct accesskit_node *node);
- void accesskit_node_set_live(struct accesskit_node *node, accesskit_live value);
- void accesskit_node_clear_live(struct accesskit_node *node);
- struct accesskit_opt_text_direction accesskit_node_text_direction(
- const struct accesskit_node *node);
- void accesskit_node_set_text_direction(struct accesskit_node *node,
- accesskit_text_direction value);
- void accesskit_node_clear_text_direction(struct accesskit_node *node);
- struct accesskit_opt_orientation accesskit_node_orientation(
- const struct accesskit_node *node);
- void accesskit_node_set_orientation(struct accesskit_node *node,
- accesskit_orientation value);
- void accesskit_node_clear_orientation(struct accesskit_node *node);
- struct accesskit_opt_sort_direction accesskit_node_sort_direction(
- const struct accesskit_node *node);
- void accesskit_node_set_sort_direction(struct accesskit_node *node,
- accesskit_sort_direction value);
- void accesskit_node_clear_sort_direction(struct accesskit_node *node);
- struct accesskit_opt_aria_current accesskit_node_aria_current(
- const struct accesskit_node *node);
- void accesskit_node_set_aria_current(struct accesskit_node *node,
- accesskit_aria_current value);
- void accesskit_node_clear_aria_current(struct accesskit_node *node);
- struct accesskit_opt_auto_complete accesskit_node_auto_complete(
- const struct accesskit_node *node);
- void accesskit_node_set_auto_complete(struct accesskit_node *node,
- accesskit_auto_complete value);
- void accesskit_node_clear_auto_complete(struct accesskit_node *node);
- struct accesskit_opt_has_popup accesskit_node_has_popup(
- const struct accesskit_node *node);
- void accesskit_node_set_has_popup(struct accesskit_node *node,
- accesskit_has_popup value);
- void accesskit_node_clear_has_popup(struct accesskit_node *node);
- struct accesskit_opt_list_style accesskit_node_list_style(
- const struct accesskit_node *node);
- void accesskit_node_set_list_style(struct accesskit_node *node,
- accesskit_list_style value);
- void accesskit_node_clear_list_style(struct accesskit_node *node);
- struct accesskit_opt_text_align accesskit_node_text_align(
- const struct accesskit_node *node);
- void accesskit_node_set_text_align(struct accesskit_node *node,
- accesskit_text_align value);
- void accesskit_node_clear_text_align(struct accesskit_node *node);
- struct accesskit_opt_vertical_offset accesskit_node_vertical_offset(
- const struct accesskit_node *node);
- void accesskit_node_set_vertical_offset(struct accesskit_node *node,
- accesskit_vertical_offset value);
- void accesskit_node_clear_vertical_offset(struct accesskit_node *node);
- const struct accesskit_affine *accesskit_node_transform(
- const struct accesskit_node *node);
- void accesskit_node_set_transform(struct accesskit_node *node,
- struct accesskit_affine value);
- void accesskit_node_clear_transform(struct accesskit_node *node);
- struct accesskit_opt_rect accesskit_node_bounds(
- const struct accesskit_node *node);
- void accesskit_node_set_bounds(struct accesskit_node *node,
- struct accesskit_rect value);
- void accesskit_node_clear_bounds(struct accesskit_node *node);
- struct accesskit_opt_text_selection accesskit_node_text_selection(
- const struct accesskit_node *node);
- void accesskit_node_set_text_selection(struct accesskit_node *node,
- struct accesskit_text_selection value);
- void accesskit_node_clear_text_selection(struct accesskit_node *node);
- struct accesskit_custom_action accesskit_custom_action_new(
- int32_t id, const char *description);
- void accesskit_custom_actions_free(struct accesskit_custom_actions *value);
- /**
- * Caller is responsible for freeing the returned value.
- */
- const struct accesskit_custom_actions *accesskit_node_custom_actions(
- const struct accesskit_node *node);
- /**
- * Caller is responsible for freeing `values`.
- */
- void accesskit_node_set_custom_actions(
- struct accesskit_node *node, size_t length,
- const struct accesskit_custom_action *values);
- void accesskit_node_push_custom_action(struct accesskit_node *node,
- struct accesskit_custom_action item);
- void accesskit_node_clear_custom_actions(struct accesskit_node *node);
- struct accesskit_node *accesskit_node_new(accesskit_role role);
- void accesskit_node_free(struct accesskit_node *node);
- struct accesskit_tree *accesskit_tree_new(accesskit_node_id root);
- void accesskit_tree_free(struct accesskit_tree *tree);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_tree_get_toolkit_name(const struct accesskit_tree *tree);
- void accesskit_tree_set_toolkit_name(struct accesskit_tree *tree,
- const char *toolkit_name);
- void accesskit_tree_clear_toolkit_name(struct accesskit_tree *tree);
- /**
- * Caller must call `accesskit_string_free` with the return value.
- */
- char *accesskit_tree_get_toolkit_version(const struct accesskit_tree *tree);
- void accesskit_tree_set_toolkit_version(struct accesskit_tree *tree,
- const char *toolkit_version);
- void accesskit_tree_clear_toolkit_version(struct accesskit_tree *tree);
- struct accesskit_tree_update *accesskit_tree_update_with_focus(
- accesskit_node_id focus);
- struct accesskit_tree_update *accesskit_tree_update_with_capacity_and_focus(
- size_t capacity, accesskit_node_id focus);
- void accesskit_tree_update_free(struct accesskit_tree_update *update);
- /**
- * Appends the provided node to the tree update's list of nodes.
- * Takes ownership of `node`.
- */
- void accesskit_tree_update_push_node(struct accesskit_tree_update *update,
- accesskit_node_id id,
- struct accesskit_node *node);
- void accesskit_tree_update_set_tree(struct accesskit_tree_update *update,
- struct accesskit_tree *tree);
- void accesskit_tree_update_clear_tree(struct accesskit_tree_update *update);
- void accesskit_tree_update_set_focus(struct accesskit_tree_update *update,
- accesskit_node_id focus);
- void accesskit_action_request_free(struct accesskit_action_request *request);
- struct accesskit_affine accesskit_affine_identity(void);
- struct accesskit_affine accesskit_affine_flip_y(void);
- struct accesskit_affine accesskit_affine_flip_x(void);
- struct accesskit_affine accesskit_affine_scale(double s);
- struct accesskit_affine accesskit_affine_scale_non_uniform(double s_x,
- double s_y);
- struct accesskit_affine accesskit_affine_translate(struct accesskit_vec2 p);
- struct accesskit_affine accesskit_affine_map_unit_square(
- struct accesskit_rect rect);
- double accesskit_affine_determinant(struct accesskit_affine affine);
- struct accesskit_affine accesskit_affine_inverse(
- struct accesskit_affine affine);
- struct accesskit_rect accesskit_affine_transform_rect_bbox(
- struct accesskit_affine affine, struct accesskit_rect rect);
- bool accesskit_affine_is_finite(const struct accesskit_affine *affine);
- bool accesskit_affine_is_nan(const struct accesskit_affine *affine);
- struct accesskit_vec2 accesskit_point_to_vec2(struct accesskit_point point);
- struct accesskit_rect accesskit_rect_from_points(struct accesskit_point p0,
- struct accesskit_point p1);
- struct accesskit_rect accesskit_rect_from_origin_size(
- struct accesskit_point origin, struct accesskit_size size);
- struct accesskit_rect accesskit_rect_with_origin(struct accesskit_rect rect,
- struct accesskit_point origin);
- struct accesskit_rect accesskit_rect_with_size(struct accesskit_rect rect,
- struct accesskit_size size);
- double accesskit_rect_width(const struct accesskit_rect *rect);
- double accesskit_rect_height(const struct accesskit_rect *rect);
- double accesskit_rect_min_x(const struct accesskit_rect *rect);
- double accesskit_rect_max_x(const struct accesskit_rect *rect);
- double accesskit_rect_min_y(const struct accesskit_rect *rect);
- double accesskit_rect_max_y(const struct accesskit_rect *rect);
- struct accesskit_point accesskit_rect_origin(const struct accesskit_rect *rect);
- struct accesskit_size accesskit_rect_size(const struct accesskit_rect *rect);
- struct accesskit_rect accesskit_rect_abs(const struct accesskit_rect *rect);
- double accesskit_rect_area(const struct accesskit_rect *rect);
- bool accesskit_rect_is_empty(const struct accesskit_rect *rect);
- bool accesskit_rect_contains(const struct accesskit_rect *rect,
- struct accesskit_point point);
- struct accesskit_rect accesskit_rect_union(const struct accesskit_rect *rect,
- struct accesskit_rect other);
- struct accesskit_rect accesskit_rect_union_pt(const struct accesskit_rect *rect,
- struct accesskit_point pt);
- struct accesskit_rect accesskit_rect_intersect(
- const struct accesskit_rect *rect, struct accesskit_rect other);
- struct accesskit_vec2 accesskit_size_to_vec2(struct accesskit_size size);
- struct accesskit_point accesskit_vec2_to_point(struct accesskit_vec2 vec2);
- struct accesskit_size accesskit_vec2_to_size(struct accesskit_vec2 vec2);
- #if defined(__APPLE__)
- /**
- * Memory is also freed when calling this function.
- */
- void accesskit_macos_queued_events_raise(
- struct accesskit_macos_queued_events *events);
- #endif
- #if defined(__APPLE__)
- /**
- * # Safety
- *
- * `view` must be a valid, unreleased pointer to an `NSView`.
- */
- struct accesskit_macos_adapter *accesskit_macos_adapter_new(
- void *view, bool is_view_focused,
- accesskit_action_handler_callback action_handler,
- void *action_handler_userdata);
- #endif
- #if defined(__APPLE__)
- void accesskit_macos_adapter_free(struct accesskit_macos_adapter *adapter);
- #endif
- #if defined(__APPLE__)
- /**
- * You must call `accesskit_macos_queued_events_raise` on the returned pointer.
- * It can be null if the adapter is not active.
- */
- struct accesskit_macos_queued_events *accesskit_macos_adapter_update_if_active(
- struct accesskit_macos_adapter *adapter,
- accesskit_tree_update_factory update_factory,
- void *update_factory_userdata);
- #endif
- #if defined(__APPLE__)
- /**
- * Update the tree state based on whether the window is focused.
- *
- * You must call `accesskit_macos_queued_events_raise` on the returned pointer.
- * It can be null if the adapter is not active.
- */
- struct accesskit_macos_queued_events *
- accesskit_macos_adapter_update_view_focus_state(
- struct accesskit_macos_adapter *adapter, bool is_focused);
- #endif
- #if defined(__APPLE__)
- /**
- * Returns a pointer to an `NSArray`. Ownership of the pointer is not
- * transferred.
- */
- void *accesskit_macos_adapter_view_children(
- struct accesskit_macos_adapter *adapter,
- accesskit_activation_handler_callback activation_handler,
- void *activation_handler_userdata);
- #endif
- #if defined(__APPLE__)
- /**
- * Returns a pointer to an `NSObject`. Ownership of the pointer is not
- * transferred.
- */
- void *accesskit_macos_adapter_focus(
- struct accesskit_macos_adapter *adapter,
- accesskit_activation_handler_callback activation_handler,
- void *activation_handler_userdata);
- #endif
- #if defined(__APPLE__)
- /**
- * Returns a pointer to an `NSObject`. Ownership of the pointer is not
- * transferred.
- */
- void *accesskit_macos_adapter_hit_test(
- struct accesskit_macos_adapter *adapter, double x, double y,
- accesskit_activation_handler_callback activation_handler,
- void *activation_handler_userdata);
- #endif
- #if defined(__APPLE__)
- /**
- * # Safety
- *
- * `view` must be a valid, unreleased pointer to an `NSView`.
- */
- struct accesskit_macos_subclassing_adapter *
- accesskit_macos_subclassing_adapter_new(
- void *view, accesskit_activation_handler_callback activation_handler,
- void *activation_handler_userdata,
- accesskit_action_handler_callback action_handler,
- void *action_handler_userdata);
- #endif
- #if defined(__APPLE__)
- /**
- * # Safety
- *
- * `window` must be a valid, unreleased pointer to an `NSWindow`.
- *
- * # Panics
- *
- * This function panics if the specified window doesn't currently have
- * a content view.
- */
- struct accesskit_macos_subclassing_adapter *
- accesskit_macos_subclassing_adapter_for_window(
- void *window, accesskit_activation_handler_callback activation_handler,
- void *activation_handler_userdata,
- accesskit_action_handler_callback action_handler,
- void *action_handler_userdata);
- #endif
- #if defined(__APPLE__)
- void accesskit_macos_subclassing_adapter_free(
- struct accesskit_macos_subclassing_adapter *adapter);
- #endif
- #if defined(__APPLE__)
- /**
- * You must call `accesskit_macos_queued_events_raise` on the returned pointer.
- * It can be null if the adapter is not active.
- */
- struct accesskit_macos_queued_events *
- accesskit_macos_subclassing_adapter_update_if_active(
- struct accesskit_macos_subclassing_adapter *adapter,
- accesskit_tree_update_factory update_factory,
- void *update_factory_userdata);
- #endif
- #if defined(__APPLE__)
- /**
- * Update the tree state based on whether the window is focused.
- *
- * You must call `accesskit_macos_queued_events_raise` on the returned pointer.
- * It can be null if the adapter is not active.
- */
- struct accesskit_macos_queued_events *
- accesskit_macos_subclassing_adapter_update_view_focus_state(
- struct accesskit_macos_subclassing_adapter *adapter, bool is_focused);
- #endif
- #if defined(__APPLE__)
- /**
- * Modifies the specified class, which must be a subclass of `NSWindow`,
- * to include an `accessibilityFocusedUIElement` method that calls
- * the corresponding method on the window's content view. This is needed
- * for windowing libraries such as SDL that place the keyboard focus
- * directly on the window rather than the content view.
- *
- * # Safety
- *
- * This function is declared unsafe because the caller must ensure that the
- * code for this library is never unloaded from the application process,
- * since it's not possible to reverse this operation. It's safest
- * if this library is statically linked into the application's main executable.
- * Also, this function assumes that the specified class is a subclass
- * of `NSWindow`.
- */
- void accesskit_macos_add_focus_forwarder_to_window_class(
- const char *class_name);
- #endif
- #if (defined(__linux__) || defined(__DragonFly__) || defined(__FreeBSD__) || \
- defined(__NetBSD__) || defined(__OpenBSD__))
- /**
- * All of the handlers will always be called from another thread.
- */
- struct accesskit_unix_adapter *accesskit_unix_adapter_new(
- accesskit_activation_handler_callback activation_handler,
- void *activation_handler_userdata,
- accesskit_action_handler_callback action_handler,
- void *action_handler_userdata,
- accesskit_deactivation_handler_callback deactivation_handler,
- void *deactivation_handler_userdata);
- #endif
- #if (defined(__linux__) || defined(__DragonFly__) || defined(__FreeBSD__) || \
- defined(__NetBSD__) || defined(__OpenBSD__))
- void accesskit_unix_adapter_free(struct accesskit_unix_adapter *adapter);
- #endif
- #if (defined(__linux__) || defined(__DragonFly__) || defined(__FreeBSD__) || \
- defined(__NetBSD__) || defined(__OpenBSD__))
- void accesskit_unix_adapter_set_root_window_bounds(
- struct accesskit_unix_adapter *adapter, struct accesskit_rect outer,
- struct accesskit_rect inner);
- #endif
- #if (defined(__linux__) || defined(__DragonFly__) || defined(__FreeBSD__) || \
- defined(__NetBSD__) || defined(__OpenBSD__))
- void accesskit_unix_adapter_update_if_active(
- struct accesskit_unix_adapter *adapter,
- accesskit_tree_update_factory update_factory,
- void *update_factory_userdata);
- #endif
- #if (defined(__linux__) || defined(__DragonFly__) || defined(__FreeBSD__) || \
- defined(__NetBSD__) || defined(__OpenBSD__))
- /**
- * Update the tree state based on whether the window is focused.
- */
- void accesskit_unix_adapter_update_window_focus_state(
- struct accesskit_unix_adapter *adapter, bool is_focused);
- #endif
- #if defined(_WIN32)
- /**
- * Memory is also freed when calling this function.
- */
- void accesskit_windows_queued_events_raise(
- struct accesskit_windows_queued_events *events);
- #endif
- #if defined(_WIN32)
- struct accesskit_windows_adapter *accesskit_windows_adapter_new(
- HWND hwnd, bool is_window_focused,
- accesskit_action_handler_callback action_handler,
- void *action_handler_userdata);
- #endif
- #if defined(_WIN32)
- void accesskit_windows_adapter_free(struct accesskit_windows_adapter *adapter);
- #endif
- #if defined(_WIN32)
- /**
- * You must call `accesskit_windows_queued_events_raise` on the returned
- * pointer. It can be null if the adapter is not active.
- */
- struct accesskit_windows_queued_events *
- accesskit_windows_adapter_update_if_active(
- struct accesskit_windows_adapter *adapter,
- accesskit_tree_update_factory update_factory,
- void *update_factory_userdata);
- #endif
- #if defined(_WIN32)
- /**
- * Update the tree state based on whether the window is focused.
- *
- * You must call `accesskit_windows_queued_events_raise` on the returned
- * pointer.
- */
- struct accesskit_windows_queued_events *
- accesskit_windows_adapter_update_window_focus_state(
- struct accesskit_windows_adapter *adapter, bool is_focused);
- #endif
- #if defined(_WIN32)
- struct accesskit_opt_lresult accesskit_windows_adapter_handle_wm_getobject(
- struct accesskit_windows_adapter *adapter, WPARAM wparam, LPARAM lparam,
- accesskit_activation_handler_callback activation_handler,
- void *activation_handler_userdata);
- #endif
- #if defined(_WIN32)
- /**
- * Creates a new Windows platform adapter using window subclassing.
- * This must be done before the window is shown or focused
- * for the first time.
- *
- * This must be called on the thread that owns the window. The activation
- * handler will always be called on that thread. The action handler
- * may or may not be called on that thread.
- *
- * # Panics
- *
- * Panics if the window is already visible.
- */
- struct accesskit_windows_subclassing_adapter *
- accesskit_windows_subclassing_adapter_new(
- HWND hwnd, accesskit_activation_handler_callback activation_handler,
- void *activation_handler_userdata,
- accesskit_action_handler_callback action_handler,
- void *action_handler_userdata);
- #endif
- #if defined(_WIN32)
- void accesskit_windows_subclassing_adapter_free(
- struct accesskit_windows_subclassing_adapter *adapter);
- #endif
- #if defined(_WIN32)
- /**
- * You must call `accesskit_windows_queued_events_raise` on the returned
- * pointer. It can be null if the adapter is not active.
- */
- struct accesskit_windows_queued_events *
- accesskit_windows_subclassing_adapter_update_if_active(
- struct accesskit_windows_subclassing_adapter *adapter,
- accesskit_tree_update_factory update_factory,
- void *update_factory_userdata);
- #endif
- #ifdef __cplusplus
- } // extern "C"
- #endif // __cplusplus
- #endif /* ACCESSKIT_H */
|