mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-31 03:40:47 +00:00
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:
parent
a8b3637202
commit
da6a352dd3
1 changed files with 80 additions and 92 deletions
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue