Imported some code from NSText; removed lots of methods already implemented

in NSText (the superclass)


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@8366 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Nicola Pero 2000-12-19 15:34:21 +00:00
parent a8b3637202
commit da6a352dd3

View file

@ -46,6 +46,13 @@
#include <AppKit/NSTextStorage.h> #include <AppKit/NSTextStorage.h>
#include <AppKit/NSColorPanel.h> #include <AppKit/NSColorPanel.h>
#define HUGE 1e7
@interface NSText(GNUstepPrivate)
+ (NSDictionary*) defaultTypingAttributes;
@end
@interface NSTextView (GNUstepPrivate) @interface NSTextView (GNUstepPrivate)
- (NSTextContainer*) buildUpTextNetwork: (NSSize)aSize; - (NSTextContainer*) buildUpTextNetwork: (NSSize)aSize;
@end @end
@ -76,10 +83,39 @@
/* Initializing Methods */ /* Initializing Methods */
/* Designated initializer */
- (id) initWithFrame: (NSRect)frameRect - (id) initWithFrame: (NSRect)frameRect
textContainer: (NSTextContainer*)aTextContainer textContainer: (NSTextContainer*)aTextContainer
{ {
self = [super initWithFrame: frameRect textContainer: aTextContainer]; [super initWithFrame: frameRect];
[self setMinSize: frameRect.size];
[self setMaxSize: NSMakeSize (HUGE,HUGE)];
_tf.is_field_editor = NO;
_tf.is_editable = YES;
_tf.is_selectable = YES;
_tf.is_rich_text = NO;
_tf.imports_graphics = NO;
_tf.draws_background = YES;
_tf.is_horizontally_resizable = NO;
_tf.is_vertically_resizable = NO;
_tf.uses_font_panel = YES;
_tf.uses_ruler = YES;
_tf.is_ruler_visible = NO;
ASSIGN (_caret_color, [NSColor blackColor]);
[self setTypingAttributes: [isa defaultTypingAttributes]];
[self setBackgroundColor: [NSColor textBackgroundColor]];
//[self setSelectedRange: NSMakeRange (0, 0)];
[aTextContainer setTextView: self];
[aTextContainer setWidthTracksTextView: YES];
[aTextContainer setHeightTracksTextView: YES];
// FIXME: ?? frame was given as an argument so we shouldn't resize.
[self sizeToFit];
[self setEditable: YES]; [self setEditable: YES];
[self setUsesFontPanel: YES]; [self setUsesFontPanel: YES];
@ -111,11 +147,29 @@
return self; return self;
} }
- (id) initWithCoder: (NSCoder *)coder - (void) encodeWithCoder: (NSCoder *)aCoder
{
BOOL flag;
[super encodeWithCoder: aCoder];
flag = _tvf.smart_insert_delete;
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
flag = _tvf.allows_undo;
[aCoder encodeValueOfObjCType: @encode(BOOL) at: &flag];
}
- (id) initWithCoder: (NSCoder *)aDecoder
{ {
NSTextContainer *aTextContainer; NSTextContainer *aTextContainer;
BOOL flag;
self = [super initWithCoder: coder]; self = [super initWithCoder: aDecoder];
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
_tvf.smart_insert_delete = flag;
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &flag];
_tvf.allows_undo = flag;
/* build up the rest of the text system, which doesn't get stored /* build up the rest of the text system, which doesn't get stored
<doesn't even implement the Coding protocol>. */ <doesn't even implement the Coding protocol>. */
@ -129,14 +183,14 @@
- (void)dealloc - (void)dealloc
{ {
if (_tf.owns_text_network == YES) if (_tvf.owns_text_network == YES)
{ {
/* Prevent recursive dealloc */ /* Prevent recursive dealloc */
if (_tf.is_in_dealloc == YES) if (_tvf.is_in_dealloc == YES)
{ {
return; return;
} }
_tf.is_in_dealloc = YES; _tvf.is_in_dealloc = YES;
/* This releases all the text objects (us included) in fall */ /* This releases all the text objects (us included) in fall */
RELEASE (_textStorage); RELEASE (_textStorage);
} }
@ -177,7 +231,7 @@
/* We keep a flag to remember that we are directly responsible for /* We keep a flag to remember that we are directly responsible for
managing the text objects. */ managing the text objects. */
_tf.owns_text_network = YES; _tvf.owns_text_network = YES;
return textContainer; return textContainer;
} }
@ -209,12 +263,12 @@
/* This should only be called by [NSTextContainer -setTextView:] */ /* This should only be called by [NSTextContainer -setTextView:] */
- (void) setTextContainer: (NSTextContainer*)aTextContainer - (void) setTextContainer: (NSTextContainer*)aTextContainer
{ {
[super setTextContainer: aTextContainer]; _textContainer = aTextContainer;
} _layoutManager = [aTextContainer layoutManager];
_textStorage = [_layoutManager textStorage];
- (NSTextContainer*) textContainer // FIXME: Hack to get the layout change
{ [_textContainer setContainerSize: _frame.size];
return _textContainer;
} }
- (void) replaceTextContainer: (NSTextContainer*)aTextContainer - (void) replaceTextContainer: (NSTextContainer*)aTextContainer
@ -225,6 +279,11 @@
_textContainer = aTextContainer; _textContainer = aTextContainer;
} }
- (NSTextContainer *) textContainer
{
return _textContainer;
}
- (void) setTextContainerInset: (NSSize)inset - (void) setTextContainerInset: (NSSize)inset
{ {
_textContainerInset = inset; _textContainerInset = inset;
@ -266,34 +325,14 @@
return _textStorage; return _textStorage;
} }
- (void) setBackgroundColor: (NSColor*)aColor
{
ASSIGN(_background_color, aColor);
}
- (NSColor*) backgroundColor
{
return _background_color;
}
- (void) setAllowsUndo: (BOOL)flag - (void) setAllowsUndo: (BOOL)flag
{ {
_tf.allows_undo = flag; _tvf.allows_undo = flag;
} }
- (BOOL) allowsUndo - (BOOL) allowsUndo
{ {
return _tf.allows_undo; return _tvf.allows_undo;
}
- (void) setDrawsBackground: (BOOL)flag
{
_tf.draws_background = flag;
}
- (BOOL) drawsBackground
{
return _tf.draws_background;
} }
- (void) setNeedsDisplayInRect: (NSRect)aRect - (void) setNeedsDisplayInRect: (NSRect)aRect
@ -344,75 +383,24 @@
- (void) setEditable: (BOOL)flag - (void) setEditable: (BOOL)flag
{ {
if (flag) [super setEditable: flag];
_tf.is_selectable = flag; /* FIXME/TODO: Update/show the insertion point */
_tf.is_editable = flag;
} }
- (BOOL) isEditable
{
return _tf.is_editable;
}
- (void) setSelectable: (BOOL)flag
{
_tf.is_selectable = flag;
}
- (BOOL) isSelectable
{
return _tf.is_selectable;
}
- (void) setFieldEditor: (BOOL)flag
{
_tf.is_field_editor = flag;
}
- (BOOL) isFieldEditor
{
return _tf.is_field_editor;
}
- (void) setRichText: (BOOL)flag - (void) setRichText: (BOOL)flag
{ {
if (!flag) [super setRichText: flag];
_tf.imports_graphics = flag;
_tf.is_rich_text = flag;
[self updateDragTypeRegistration]; [self updateDragTypeRegistration];
} /* FIXME/TODO: Also convert text to plain text or to rich text */
- (BOOL) isRichText
{
return _tf.is_rich_text;
} }
- (void) setImportsGraphics: (BOOL)flag - (void) setImportsGraphics: (BOOL)flag
{ {
if (flag) [super setImportsGraphics: flag];
_tf.is_rich_text = flag;
_tf.imports_graphics = flag;
[self updateDragTypeRegistration]; [self updateDragTypeRegistration];
} }
- (BOOL) importsGraphics
{
return _tf.imports_graphics;
}
- (void) setUsesFontPanel: (BOOL)flag
{
_tf.uses_font_panel = flag;
}
- (BOOL) usesFontPanel
{
return _tf.uses_font_panel;
}
- (void) setUsesRuler: (BOOL)flag - (void) setUsesRuler: (BOOL)flag
{ {
_tf.uses_ruler = flag; _tf.uses_ruler = flag;
@ -965,12 +953,12 @@ the affected range or replacement string before beginning changes, pass
- (void) setSmartInsertDeleteEnabled: (BOOL)flag - (void) setSmartInsertDeleteEnabled: (BOOL)flag
{ {
_tf.smart_insert_delete = flag; _tvf.smart_insert_delete = flag;
} }
- (BOOL) smartInsertDeleteEnabled - (BOOL) smartInsertDeleteEnabled
{ {
return _tf.smart_insert_delete; return _tvf.smart_insert_delete;
} }
- (NSRange) smartDeleteRangeForProposedRange: (NSRange)proposedCharRange - (NSRange) smartDeleteRangeForProposedRange: (NSRange)proposedCharRange