MOXTextMarkerDelegate.h (4646B)
1 /* clang-format off */ 2 /* -*- Mode: Objective-C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 3 /* clang-format on */ 4 /* This Source Code Form is subject to the terms of the Mozilla Public 5 * License, v. 2.0. If a copy of the MPL was not distributed with this 6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 7 8 #import <Cocoa/Cocoa.h> 9 10 #import "MOXAccessibleProtocol.h" 11 #import "GeckoTextMarker.h" 12 13 @interface MOXTextMarkerDelegate : NSObject <MOXTextMarkerSupport> { 14 mozilla::a11y::Accessible* mGeckoDocAccessible; 15 AXTextMarkerRangeRef mSelection; 16 AXTextMarkerRef mCaret; 17 AXTextMarkerRef mPrevCaret; 18 int32_t mCaretMoveGranularity; 19 } 20 21 + (id)getOrCreateForDoc:(mozilla::a11y::Accessible*)aDoc; 22 23 + (void)destroyForDoc:(mozilla::a11y::Accessible*)aDoc; 24 25 - (id)initWithDoc:(mozilla::a11y::Accessible*)aDoc; 26 27 - (void)dealloc; 28 29 - (void)setSelectionFrom:(mozilla::a11y::Accessible*)startContainer 30 at:(int32_t)startOffset 31 to:(mozilla::a11y::Accessible*)endContainer 32 at:(int32_t)endOffset; 33 34 - (void)setCaretOffset:(mozilla::a11y::Accessible*)container 35 at:(int32_t)offset 36 moveGranularity:(int32_t)granularity; 37 38 - (NSDictionary*)selectionChangeInfo; 39 40 - (void)invalidateSelection; 41 42 - (mozilla::a11y::GeckoTextMarkerRange)selection; 43 44 // override 45 - (AXTextMarkerRef)moxStartTextMarker; 46 47 // override 48 - (AXTextMarkerRef)moxEndTextMarker; 49 50 // override 51 - (AXTextMarkerRangeRef)moxSelectedTextMarkerRange; 52 53 // override 54 - (NSNumber*)moxLengthForTextMarkerRange:(AXTextMarkerRangeRef)textMarkerRange; 55 56 // override 57 - (NSString*)moxStringForTextMarkerRange:(AXTextMarkerRangeRef)textMarkerRange; 58 59 // override 60 - (AXTextMarkerRangeRef)moxTextMarkerRangeForUnorderedTextMarkers: 61 (NSArray*)textMarkers; 62 63 // override 64 - (AXTextMarkerRef)moxStartTextMarkerForTextMarkerRange: 65 (AXTextMarkerRangeRef)textMarkerRange; 66 67 // override 68 - (AXTextMarkerRef)moxEndTextMarkerForTextMarkerRange: 69 (AXTextMarkerRangeRef)textMarkerRange; 70 71 // override 72 - (AXTextMarkerRangeRef)moxLeftWordTextMarkerRangeForTextMarker: 73 (AXTextMarkerRef)textMarker; 74 75 // override 76 - (AXTextMarkerRangeRef)moxRightWordTextMarkerRangeForTextMarker: 77 (AXTextMarkerRef)textMarker; 78 79 // override 80 - (AXTextMarkerRangeRef)moxLineTextMarkerRangeForTextMarker: 81 (AXTextMarkerRef)textMarker; 82 83 // override 84 - (AXTextMarkerRangeRef)moxLeftLineTextMarkerRangeForTextMarker: 85 (AXTextMarkerRef)textMarker; 86 87 // override 88 - (AXTextMarkerRangeRef)moxRightLineTextMarkerRangeForTextMarker: 89 (AXTextMarkerRef)textMarker; 90 91 // override 92 - (AXTextMarkerRangeRef)moxParagraphTextMarkerRangeForTextMarker: 93 (AXTextMarkerRef)textMarker; 94 95 // override 96 - (AXTextMarkerRangeRef)moxStyleTextMarkerRangeForTextMarker: 97 (AXTextMarkerRef)textMarker; 98 99 // override 100 - (AXTextMarkerRef)moxNextTextMarkerForTextMarker:(AXTextMarkerRef)textMarker; 101 102 // override 103 - (AXTextMarkerRef)moxPreviousTextMarkerForTextMarker: 104 (AXTextMarkerRef)textMarker; 105 106 // override 107 - (NSAttributedString*)moxAttributedStringForTextMarkerRange: 108 (AXTextMarkerRangeRef)textMarkerRange; 109 110 // override 111 - (NSValue*)moxBoundsForTextMarkerRange:(AXTextMarkerRangeRef)textMarkerRange; 112 113 // override 114 - (id)moxUIElementForTextMarker:(AXTextMarkerRef)textMarker; 115 116 // override 117 - (AXTextMarkerRangeRef)moxTextMarkerRangeForUIElement:(id)element; 118 119 // override 120 - (NSString*)moxMozDebugDescriptionForTextMarker:(AXTextMarkerRef)textMarker; 121 122 // override 123 - (void)moxSetSelectedTextMarkerRange:(AXTextMarkerRangeRef)textMarkerRange; 124 125 @end 126 127 namespace mozilla { 128 namespace a11y { 129 130 enum AXTextEditType { 131 AXTextEditTypeUnknown, 132 AXTextEditTypeDelete, 133 AXTextEditTypeInsert, 134 AXTextEditTypeTyping, 135 AXTextEditTypeDictation, 136 AXTextEditTypeCut, 137 AXTextEditTypePaste, 138 AXTextEditTypeAttributesChange 139 }; 140 141 enum AXTextStateChangeType { 142 AXTextStateChangeTypeUnknown, 143 AXTextStateChangeTypeEdit, 144 AXTextStateChangeTypeSelectionMove, 145 AXTextStateChangeTypeSelectionExtend 146 }; 147 148 enum AXTextSelectionDirection { 149 AXTextSelectionDirectionUnknown, 150 AXTextSelectionDirectionBeginning, 151 AXTextSelectionDirectionEnd, 152 AXTextSelectionDirectionPrevious, 153 AXTextSelectionDirectionNext, 154 AXTextSelectionDirectionDiscontiguous 155 }; 156 157 enum AXTextSelectionGranularity { 158 AXTextSelectionGranularityUnknown, 159 AXTextSelectionGranularityCharacter, 160 AXTextSelectionGranularityWord, 161 AXTextSelectionGranularityLine, 162 AXTextSelectionGranularitySentence, 163 AXTextSelectionGranularityParagraph, 164 AXTextSelectionGranularityPage, 165 AXTextSelectionGranularityDocument, 166 AXTextSelectionGranularityAll 167 }; 168 } // namespace a11y 169 } // namespace mozilla