mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-14 16:10:54 +00:00
168 lines
4.9 KiB
Objective-C
168 lines
4.9 KiB
Objective-C
/* Interface of class NSTextFinder
|
|
Copyright (C) 2020 Free Software Foundation, Inc.
|
|
|
|
By: Gregory John Casamento
|
|
Date: 02-08-2020
|
|
|
|
This file is part of the GNUstep Library.
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with this library; if not, write to the Free
|
|
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Boston, MA 02110 USA.
|
|
*/
|
|
|
|
#ifndef _NSTextFinder_h_GNUSTEP_GUI_INCLUDE
|
|
#define _NSTextFinder_h_GNUSTEP_GUI_INCLUDE
|
|
|
|
#import <Foundation/NSObject.h>
|
|
#import <Foundation/NSRange.h>
|
|
#import <Foundation/NSGeometry.h>
|
|
|
|
#import <AppKit/AppKitDefines.h>
|
|
#import <AppKit/NSNibDeclarations.h>
|
|
|
|
#if OS_API_VERSION(MAC_OS_X_VERSION_10_7, GS_API_LATEST)
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
@class NSArray, NSView;
|
|
@protocol NSTextFinderClient, NSTextFinderBarContainer;
|
|
|
|
enum
|
|
{
|
|
NSTextFinderActionShowFindInterface = 1,
|
|
NSTextFinderActionNextMatch,
|
|
NSTextFinderActionPreviousMatch,
|
|
NSTextFinderActionReplaceAll,
|
|
NSTextFinderActionReplace,
|
|
NSTextFinderActionReplaceAndFind,
|
|
NSTextFinderActionSetSearchString,
|
|
NSTextFinderActionReplaceAllInSelection,
|
|
NSTextFinderActionSelectAll,
|
|
NSTextFinderActionSelectAllInSelection,
|
|
NSTextFinderActionHideFindInterface,
|
|
NSTextFinderActionShowReplaceInterface,
|
|
NSTextFinderActionHideReplaceInterface
|
|
};
|
|
typedef NSInteger NSTextFinderAction;
|
|
|
|
enum
|
|
{
|
|
NSTextFinderMatchingTypeContains = 0,
|
|
NSTextFinderMatchingTypeStartsWith,
|
|
NSTextFinderMatchingTypeFullWord,
|
|
NSTextFinderMatchingTypeEndsWith
|
|
};
|
|
typedef NSInteger NSTextFinderMatchingType;
|
|
|
|
typedef NSString* NSPasteboardTypeTextFinderOptionKey;
|
|
|
|
APPKIT_EXPORT NSPasteboardTypeTextFinderOptionKey const NSTextFinderCaseInsensitiveKey;
|
|
APPKIT_EXPORT NSPasteboardTypeTextFinderOptionKey const NSTextFinderMatchingTypeKey;
|
|
|
|
APPKIT_EXPORT_CLASS
|
|
@interface NSTextFinder : NSObject <NSCoding>
|
|
{
|
|
IBOutlet id<NSTextFinderClient> _client;
|
|
IBOutlet id<NSTextFinderBarContainer> _findBarContainer;
|
|
|
|
BOOL _findIndicatorNeedsUpdate;
|
|
BOOL _incrementalSearchingEnabled;
|
|
BOOL _incrementalSearchingShouldDimContentView;
|
|
NSArray *_incrementalMatchRanges;
|
|
|
|
id _finder;
|
|
NSInteger _tag;
|
|
}
|
|
|
|
// Validating and performing
|
|
- (void) performAction: (NSTextFinderAction)op;
|
|
- (BOOL) validateAction: (NSTextFinderAction)op;
|
|
- (void) cancelFindIndicator;
|
|
|
|
// Properties
|
|
- (id<NSTextFinderClient>) client;
|
|
- (void) setClient: (id<NSTextFinderClient>) client;
|
|
- (id<NSTextFinderBarContainer>) findBarContainer;
|
|
- (void) setFindBarContainer: (id<NSTextFinderBarContainer>) findBarContainer;
|
|
- (BOOL) findIndicatorNeedsUpdate;
|
|
- (void) setFindIndicatorNeedsUpdate: (BOOL)flag;
|
|
- (BOOL) isIncrementalSearchingEnabled;
|
|
- (void) setIncrementalSearchingEnabled: (BOOL)flag;
|
|
- (BOOL) incrementalSearchingShouldDimContentView;
|
|
- (void) setIncrementalSearchingShouldDimContentView: (BOOL)flag;
|
|
- (NSArray *) incrementalMatchRanges;
|
|
|
|
+ (void) drawIncrementalMatchHighlightInRect: (NSRect)rect;
|
|
|
|
- (void) noteClientStringWillChange;
|
|
|
|
@end
|
|
|
|
// PROTOCOLS
|
|
|
|
@protocol NSTextFinderClient <NSObject>
|
|
#if GS_PROTOCOLS_HAVE_OPTIONAL
|
|
@optional
|
|
#endif
|
|
- (BOOL) isSelectable;
|
|
- (BOOL) allowsMultipleSelection;
|
|
- (BOOL) isEditable;
|
|
- (NSString *) string;
|
|
- (NSString *) stringAtIndex: (NSUInteger)characterIndex
|
|
effectiveRange: (NSRangePointer)outRange
|
|
endsWithSearchBoundary: (BOOL *)outFlag;
|
|
- (NSUInteger) stringLength;
|
|
- (NSRange) firstSelectedRange;
|
|
- (NSArray *) selectedRanges;
|
|
- (void) setSelectedRanges: (NSArray *)ranges;
|
|
- (void) scrollRangeToVisible:(NSRange)range;
|
|
- (BOOL) shouldReplaceCharactersInRanges: (NSArray *)ranges withStrings: (NSArray *)strings;
|
|
- (void) replaceCharactersInRange: (NSRange)range withString: (NSString *)string;
|
|
- (void) didReplaceCharacters;
|
|
- (NSView *) contentViewAtIndex: (NSUInteger)index effectiveCharacterRange: (NSRangePointer)outRange;
|
|
- (NSArray *) rectsForCharacterRange: (NSRange)range;
|
|
- (NSArray *) visibleCharacterRanges;
|
|
- (void) drawCharactersInRange: (NSRange)range forContentView: (NSView *)view;
|
|
|
|
@end
|
|
|
|
|
|
@protocol NSTextFinderBarContainer <NSObject>
|
|
#if GS_PROTOCOLS_HAVE_OPTIONAL
|
|
@required
|
|
#endif
|
|
- (NSView *) findBarView;
|
|
- (void) setFindBarView: (NSView *)view;
|
|
- (BOOL) isfindBarVisible;
|
|
- (void) setFindBarVisible: (BOOL)flag;
|
|
- (void) findBarViewDidChangeHeight;
|
|
|
|
#if GS_PROTOCOLS_HAVE_OPTIONAL
|
|
@optional
|
|
#endif
|
|
- (NSView *) contentView;
|
|
|
|
@end
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif
|
|
|
|
#endif /* GS_API_MACOSX */
|
|
|
|
#endif /* _NSTextFinder_h_GNUSTEP_GUI_INCLUDE */
|
|
|