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 #include "AccessibleOrProxy.h" 14 15 @interface MOXTextMarkerDelegate : NSObject <MOXTextMarkerSupport> { 16 mozilla::a11y::AccessibleOrProxy mGeckoDocAccessible; 17 id mSelection; 18 id mCaret; 19 id mPrevCaret; 20 } 21 22 + (id)getOrCreateForDoc:(mozilla::a11y::AccessibleOrProxy)aDoc; 23 24 + (void)destroyForDoc:(mozilla::a11y::AccessibleOrProxy)aDoc; 25 26 - (id)initWithDoc:(mozilla::a11y::AccessibleOrProxy)aDoc; 27 28 - (void)dealloc; 29 30 - (void)setSelectionFrom:(mozilla::a11y::AccessibleOrProxy)startContainer 31 at:(int32_t)startOffset 32 to:(mozilla::a11y::AccessibleOrProxy)endContainer 33 at:(int32_t)endOffset; 34 35 - (void)setCaretOffset:(mozilla::a11y::AccessibleOrProxy)container 36 at:(int32_t)offset; 37 38 - (NSDictionary*)selectionChangeInfo; 39 40 - (void)invalidateSelection; 41 42 - (mozilla::a11y::GeckoTextMarkerRange)selection; 43 44 // override 45 - (id)moxStartTextMarker; 46 47 // override 48 - (id)moxEndTextMarker; 49 50 // override 51 - (id)moxSelectedTextMarkerRange; 52 53 // override 54 - (NSNumber*)moxLengthForTextMarkerRange:(id)textMarkerRange; 55 56 // override 57 - (NSString*)moxStringForTextMarkerRange:(id)textMarkerRange; 58 59 // override 60 - (id)moxTextMarkerRangeForUnorderedTextMarkers:(NSArray*)textMarkers; 61 62 // override 63 - (id)moxStartTextMarkerForTextMarkerRange:(id)textMarkerRange; 64 65 // override 66 - (id)moxEndTextMarkerForTextMarkerRange:(id)textMarkerRange; 67 68 // override 69 - (id)moxLeftWordTextMarkerRangeForTextMarker:(id)textMarker; 70 71 // override 72 - (id)moxRightWordTextMarkerRangeForTextMarker:(id)textMarker; 73 74 // override 75 - (id)moxLineTextMarkerRangeForTextMarker:(id)textMarker; 76 77 // override 78 - (id)moxLeftLineTextMarkerRangeForTextMarker:(id)textMarker; 79 80 // override 81 - (id)moxRightLineTextMarkerRangeForTextMarker:(id)textMarker; 82 83 // override 84 - (id)moxParagraphTextMarkerRangeForTextMarker:(id)textMarker; 85 86 // override 87 - (id)moxStyleTextMarkerRangeForTextMarker:(id)textMarker; 88 89 // override 90 - (id)moxNextTextMarkerForTextMarker:(id)textMarker; 91 92 // override 93 - (id)moxPreviousTextMarkerForTextMarker:(id)textMarker; 94 95 // override 96 - (NSAttributedString*)moxAttributedStringForTextMarkerRange: 97 (id)textMarkerRange; 98 99 // override 100 - (NSValue*)moxBoundsForTextMarkerRange:(id)textMarkerRange; 101 102 // override 103 - (id)moxUIElementForTextMarker:(id)textMarker; 104 105 // override 106 - (id)moxTextMarkerRangeForUIElement:(id)element; 107 108 // override 109 - (NSString*)moxMozDebugDescriptionForTextMarker:(id)textMarker; 110 111 // override 112 - (void)moxSetSelectedTextMarkerRange:(id)textMarkerRange; 113 114 @end 115 116 namespace mozilla { 117 namespace a11y { 118 119 enum AXTextEditType { 120 AXTextEditTypeUnknown, 121 AXTextEditTypeDelete, 122 AXTextEditTypeInsert, 123 AXTextEditTypeTyping, 124 AXTextEditTypeDictation, 125 AXTextEditTypeCut, 126 AXTextEditTypePaste, 127 AXTextEditTypeAttributesChange 128 }; 129 130 enum AXTextStateChangeType { 131 AXTextStateChangeTypeUnknown, 132 AXTextStateChangeTypeEdit, 133 AXTextStateChangeTypeSelectionMove, 134 AXTextStateChangeTypeSelectionExtend 135 }; 136 137 enum AXTextSelectionDirection { 138 AXTextSelectionDirectionUnknown, 139 AXTextSelectionDirectionBeginning, 140 AXTextSelectionDirectionEnd, 141 AXTextSelectionDirectionPrevious, 142 AXTextSelectionDirectionNext, 143 AXTextSelectionDirectionDiscontiguous 144 }; 145 146 enum AXTextSelectionGranularity { 147 AXTextSelectionGranularityUnknown, 148 AXTextSelectionGranularityCharacter, 149 AXTextSelectionGranularityWord, 150 AXTextSelectionGranularityLine, 151 AXTextSelectionGranularitySentence, 152 AXTextSelectionGranularityParagraph, 153 AXTextSelectionGranularityPage, 154 AXTextSelectionGranularityDocument, 155 AXTextSelectionGranularityAll 156 }; 157 } 158 } 159