зеркало из https://github.com/mozilla/gecko-dev.git
170 строки
4.5 KiB
Objective-C
170 строки
4.5 KiB
Objective-C
/* clang-format off */
|
|
/* -*- Mode: Objective-C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* clang-format on */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#import <Cocoa/Cocoa.h>
|
|
|
|
#import "MOXAccessibleProtocol.h"
|
|
#import "GeckoTextMarker.h"
|
|
|
|
@interface MOXTextMarkerDelegate : NSObject <MOXTextMarkerSupport> {
|
|
mozilla::a11y::Accessible* mGeckoDocAccessible;
|
|
AXTextMarkerRangeRef mSelection;
|
|
AXTextMarkerRef mCaret;
|
|
AXTextMarkerRef mPrevCaret;
|
|
int32_t mCaretMoveGranularity;
|
|
}
|
|
|
|
+ (id)getOrCreateForDoc:(mozilla::a11y::Accessible*)aDoc;
|
|
|
|
+ (void)destroyForDoc:(mozilla::a11y::Accessible*)aDoc;
|
|
|
|
- (id)initWithDoc:(mozilla::a11y::Accessible*)aDoc;
|
|
|
|
- (void)dealloc;
|
|
|
|
- (void)setSelectionFrom:(mozilla::a11y::Accessible*)startContainer
|
|
at:(int32_t)startOffset
|
|
to:(mozilla::a11y::Accessible*)endContainer
|
|
at:(int32_t)endOffset;
|
|
|
|
- (void)setCaretOffset:(mozilla::a11y::Accessible*)container
|
|
at:(int32_t)offset
|
|
moveGranularity:(int32_t)granularity;
|
|
|
|
- (NSDictionary*)selectionChangeInfo;
|
|
|
|
- (void)invalidateSelection;
|
|
|
|
- (mozilla::a11y::GeckoTextMarkerRange)selection;
|
|
|
|
// override
|
|
- (AXTextMarkerRef)moxStartTextMarker;
|
|
|
|
// override
|
|
- (AXTextMarkerRef)moxEndTextMarker;
|
|
|
|
// override
|
|
- (AXTextMarkerRangeRef)moxSelectedTextMarkerRange;
|
|
|
|
// override
|
|
- (NSNumber*)moxLengthForTextMarkerRange:(AXTextMarkerRangeRef)textMarkerRange;
|
|
|
|
// override
|
|
- (NSString*)moxStringForTextMarkerRange:(AXTextMarkerRangeRef)textMarkerRange;
|
|
|
|
// override
|
|
- (AXTextMarkerRangeRef)moxTextMarkerRangeForUnorderedTextMarkers:
|
|
(NSArray*)textMarkers;
|
|
|
|
// override
|
|
- (AXTextMarkerRef)moxStartTextMarkerForTextMarkerRange:
|
|
(AXTextMarkerRangeRef)textMarkerRange;
|
|
|
|
// override
|
|
- (AXTextMarkerRef)moxEndTextMarkerForTextMarkerRange:
|
|
(AXTextMarkerRangeRef)textMarkerRange;
|
|
|
|
// override
|
|
- (AXTextMarkerRangeRef)moxLeftWordTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef)textMarker;
|
|
|
|
// override
|
|
- (AXTextMarkerRangeRef)moxRightWordTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef)textMarker;
|
|
|
|
// override
|
|
- (AXTextMarkerRangeRef)moxLineTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef)textMarker;
|
|
|
|
// override
|
|
- (AXTextMarkerRangeRef)moxLeftLineTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef)textMarker;
|
|
|
|
// override
|
|
- (AXTextMarkerRangeRef)moxRightLineTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef)textMarker;
|
|
|
|
// override
|
|
- (AXTextMarkerRangeRef)moxParagraphTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef)textMarker;
|
|
|
|
// override
|
|
- (AXTextMarkerRangeRef)moxStyleTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef)textMarker;
|
|
|
|
// override
|
|
- (AXTextMarkerRef)moxNextTextMarkerForTextMarker:(AXTextMarkerRef)textMarker;
|
|
|
|
// override
|
|
- (AXTextMarkerRef)moxPreviousTextMarkerForTextMarker:
|
|
(AXTextMarkerRef)textMarker;
|
|
|
|
// override
|
|
- (NSAttributedString*)moxAttributedStringForTextMarkerRange:
|
|
(AXTextMarkerRangeRef)textMarkerRange;
|
|
|
|
// override
|
|
- (NSValue*)moxBoundsForTextMarkerRange:(AXTextMarkerRangeRef)textMarkerRange;
|
|
|
|
// override
|
|
- (id)moxUIElementForTextMarker:(AXTextMarkerRef)textMarker;
|
|
|
|
// override
|
|
- (AXTextMarkerRangeRef)moxTextMarkerRangeForUIElement:(id)element;
|
|
|
|
// override
|
|
- (NSString*)moxMozDebugDescriptionForTextMarker:(AXTextMarkerRef)textMarker;
|
|
|
|
// override
|
|
- (void)moxSetSelectedTextMarkerRange:(AXTextMarkerRangeRef)textMarkerRange;
|
|
|
|
@end
|
|
|
|
namespace mozilla {
|
|
namespace a11y {
|
|
|
|
enum AXTextEditType {
|
|
AXTextEditTypeUnknown,
|
|
AXTextEditTypeDelete,
|
|
AXTextEditTypeInsert,
|
|
AXTextEditTypeTyping,
|
|
AXTextEditTypeDictation,
|
|
AXTextEditTypeCut,
|
|
AXTextEditTypePaste,
|
|
AXTextEditTypeAttributesChange
|
|
};
|
|
|
|
enum AXTextStateChangeType {
|
|
AXTextStateChangeTypeUnknown,
|
|
AXTextStateChangeTypeEdit,
|
|
AXTextStateChangeTypeSelectionMove,
|
|
AXTextStateChangeTypeSelectionExtend
|
|
};
|
|
|
|
enum AXTextSelectionDirection {
|
|
AXTextSelectionDirectionUnknown,
|
|
AXTextSelectionDirectionBeginning,
|
|
AXTextSelectionDirectionEnd,
|
|
AXTextSelectionDirectionPrevious,
|
|
AXTextSelectionDirectionNext,
|
|
AXTextSelectionDirectionDiscontiguous
|
|
};
|
|
|
|
enum AXTextSelectionGranularity {
|
|
AXTextSelectionGranularityUnknown,
|
|
AXTextSelectionGranularityCharacter,
|
|
AXTextSelectionGranularityWord,
|
|
AXTextSelectionGranularityLine,
|
|
AXTextSelectionGranularitySentence,
|
|
AXTextSelectionGranularityParagraph,
|
|
AXTextSelectionGranularityPage,
|
|
AXTextSelectionGranularityDocument,
|
|
AXTextSelectionGranularityAll
|
|
};
|
|
} // namespace a11y
|
|
} // namespace mozilla
|