mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-24 03:44:33 +00:00
Define new-style NSTextAlignment* constants on GUI for compatibility purposes with new macOS versions.
325 lines
9.6 KiB
Objective-C
325 lines
9.6 KiB
Objective-C
/* -*-objc-*-
|
|
NSText.h
|
|
|
|
The text object
|
|
|
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
|
|
|
Author: Scott Christley <scottc@net-community.com>
|
|
Date: 1996
|
|
Author: Felipe A. Rodriguez <far@ix.netcom.com>
|
|
Date: July 1998
|
|
Author: Daniel Böhringer <boehring@biomed.ruhr-uni-bochum.de>
|
|
Date: August 1998
|
|
Author: Nicola Pero <n.pero@mi.flashnet.it>
|
|
Date: December 2000
|
|
|
|
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_NSText
|
|
#define _GNUstep_H_NSText
|
|
|
|
/*
|
|
* The NSText class is now an abstract class. When you allocate an
|
|
* instance of NSText, an instance of NSTextView is always allocated
|
|
* instead.
|
|
*
|
|
* But you can still subclass NSText to implement your own text
|
|
* editing class not derived from NSTextView. NSText declares general
|
|
* methods that a text editing object should have; it has some helper
|
|
* methods which are simple wrappers around the real basic editing
|
|
* methods. The real editing methods are not implemented in NSText,
|
|
* which is why it is abstract. To make a working subclass, you need to
|
|
* implement these methods, marked as "PRIMITIVE" below.
|
|
*
|
|
* The working subclass could potentially be implemented in absolutely
|
|
* *any* way you want. I have been told that some versions of Emacs can
|
|
* be embedded as an X subwindow inside alien widgets and windows - so
|
|
* yes, potentially if you are able to figure out how to embed Emacs
|
|
* inside the GNUstep NSView tree, you can write a subclass of NSText
|
|
* which just uses Emacs. */
|
|
|
|
#import <Foundation/NSObject.h>
|
|
#import <Foundation/NSRange.h>
|
|
#import <AppKit/NSView.h>
|
|
#import <AppKit/NSSpellProtocol.h>
|
|
//#import <AppKit/NSStringDrawing.h>
|
|
|
|
@class NSAttributedString;
|
|
@class NSData;
|
|
@class NSNotification;
|
|
@class NSString;
|
|
@class NSColor;
|
|
@class NSFont;
|
|
|
|
typedef NSInteger NSTextAlignment;
|
|
enum {
|
|
NSLeftTextAlignment = 0,
|
|
NSRightTextAlignment,
|
|
NSCenterTextAlignment,
|
|
NSJustifiedTextAlignment,
|
|
NSNaturalTextAlignment
|
|
};
|
|
|
|
#if OS_API_VERSION(MAC_OS_X_VERSION_10_11, GS_API_LATEST)
|
|
enum {
|
|
NSTextAlignmentLeft = NSLeftTextAlignment,
|
|
NSTextAlignmentRight = NSRightTextAlignment,
|
|
NSTextAlignmentCenter = NSCenterTextAlignment,
|
|
NSTextAlignmentJustified = NSJustifiedTextAlignment,
|
|
NSTextAlignmentNatural = NSNaturalTextAlignment
|
|
};
|
|
#endif
|
|
|
|
enum {
|
|
NSTextWritingDirectionEmbedding = (0 << 1),
|
|
NSTextWritingDirectionOverride = (1 << 1)
|
|
};
|
|
|
|
enum {
|
|
NSIllegalTextMovement = 0,
|
|
NSReturnTextMovement = 0x10,
|
|
NSTabTextMovement = 0x11,
|
|
NSBacktabTextMovement = 0x12,
|
|
NSLeftTextMovement = 0x13,
|
|
NSRightTextMovement = 0x14,
|
|
NSUpTextMovement = 0x15,
|
|
NSDownTextMovement = 0x16,
|
|
NSCancelTextMovement = 0x17,
|
|
NSOtherTextMovement = 0
|
|
};
|
|
|
|
enum {
|
|
NSParagraphSeparatorCharacter = 0x2029,
|
|
NSLineSeparatorCharacter = 0x2028,
|
|
NSTabCharacter = 0x0009,
|
|
NSFormFeedCharacter = 0x000c,
|
|
NSNewlineCharacter = 0x000a,
|
|
NSCarriageReturnCharacter = 0x000d,
|
|
NSEnterCharacter = 0x0003,
|
|
NSBackspaceCharacter = 0x0008,
|
|
NSBackTabCharacter = 0x0019,
|
|
NSDeleteCharacter = 0x007f,
|
|
};
|
|
|
|
|
|
/* The following are required by the original openstep doc. */
|
|
enum {
|
|
NSBackspaceKey = 8,
|
|
NSCarriageReturnKey = 13,
|
|
NSDeleteKey = 0x7f,
|
|
NSBacktabKey = 25
|
|
};
|
|
|
|
@interface NSText : NSView <NSChangeSpelling, NSIgnoreMisspelledWords>
|
|
{
|
|
}
|
|
|
|
/*
|
|
* Getting and Setting Contents
|
|
*/
|
|
/* these aren't in OPENSTEP */
|
|
- (void) replaceCharactersInRange: (NSRange)aRange
|
|
withRTF: (NSData*)rtfData;
|
|
- (void) replaceCharactersInRange: (NSRange)aRange
|
|
withRTFD: (NSData*)rtfdData;
|
|
/* PRIMITIVE */
|
|
- (void) replaceCharactersInRange: (NSRange)aRange
|
|
withString: (NSString*)aString;
|
|
/* PRIMITIVE */
|
|
-(void) replaceCharactersInRange: (NSRange)aRange /* GNUstep extension */
|
|
withAttributedString: (NSAttributedString *)attrString;
|
|
/* PRIMITIVE */
|
|
- (void) setString: (NSString*)aString;
|
|
/* PRIMITIVE */
|
|
- (NSString*) string;
|
|
|
|
/*
|
|
* Old fashioned OpenStep methods (wrappers for the previous ones)
|
|
*/
|
|
- (void) replaceRange: (NSRange)aRange withString: (NSString*)aString; /* not OPENSTEP */
|
|
- (void) replaceRange: (NSRange)aRange withRTF: (NSData*)rtfData;
|
|
- (void) replaceRange: (NSRange)aRange withRTFD: (NSData*)rtfdData;
|
|
- (void) setText: (NSString*)aString;
|
|
- (void) setText: (NSString*)aString range: (NSRange)aRange; /* not OPENSTEP */
|
|
- (NSString*) text;
|
|
|
|
/*
|
|
* Graphic attributes
|
|
*/
|
|
/* PRIMITIVE */
|
|
- (NSColor*) backgroundColor;
|
|
/* PRIMITIVE */
|
|
- (BOOL) drawsBackground;
|
|
/* PRIMITIVE */
|
|
- (void) setBackgroundColor: (NSColor*)color;
|
|
/* PRIMITIVE */
|
|
- (void) setDrawsBackground: (BOOL)flag;
|
|
|
|
/*
|
|
* Managing Global Characteristics
|
|
*/
|
|
- (BOOL) importsGraphics; /* PRIMITIVE */
|
|
- (BOOL) isEditable; /* PRIMITIVE */
|
|
- (BOOL) isFieldEditor; /* PRIMITIVE */
|
|
- (BOOL) isRichText; /* PRIMITIVE */
|
|
- (BOOL) isSelectable; /* PRIMITIVE */
|
|
- (void) setEditable: (BOOL)flag; /* PRIMITIVE */
|
|
- (void) setFieldEditor: (BOOL)flag; /* PRIMITIVE */
|
|
- (void) setImportsGraphics: (BOOL)flag; /* PRIMITIVE */
|
|
- (void) setRichText: (BOOL)flag; /* PRIMITIVE */
|
|
- (void) setSelectable: (BOOL)flag; /* PRIMITIVE */
|
|
|
|
/*
|
|
* Using the font panel
|
|
*/
|
|
- (void) setUsesFontPanel: (BOOL)flag; /* PRIMITIVE */
|
|
- (BOOL) usesFontPanel; /* PRIMITIVE */
|
|
|
|
/*
|
|
* Managing the Ruler
|
|
*/
|
|
- (BOOL) isRulerVisible; /* PRIMITIVE */
|
|
- (void) toggleRuler: (id)sender; /* PRIMITIVE */
|
|
|
|
/*
|
|
* Managing the Selection
|
|
*/
|
|
- (NSRange) selectedRange;
|
|
- (void) setSelectedRange: (NSRange)range;
|
|
|
|
/*
|
|
* Responding to Editing Commands
|
|
*/
|
|
- (void) copy: (id)sender; /* PRIMITIVE */
|
|
- (void) copyFont: (id)sender; /* PRIMITIVE */
|
|
- (void) copyRuler: (id)sender; /* PRIMITIVE */
|
|
- (void) cut: (id)sender;
|
|
- (void) delete: (id)sender; /* PRIMITIVE */
|
|
- (void) paste: (id)sender; /* PRIMITIVE */
|
|
- (void) pasteFont: (id)sender; /* PRIMITIVE */
|
|
- (void) pasteRuler: (id)sender; /* PRIMITIVE */
|
|
- (void) selectAll: (id)sender;
|
|
|
|
/*
|
|
* Managing Font
|
|
*/
|
|
- (void) changeFont: (id)sender; /* PRIMITIVE */
|
|
- (NSFont*) font; /* PRIMITIVE */
|
|
- (void) setFont: (NSFont*)font; /* PRIMITIVE */
|
|
- (void) setFont: (NSFont*)font range: (NSRange)aRange; /* PRIMITIVE */
|
|
/* Old OpenStep name for the same method. */
|
|
- (void) setFont: (NSFont*)font ofRange: (NSRange)aRange;
|
|
|
|
/*
|
|
* Managing Alignment
|
|
*/
|
|
- (NSTextAlignment) alignment; /* PRIMITIVE */
|
|
- (void) setAlignment: (NSTextAlignment)mode; /* PRIMITIVE */
|
|
- (void) alignCenter: (id)sender; /* PRIMITIVE */
|
|
- (void) alignLeft: (id)sender; /* PRIMITIVE */
|
|
- (void) alignRight: (id)sender; /* PRIMITIVE */
|
|
|
|
/*
|
|
* Text colour
|
|
*/
|
|
- (void) setTextColor: (NSColor*)color range: (NSRange)aRange; /* PRIMITIVE */ /* not OPENSTEP */
|
|
- (void) setColor: (NSColor*)color ofRange: (NSRange)aRange; /* PRIMITIVE */
|
|
- (void) setTextColor: (NSColor*)color; /* PRIMITIVE */
|
|
- (NSColor*) textColor; /* PRIMITIVE */
|
|
|
|
/*
|
|
* Text attributes
|
|
*/
|
|
- (void) subscript: (id)sender; /* PRIMITIVE */
|
|
- (void) superscript: (id)sender; /* PRIMITIVE */
|
|
- (void) underline: (id)sender; /* PRIMITIVE */
|
|
- (void) unscript: (id)sender; /* PRIMITIVE */
|
|
|
|
/*
|
|
* Reading and Writing RTFD Files
|
|
*/
|
|
-(BOOL) readRTFDFromFile: (NSString*)path; /* PRIMITIVE */
|
|
-(BOOL) writeRTFDToFile: (NSString*)path atomically: (BOOL)flag; /* PRIMITIVE */
|
|
-(NSData*) RTFDFromRange: (NSRange)aRange; /* PRIMITIVE */
|
|
-(NSData*) RTFFromRange: (NSRange)aRange; /* PRIMITIVE */
|
|
|
|
/*
|
|
* Sizing the Frame Rectangle
|
|
*/
|
|
- (BOOL) isHorizontallyResizable; /* PRIMITIVE */
|
|
- (BOOL) isVerticallyResizable; /* PRIMITIVE */
|
|
- (NSSize) maxSize; /* PRIMITIVE */
|
|
- (NSSize) minSize; /* PRIMITIVE */
|
|
- (void) setHorizontallyResizable: (BOOL)flag; /* PRIMITIVE */
|
|
- (void) setMaxSize: (NSSize)newMaxSize; /* PRIMITIVE */
|
|
- (void) setMinSize: (NSSize)newMinSize; /* PRIMITIVE */
|
|
- (void) setVerticallyResizable: (BOOL)flag; /* PRIMITIVE */
|
|
- (void) sizeToFit; /* PRIMITIVE */
|
|
|
|
/*
|
|
* Spelling
|
|
*/
|
|
- (void) checkSpelling: (id)sender; /* PRIMITIVE */
|
|
- (void) showGuessPanel: (id)sender;
|
|
|
|
/*
|
|
* Scrolling
|
|
*/
|
|
- (void) scrollRangeToVisible: (NSRange)aRange; /* PRIMITIVE */
|
|
|
|
/*
|
|
* Managing the Delegate
|
|
*/
|
|
- (id) delegate; /* PRIMITIVE */
|
|
- (void) setDelegate: (id)anObject; /* PRIMITIVE */
|
|
|
|
/*
|
|
* NSChangeSpelling protocol
|
|
*/
|
|
- (void) changeSpelling: (id)sender; /* PRIMITIVE */
|
|
|
|
/*
|
|
* NSIgnoreMisspelledWords protocol
|
|
*/
|
|
- (void) ignoreSpelling: (id)sender; /* PRIMITIVE */ /* not OPENSTEP */
|
|
@end
|
|
|
|
@interface NSText (GNUstepExtensions)
|
|
|
|
- (NSUInteger) textLength; /* PRIMITIVE */
|
|
|
|
@end
|
|
|
|
/* Notifications */
|
|
APPKIT_EXPORT NSString *NSTextDidBeginEditingNotification;
|
|
APPKIT_EXPORT NSString *NSTextDidEndEditingNotification;
|
|
APPKIT_EXPORT NSString *NSTextDidChangeNotification;
|
|
|
|
@interface NSObject (NSTextDelegate)
|
|
- (BOOL) textShouldBeginEditing: (NSText*)textObject; /* YES means do it */
|
|
- (BOOL) textShouldEndEditing: (NSText*)textObject; /* YES means do it */
|
|
- (void) textDidBeginEditing: (NSNotification*)notification;
|
|
- (void) textDidEndEditing: (NSNotification*)notification;
|
|
- (void) textDidChange: (NSNotification*)notification; /* Any keyDown or paste which changes the contents causes this */
|
|
@end
|
|
|
|
#endif // _GNUstep_H_NSText
|
|
|