Commit graph

93 commits

Author SHA1 Message Date
Alexander Malmberg
ee70d6ab43 2004-11-11 15:08 Alexander Malmberg <alexander@malmberg.org>
* Source/NSCell.m (-_setupTextWithFrame:inView:editor:): Reduce the
	maximum size. Explicitly set the size of the text view, and make it
	not resizable.
	* Source/NSLayoutManager.m (-rectArrayForGlyphRange:
	withinSelectedGlyphRange:inTextContainer:rectCount:): Fix check for
	whether the starting index is inside a line frag rect.
	* Source/NSTextView.m (-sizeToFit): Don't increase the size if we
	have no inset.
	(-updateInsertionPointStateAndRestartTimer:): Force the insertion
	point rect to be inside the text view.
	(-scrollRangeToVisible:): If we are a non-rich-text field editor,
	adjust the scrolling to make the auto-scrolling more useful.

	Fixes bug #9279.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@20340 72102866-910b-0410-8b05-ffd578937521
2004-11-11 14:10:08 +00:00
Alexander Malmberg
dd69ef973d Adjust handling of selected range changes in response to text changes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@19866 72102866-910b-0410-8b05-ffd578937521
2004-08-11 23:46:37 +00:00
Alexander Malmberg
195960d5d5 Get the printing buffer size right this time.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@19712 72102866-910b-0410-8b05-ffd578937521
2004-07-11 14:36:51 +00:00
Alexander Malmberg
6feb2e58f5 When printing, position each glyph explicitly.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@19711 72102866-910b-0410-8b05-ffd578937521
2004-07-11 12:21:41 +00:00
Alexander Malmberg
5202d04b05 Calculate layout_char properly. Comment about the weird state of things.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@18861 72102866-910b-0410-8b05-ffd578937521
2004-03-22 00:17:18 +00:00
Alexander Malmberg
07176d3800 Don't cause layout_char to wrap around when adding lengthChange.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@18842 72102866-910b-0410-8b05-ffd578937521
2004-03-13 02:22:12 +00:00
Fred Kiefer
13a4046e1a More keyed decoding.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@18603 72102866-910b-0410-8b05-ffd578937521
2004-02-15 18:23:13 +00:00
Fred Kiefer
154110be23 Small drawing cleanup.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@18567 72102866-910b-0410-8b05-ffd578937521
2004-02-08 23:58:41 +00:00
Alexander Malmberg
5ce50e1384 Handle the case where there is no layout information at all more efficiently.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@18474 72102866-910b-0410-8b05-ffd578937521
2004-01-25 03:20:52 +00:00
Alexander Malmberg
fed935717b If a range of glyphs have no color attribute, use [NSColor textColor] instead of assuming black.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@18021 72102866-910b-0410-8b05-ffd578937521
2003-11-01 17:26:12 +00:00
David Ayers
b18f1c4ac4 Header reorganization - Please refer to ChangeLog
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@17408 72102866-910b-0410-8b05-ffd578937521
2003-07-31 23:52:10 +00:00
Richard Frith-Macdonald
5c21d4d3d1 Documentatikon tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@17298 72102866-910b-0410-8b05-ffd578937521
2003-07-22 16:13:46 +00:00
Alexander Malmberg
961fc47691 Improve behavior of selected range adjustments when invalidating.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@17137 72102866-910b-0410-8b05-ffd578937521
2003-07-05 16:04:05 +00:00
Fred Kiefer
972bb877d1 (rectArrayForGlyphRange:...rectCount:,
glyphRangeForBoundingRect:inTextContainer:,
_insertionPointRectForCharacterIndex:textContainer:):
Removed compiler warning about signed/unsigned comparision.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16986 72102866-910b-0410-8b05-ffd578937521
2003-06-21 23:25:27 +00:00
Adam Fedor
6be9174933 Include <> -> ""
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16917 72102866-910b-0410-8b05-ffd578937521
2003-06-13 15:01:12 +00:00
Alexander Malmberg
bbdf75548a Fix updating of glyph counts in some rare cases. Minor cleanups.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16408 72102866-910b-0410-8b05-ffd578937521
2003-04-10 00:08:26 +00:00
Alexander Malmberg
836df5adbe (-drawGlyphsForGlyphRange:atPoint:): Use the focused view as the control view instead of the text container's text view.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16132 72102866-910b-0410-8b05-ffd578937521
2003-03-05 16:10:37 +00:00
Alexander Malmberg
005bacbebb (-glyphRangeForBoundingRect:inTextContainer:): Fix the horizontal intersection checks.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16075 72102866-910b-0410-8b05-ffd578937521
2003-02-26 16:11:55 +00:00
Alexander Malmberg
7069b67123 Fix handling of trailing text containers when soft-invalidating.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16073 72102866-910b-0410-8b05-ffd578937521
2003-02-25 16:40:20 +00:00
Alexander Malmberg
5e1795f0b9 (-drawBackgroundForGlyphRange:atPoint:): Check that a range has a background color before checking that there are rectangles for it.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16061 72102866-910b-0410-8b05-ffd578937521
2003-02-24 02:54:32 +00:00
Alexander Malmberg
735e3bed5e Don't track the started status for a text container separately. Use num_linefrags instead.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16048 72102866-910b-0410-8b05-ffd578937521
2003-02-23 01:01:13 +00:00
Alexander Malmberg
8712b50242 Make sure the extra line frag rect is always set when we reach the end.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16043 72102866-910b-0410-8b05-ffd578937521
2003-02-22 01:43:11 +00:00
Alexander Malmberg
3abfc263a0 Fix clearing of soft-invalidated layout information if the invalidated range is beyond the last finished layout.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16011 72102866-910b-0410-8b05-ffd578937521
2003-02-19 14:12:55 +00:00
Alexander Malmberg
6b01d08cb1 Fix edge case in soft invalidation.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16002 72102866-910b-0410-8b05-ffd578937521
2003-02-18 20:26:13 +00:00
Alexander Malmberg
db4c4957a3 Minor fix of previous commit: make sure layout is marked as incomplete even if no actual layout was invalidated.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15998 72102866-910b-0410-8b05-ffd578937521
2003-02-18 17:24:24 +00:00
Alexander Malmberg
0383d08f23 Implement handling of soft-invalidated line frags. Soft-invalidate layout information for glyphs after an edited range in NSLayoutManager.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15997 72102866-910b-0410-8b05-ffd578937521
2003-02-18 17:15:25 +00:00
Alexander Malmberg
dffecc3043 (-textStorage:edited:range:changeInLength:invalidatedRange:): Don't invalidate all layout on each change. Now, all layout information for glyphs before the change will be reused. (Layout for glyphs after the change is still invalidated, until I finish the soft invalidation.)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15993 72102866-910b-0410-8b05-ffd578937521
2003-02-18 00:35:23 +00:00
Alexander Malmberg
d6239b2d59 Optimize some important cases by using a binary search for line frags instead of a linear search. Cleanups and comments.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15979 72102866-910b-0410-8b05-ffd578937521
2003-02-17 01:13:27 +00:00
Alexander Malmberg
3f51658781 (-glyphIndexForPoint:inTextContainer:fractionOfDistanceThroughGlyph:): Handle the case where the point is on a line, but not inside a line frag rect, better. Commenting and cleanups.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15978 72102866-910b-0410-8b05-ffd578937521
2003-02-16 21:40:47 +00:00
Alexander Malmberg
27e5baeab3 Bring back the old implementation of -rulerMarkersForTextView:paragraphStyle:ruler:.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15976 72102866-910b-0410-8b05-ffd578937521
2003-02-16 14:54:14 +00:00
Alexander Malmberg
4dc81ab769 Implement extra line fragment handling.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15968 72102866-910b-0410-8b05-ffd578937521
2003-02-16 03:18:35 +00:00
Alexander Malmberg
6027271a4f Change the way the text view is told about layout invalidation. Change NSTextView to update its state as late as possible before displaying, and make sure it's updated when it's resized.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15967 72102866-910b-0410-8b05-ffd578937521
2003-02-15 17:30:52 +00:00
Alexander Malmberg
c56d68453d When moving vertically, return the index of the character nearest the target horizontally.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15958 72102866-910b-0410-8b05-ffd578937521
2003-02-14 17:00:04 +00:00
Alexander Malmberg
87a4e8d28d Many minor bug and behavior fixes to get the text system to work with several text containers attached to one layout manager.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15924 72102866-910b-0410-8b05-ffd578937521
2003-02-10 14:14:34 +00:00
Alexander Malmberg
f9fea1156d Cleanups of old debugging code, whitespace, and error handling. Fix handling of non-nominally spaced glyphs in some cases.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15918 72102866-910b-0410-8b05-ffd578937521
2003-02-09 20:13:16 +00:00
Alexander Malmberg
5d2f6b4f2f Add -_didInvalidateLayout method that is called whenever any layout information has been invalidated. Use it in NSLayoutManager to resize text views.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15915 72102866-910b-0410-8b05-ffd578937521
2003-02-09 17:05:18 +00:00
Alexander Malmberg
39744f3b2f Rewrite insertion point movement actions properly.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15904 72102866-910b-0410-8b05-ffd578937521
2003-02-08 16:55:51 +00:00
Alexander Malmberg
20ab4fa2df Add -insertionPointRectForCharacterIndex:inTextContainer: method to NSLayoutManager and use it in NSTextView.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15863 72102866-910b-0410-8b05-ffd578937521
2003-02-03 01:52:27 +00:00
Alexander Malmberg
3ea5844deb Implement text attachment handling.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15825 72102866-910b-0410-8b05-ffd578937521
2003-01-31 21:08:24 +00:00
Alexander Malmberg
5580ccd32c Fix adjustment of selection range when entire selection is removed.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15759 72102866-910b-0410-8b05-ffd578937521
2003-01-29 15:05:12 +00:00
Alexander Malmberg
36c596fdf6 Add code to adjust the selected range after every change.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15752 72102866-910b-0410-8b05-ffd578937521
2003-01-28 21:57:22 +00:00
Alexander Malmberg
bf56e3e54e Give better error message for an invalid glyph range.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15746 72102866-910b-0410-8b05-ffd578937521
2003-01-28 16:44:53 +00:00
Alexander Malmberg
c696800396 Fix format string.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15739 72102866-910b-0410-8b05-ffd578937521
2003-01-27 15:17:13 +00:00
Alexander Malmberg
b3782e2403 Draw background for the selected range.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15730 72102866-910b-0410-8b05-ffd578937521
2003-01-26 23:02:55 +00:00
Alexander Malmberg
ecfebfecfc (-textStorage:edited:range:changeInLength:invalidatedRange:): Tell the text views to resize if their text has changed.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15728 72102866-910b-0410-8b05-ffd578937521
2003-01-26 20:18:04 +00:00
Alexander Malmberg
8a98cb98a8 (-glyphIndexForPoint:inTextContainer:fractionOfDistanceThroughGlyph:): Try harder to always return a valid glyph index.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15727 72102866-910b-0410-8b05-ffd578937521
2003-01-26 20:10:21 +00:00
Alexander Malmberg
9407b0bfca Merge in text-system-branch.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@15718 72102866-910b-0410-8b05-ffd578937521
2003-01-26 19:21:40 +00:00
Richard Frith-Macdonald
af70a6521a Tidied method argument naming.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@14763 72102866-910b-0410-8b05-ffd578937521
2002-10-13 13:50:06 +00:00
Pierre-Yves Rivaille
46630bd6de * Source/NSText.m ([NSText -initWithCoder:]):
Retain the decoded background color.

	* Source/NSTextView.m :
	multiple location: don't ignore textContainer's inset
	([NSTextView -initWithCoder:])
	([NSTextView -encodeWithCoder:])
	Encode caret color, textContainer's size and whether the
	textContainer has widthTracksTextView or heightTracksTextView set.
	([NSTextView -sizeToFit]) Change width (height) only if
	is_horizontally_resizable (is_vertically_resizable).
	([NSTextView -scrollRangeToVisible:]) scrolls to the first char of
	the range.
	([NSTextView -invalidateTextContainerOrigin]): Don't ignore inset,
	set the origin so that the justification is preserved even if the
	textContainer's width is larger that the textview's width.
	([NSTextView -updateInsertionPointStateAndRestartTimer:]):
	update and place the insertion point properly.
	([NSTextView -moveDown:]) & ([NSTextView -moveUp:]):
	Don't ignore inset. Make insertion point visible.

	* Source/NSTextField.m ([NSTextField -acceptsFirstResponder:]):
	responds NO if the editing is still in progrss.

	* Source/NSLayoutManager.m
	([NSLayoutManager -drawBackgroundForGlyphRange:atPoint:]):
	Don't ignore textContainer's inset.

	* Source/GSSimpleLayoutManager.m
	Replaced [-drawLinesInLineRange:] with [-drawLinesInLineRange:atPoint:].
	Replaced [-drawSelectionAsRangeNoCaret:] with
	[-drawSelectionAsRangeNoCaret:atPoint:].
	Those replacements make it easier to take inset into account.
	([-lineFragmentUsedRectForGlyphAtIndex:effectiveRange:])
	([-locationForGlyphAtIndex:])
	([-boundingRectForGlyphRange:inTextContainer:])
	([-rectForCharacterIndex:])
	([-setNeedsDisplayForLineRange:inTextContainer:]):
	Various fixes.
	([-textStorage:edited:range:changeInLength:invalidatedRange:])
	Update insertion point if needed (useful when alignment changes).
	([-rebuildForRange:delta:inTextContainer:]):
	Update layout mechanism.

	* Source/NSCell.m
	([NSCell -highlight:withFrame:inView:]):
	Ask the control to draw the background if we are not opaque.
	([NSCell -editWithFrame:inView:editor:delegate:event:]):
	([NSCell -selectWithFrame:inView:editor:delegate:start:length:]):
	([NSCell -endEditing:]):
	instantiate (and remove) the textview so that it can be scrolled.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@14429 72102866-910b-0410-8b05-ffd578937521
2002-09-11 20:26:27 +00:00
Nicola Pero
be371e47d7 Added missing #includes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@13442 72102866-910b-0410-8b05-ffd578937521
2002-04-11 23:17:42 +00:00