mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-22 13:10:59 +00:00
NSTextAlternatives: implement text alternatives class
Implement NSTextAlternatives, a class usually used for choosing alternatives from a basic string usually for dictation purposes.
This commit is contained in:
parent
fcb11edca8
commit
ac26b6725b
4 changed files with 140 additions and 0 deletions
|
@ -181,6 +181,7 @@
|
|||
#import <AppKit/NSTableView.h>
|
||||
#import <AppKit/NSTabView.h>
|
||||
#import <AppKit/NSTabViewItem.h>
|
||||
#import <AppKit/NSTextAlternatives.h>
|
||||
#import <AppKit/NSTextAttachment.h>
|
||||
#import <AppKit/NSTextContainer.h>
|
||||
#import <AppKit/NSTextList.h>
|
||||
|
|
60
Headers/AppKit/NSTextAlternatives.h
Normal file
60
Headers/AppKit/NSTextAlternatives.h
Normal file
|
@ -0,0 +1,60 @@
|
|||
/*
|
||||
NSTextAlternatives.m
|
||||
|
||||
Select an alternative for a given text.
|
||||
|
||||
Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
|
||||
Author: Daniel Ferreira <dtf@stanford.edu>
|
||||
Date: 2017
|
||||
|
||||
This file is part of the GNUstep GUI 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 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; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef _GNUstep_H_NSTextAlternatives
|
||||
#define _GNUstep_H_NSTextAlternatives
|
||||
|
||||
#import <AppKit/AppKitDefines.h>
|
||||
#import <Foundation/NSString.h>
|
||||
#import <GNUstepBase/GSVersionMacros.h>
|
||||
|
||||
#if OS_API_VERSION(MAC_OS_X_VERSION_10_8, GS_API_LATEST)
|
||||
|
||||
@interface NSTextAlternatives : NSObject {
|
||||
NSString *_primaryString;
|
||||
NSArray *_alternativeStrings;
|
||||
}
|
||||
- (id)initWithPrimaryString:(NSString *)primaryString
|
||||
alternativeStrings:(NSArray *)alternativeStrings;
|
||||
|
||||
#if GS_HAS_DECLARED_PROPERTIES
|
||||
@property (readonly, copy) NSString *primaryString;
|
||||
@property (readonly, copy) NSArray *alternativeStrings;
|
||||
#else
|
||||
- (NSString *)primaryString;
|
||||
- (NSArray *)alternativeStrings;
|
||||
#endif
|
||||
|
||||
- (void)noteSelectedAlternativeString:(NSString *)alternativeString;
|
||||
@end
|
||||
|
||||
APPKIT_EXPORT NSString *NSTextAlternativesSelectedAlternativeStringNotification;
|
||||
|
||||
#endif
|
||||
#endif
|
|
@ -178,6 +178,7 @@ NSTableHeaderView.m \
|
|||
NSTableHeaderCell.m \
|
||||
NSTableView.m \
|
||||
NSText.m \
|
||||
NSTextAlternatives.m \
|
||||
NSTextAttachment.m \
|
||||
NSTextBlock.m \
|
||||
NSTextContainer.m \
|
||||
|
@ -407,6 +408,7 @@ NSTableHeaderCell.h \
|
|||
NSTableHeaderView.h \
|
||||
NSTableView.h \
|
||||
NSText.h \
|
||||
NSTextAlternatives.h \
|
||||
NSTextAttachment.h \
|
||||
NSTextContainer.h \
|
||||
NSTextField.h \
|
||||
|
|
77
Source/NSTextAlternatives.m
Normal file
77
Source/NSTextAlternatives.m
Normal file
|
@ -0,0 +1,77 @@
|
|||
/*
|
||||
NSTextAlternatives.m
|
||||
|
||||
Select an alternative for a given text.
|
||||
|
||||
Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
|
||||
Author: Daniel Ferreira <dtf@stanford.edu>
|
||||
Date: 2017
|
||||
|
||||
This file is part of the GNUstep GUI 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 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; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#import <AppKit/NSTextAlternatives.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NSString *NSTextAlternativesSelectedAlternativeStringNotification =
|
||||
@"NSTextAlternativesSelectedAlternativeStringNotification";
|
||||
|
||||
@implementation NSTextAlternatives
|
||||
- (id)initWithPrimaryString:(NSString *)primaryString
|
||||
alternativeStrings:(NSArray *)alternativeStrings
|
||||
{
|
||||
if ((self = [super init]))
|
||||
{
|
||||
_primaryString = RETAIN(primaryString);
|
||||
_alternativeStrings = RETAIN(alternativeStrings);
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSString *)primaryString
|
||||
{
|
||||
return [_primaryString copy];
|
||||
}
|
||||
|
||||
- (NSArray *)alternativeStrings
|
||||
{
|
||||
return [_alternativeStrings copy];
|
||||
}
|
||||
|
||||
- (void)noteSelectedAlternativeString:(NSString *)alternativeString
|
||||
{
|
||||
NSDictionary *dict =
|
||||
[NSDictionary dictionaryWithObject: alternativeString
|
||||
forKey: @"NSAlternativeString"];
|
||||
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
postNotificationName: NSTextAlternativesSelectedAlternativeStringNotification
|
||||
object: self
|
||||
userInfo: dict];
|
||||
}
|
||||
- (void)dealloc
|
||||
{
|
||||
RELEASE(_primaryString);
|
||||
RELEASE(_alternativeStrings);
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
@end
|
Loading…
Reference in a new issue