Commit graph

76 commits

Author SHA1 Message Date
Sergii Stoian
fcee2e2c63 * Headers/Additions/GNUstepGUI/GSLayoutManager.h,
Source/GSLayoutManager.m: new method -typingAttributes returns default typing
  attributes of NSTextView.
* Source/NSLayoutManager.m: override GSLayoutManager's -typingAttributes - primitive
  method - provides access to _typingAttributes ivar.
* Source/GSHorizontalTypesetter.m: use new GSLayoutManager's -typingAttributes method
  to get paragraph style and font of new empty text container. Normally `curLayoutManager`
  is a NSLayoutManager object so actually we get NSLayoutManager's _typingAttributes.
2019-12-10 19:23:04 +02:00
fredkiefer
d31ae5f49b * Source/GSLayoutManager.m
(-glyphRangeForCharacterRange:actualCharacterRange:): Try to
handle attachments at the end of the file more graceful.
2018-01-14 18:17:05 +01:00
Fred Kiefer
a33b4c5073 * Source/GSLayoutManager.m (-usedRectForTextContainer:): Add extra
line rect when needed.
	* Source/NSTextView.m (sizeToFit): Don't add extra line rect, as
	it is now already included.
	* Source/NSStringDrawing.m (cache_lookup): Remove hack for empty string.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40346 72102866-910b-0410-8b05-ffd578937521
2017-02-17 19:44:25 +00:00
Fred Kiefer
2b401268fc Don't try to get the advancement for GSAttachmentGlyph.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40272 72102866-910b-0410-8b05-ffd578937521
2016-12-18 11:58:31 +00:00
Fred Kiefer
2572daeff4 * Source/GSLayoutManager.m (-advancementForGlyphAtIndex:):
Simplify this method and move it in the file.
	* Source/NSLayoutManager.m: Use the pre-computed advancement
	instead of calculating it every time.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40167 72102866-910b-0410-8b05-ffd578937521
2016-10-23 20:13:37 +00:00
Fred Kiefer
d0d119d365 * Source/GSLayoutManager.m: Don't try to get the advancement for NSControlGlyph.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40166 72102866-910b-0410-8b05-ffd578937521
2016-10-21 22:42:38 +00:00
David Chisnall
4850a9feac Fix all current compiler warnings on FreeBSD/x86-64.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36038 72102866-910b-0410-8b05-ffd578937521
2013-01-30 09:48:54 +00:00
Fred Kiefer
89fed0244c * Headers/Additions/GNUstepGUI/GSLayoutManager_internal.h: Make
-_invalidateEverything visible.
        * Source/GSLayoutManager.m
        * (-invalidateGlyphsForCharacterRange:...): Call
        -_invalidateEverything when the whole character range is
invalidated.
        * Source/NSStringDrawing.m: Remove workarounds for full layout
        * invalidation.
        Move initialisation check into cache_lock().
        Extract size match code in function.
        Put #ifdef around all statistics code.
        Use same LARGE_SIZE value as Apple does.
        Make the methods taking options the main ones.
        * Source/GSHorizontalTypesetter.m (-fullJustifyLine::,
        -rightAlignLine::, -centerAlignLine::): Don't align when the
line
        width is bigger than 1e7.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35925 72102866-910b-0410-8b05-ffd578937521
2012-12-30 15:48:21 +00:00
Fred Kiefer
60fcb3622e * Headers/AppKit/NSOpenGL.h,
* Source/NSOpenGLPixelFormat.m: NSOpenGLPixelFormat directly
        * implements
        initWithCoder so that it may marshall the pixel attributes prior
to
        initWithAttributes:. Change the getValues:... method to take an
        int argument instead of long. GLint is mapped to int on most
systems.
        * Source/NSOpenGLContext.m: Use the format decoding to decode an
        * OpenGL context.
        Patch by Clint Smullen <daemonae>.

        * Source/GSLayoutManager.m: Small cleanup in glyph code.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35923 72102866-910b-0410-8b05-ffd578937521
2012-12-26 19:19:50 +00:00
Wolfgang Lux
70fe303412 Prevent potential crashes due to invalid pointers left in text
containers and layout managers when their respective layout manager
and text storage are deallocated.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35178 72102866-910b-0410-8b05-ffd578937521
2012-06-05 11:34:02 +00:00
Fred Kiefer
12bbf00d16 Removed a few compiler warnings found by gcc 4.6
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34344 72102866-910b-0410-8b05-ffd578937521
2011-12-22 09:16:04 +00:00
Eric Wasylishen
5d897881e4 * Source/GSLayoutManager.m:
* Source/GSHorizontalTypesetter.m:
* Headers/Additions/GNUstepGUI/GSLayoutManager_internal.h:
* Headers/Additions/GNUstepGUI/GSLayoutManager.h: Store
glyph advances in the runs in GSLayoutManager. Extend the
NSGlyphStorage protocol to support a case where the glyph
generator provides the glyph advances.

I'm hoping to use this in the future to implement (optional)
glyph generators which are wrappers around HarfBuzz or the ICU
OpenType layout engine.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33684 72102866-910b-0410-8b05-ffd578937521
2011-08-02 23:34:06 +00:00
Richard Frith-MacDonald
e1fdfb3ee4 tidyup
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32410 72102866-910b-0410-8b05-ffd578937521
2011-02-28 14:24:57 +00:00
Riccardo Mottola
b2d830cbf4 Replace objc_malloc with malloc for structures.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32409 72102866-910b-0410-8b05-ffd578937521
2011-02-28 14:04:43 +00:00
Fred Kiefer
cdb08be089 Implement glyph attribute handling.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31730 72102866-910b-0410-8b05-ffd578937521
2010-12-13 21:26:15 +00:00
Fred Kiefer
d08b23d9b0 First batch of corrections based on David's static analysis.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31337 72102866-910b-0410-8b05-ffd578937521
2010-09-12 16:34:22 +00:00
Fred Kiefer
99e273a57d few compiler warning fixes plus a lot of #import replacement.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30448 72102866-910b-0410-8b05-ffd578937521
2010-05-24 10:48:14 +00:00
Gregory John Casamento
8949deeb03 * Source/GSHorizontalTypesetter.m: Remove unlock and
log the exception, but don't rethrow it.
	* Source/GSLayoutManager.m: return a zero length range in
	 -(NSRange)glyphRangeForCharacterRange:actualCharacterRange:
	when charRange has a length and a location of 0.
	Added by Gregory John Casamento <greg.casamento@gmail.com>


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28521 72102866-910b-0410-8b05-ffd578937521
2009-08-23 16:37:28 +00:00
Gregory John Casamento
26e2eb86ea * Source/GSLayoutManager.m: do not return (0,0) when a zero length
range is passed into glyphRangeForCharacterRange:
	actualCharacterRange:.  Tests on Mac OS X indicate that this is
	a valid case.
	* Source/GSNibLoading.m: Fixed some memory leaks.
	* Source/NSRulerMarker.m: Use the bounds of the containing view 
	instead of markersRect.   I will revisit if the _markersRect method
	needs to be corrected, but this code seems to correct problems 
	observed when dragging markers in and out of the rulerView.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27986 72102866-910b-0410-8b05-ffd578937521
2009-02-26 05:42:09 +00:00
Fred Kiefer
ae4c7503ac Add some 10.5 methods for NSLayoutManager
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27480 72102866-910b-0410-8b05-ffd578937521
2008-12-31 16:29:44 +00:00
Richard Frith-MacDonald
bacf599365 Fix uninitialised variable
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27177 72102866-910b-0410-8b05-ffd578937521
2008-11-30 14:06:15 +00:00
Fred Kiefer
11bede28df Protect all access to the glyph arrays.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26773 72102866-910b-0410-8b05-ffd578937521
2008-07-12 23:00:37 +00:00
Fred Kiefer
1f1fb3c153 Add some more protection against inconsistent state.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26771 72102866-910b-0410-8b05-ffd578937521
2008-07-12 21:10:08 +00:00
Adam Fedor
7afdd32ac1 Revert library license version to 2 until applications can be converted
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26619 72102866-910b-0410-8b05-ffd578937521
2008-06-10 04:01:49 +00:00
Gregory John Casamento
016798f3cb Correct a crash on 64 bit systems.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26528 72102866-910b-0410-8b05-ffd578937521
2008-05-15 01:56:58 +00:00
Fred Kiefer
f59bbe5aa8 Extract glyph generation code into separate class.
Plus some additional cleanup.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26523 72102866-910b-0410-8b05-ffd578937521
2008-05-13 19:40:20 +00:00
Fred Kiefer
14176f6a78 New NSFont method for glyph generation.
Ligature and decompose handling in gsLayoutManager, moved here from the
art backend.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26430 72102866-910b-0410-8b05-ffd578937521
2008-04-04 22:01:44 +00:00
Fred Kiefer
3dc7f6d74c Set the text container to max size, when the text view is resizable.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@25863 72102866-910b-0410-8b05-ffd578937521
2008-01-04 21:02:29 +00:00
Richard Frith-MacDonald
03a4a96a40 Update includes ... closer MacOS-X compatibility.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@25635 72102866-910b-0410-8b05-ffd578937521
2007-11-29 20:28:03 +00:00
Fred Kiefer
193e31e678 Change all files to use GPL 3 and LGPL 3.
Prepare for next release.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@25536 72102866-910b-0410-8b05-ffd578937521
2007-10-29 21:16:17 +00:00
Fred Kiefer
4835a35c1c Add new MacOSX methods. Code mostly by Nikolaus Schaller.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@25270 72102866-910b-0410-8b05-ffd578937521
2007-06-18 21:08:54 +00:00
Matt Rice
ba8d729b8a * Source/NSTextView_actions.m:
* Source/NSOpenPanel.m:
        * Source/GSLayoutManager.m:
        * Source/NSLayoutManager.m:
        * Source/NSSavePanel.m:
        * Source/NSTextView.m:
        * Source/NSStringDrawing.m:
        * Headers/Additions/GNUstepGUI/GSLayoutManager_internal.h:
        * Headers/AppKit/NSTextView.h: Remove underscores from category names
        as they can confuse the debugger.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@24032 72102866-910b-0410-8b05-ffd578937521
2006-11-06 10:19:20 +00:00
Richard Frith-MacDonald
65b175b904 Tweaks to avoid new compiler warnings with gcc-4.1 and some 64bit issues.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23126 72102866-910b-0410-8b05-ffd578937521
2006-07-04 21:31:49 +00:00
Richard Frith-Macdonald
7971a89c72 Coding style fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@22019 72102866-910b-0410-8b05-ffd578937521
2005-11-16 11:34:25 +00:00
Adam Fedor
303dd1baf9 Update FSF Address.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@21259 72102866-910b-0410-8b05-ffd578937521
2005-05-26 02:52:46 +00:00
Alexander Malmberg
ad2419e484 2005-01-21 21:43 Alexander Malmberg <alexander@malmberg.org>
Various whitespace cleanups, comment type fixes, and changes
	to avoid warnings from recent versions of gcc.

	* Headers/Additions/GNUstepGUI/GSToolbar.h (-_toolbars): Declare.
	* Source/NSWindow+Toolbar.m: Remove conflicting declaration of
	[NSToolbar -_toolbars].

	* Headers/Additions/GNUstepGUI/GSServicesManager.h,
 	Source/GSServicesMananger.m (-item2title:, -validateMenuItem:):
	Adjust argument types.
	* Headers/AppKit/NSMenu.h (-validateMenuItem:): Adjust argument
	type.

	* Source/NSTextView.m (-sizeToFit): Don't use size uninitialized
	if neither resizable flags is set.
	(-insertText:): Adjust argument type.
	* Headers/AppKit/NSResponder.h, Source/NSResponder.m (-insertText:):
	Adjust argument type. Document.

	* Headers/AppKit/NSView.h: Change type of ivar _window to NSWindow *.

	* Source/GSTitleView.m (-mouseDown:): Always initialize
	startWindowOrigin.
	* Source/NSApplication.m (-setApplicationIconImage:): Add casts
	to avoid warnings.
	* Source/NSCell.m (-cellSize): Add default: case.
	* Source/NSPasteboard.m
	([GSFiltered -pasteboard:provideDataForType:]): Detect and warn if we
	can't find a filter that will get us the desired type.
	* Source/NSProgressIndicator.m: Comment out unused variable 'images'.
	* Source/NSBezierPath.m: Declare GSBezierPath fully before using it.
	(-bezierPathByFlatteningPath, -bezierPathByReversingPath): Make sure
	variables are always initialized.

	* Source/NSMenuView.m,
	* Source/NSPrintOperation.m,
	* Source/NSSplitView.m,
	* Source/NSTableHeaderView.m: Make sure variables are always
	initialized.

	* Source/NSBox.m,
	* Source/NSImageview.m,
	* Source/NSText.m,
	* Source/NSTextStorage.m: Add missing includes.

	* Source/GSKeyBindingTable.m,
	* Source/GSLayoutManager.m,
	* Source/NSBitmapImageRep+PNM.m,
	* Source/NSBundleAdditions.m,
	* Source/NSLayoutManager.m,
	* Source/nsimage-tiff.h,
	* Source/tiff.m,
	* Headers/Additions/GNUstepGUI/GSDisplayServer.h,
	* Source/GSDisplayServer.m: Change signedness of various variables.

	* Source/NSPanel.m (-sendEvent:): Remove.
	* Source/NSWindow.m (-becomesKeyOnlyIfNeeded): New method.
	(-_sendEvent:becomesKeyOnlyIfNeeded:): Remove. Move code ...
	(-sendEvent:): ... here. Use -becomesKeyOnlyIfNeeded instead
	of the argument.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@20590 72102866-910b-0410-8b05-ffd578937521
2005-01-21 20:39:18 +00:00
Alexander Malmberg
36f5227473 Fix calculation of used rect.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@19861 72102866-910b-0410-8b05-ffd578937521
2004-08-10 00:08:42 +00:00
Alexander Malmberg
77a10cb02f Optimize -usedRectForTextContainer:.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@19857 72102866-910b-0410-8b05-ffd578937521
2004-08-09 19:50:01 +00:00
Alexander Malmberg
bc3d8f4913 Optimize -usedRectForTextContainer:.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@19856 72102866-910b-0410-8b05-ffd578937521
2004-08-09 19:49:24 +00:00
Alexander Malmberg
cfe33cfa9e (-_generateGlyphsForRun:at:): Use a properly typed function pointer for characterIsMember.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@19290 72102866-910b-0410-8b05-ffd578937521
2004-05-12 13:55:46 +00:00
Fred Kiefer
3480b30e56 Added missing method [isValidGlyphIndex:].
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@17749 72102866-910b-0410-8b05-ffd578937521
2003-09-29 21:25:46 +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
Fred Kiefer
7caced9d58 (_glyphDumpRuns,
helpers::generateRunsToCharacter:,
helpers::generateGlyphsUpToCharacter:,
helpers::generateGlyphsUpToGlyph:,
helpers::glyphForCharacter:index:positions::, getGlyphs:range:,
characterRangeForGlyphRange:actualGlyphRange:,
glyphRangeForCharacterRange:actualCharacterRange:,
invalidateGlyphsForCharacterRange:changeInLength:actualCharacterRange:,
insertTextContainer:atIndex:):
Removed compiler warning about signed/unsigned comparision.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@17041 72102866-910b-0410-8b05-ffd578937521
2003-06-26 23:25:34 +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
8a2e943bbd Detect and handle gaps in the soft invalidated layout information.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16639 72102866-910b-0410-8b05-ffd578937521
2003-05-05 20:52:24 +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
c6beeb60ec Make sure the text storage doesn't have unprocessed editing when using it.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16378 72102866-910b-0410-8b05-ffd578937521
2003-04-06 13:12:34 +00:00
Alexander Malmberg
74704f51e3 When steping forward at the end of the glyph runs, correctly handle the case where the current run is extended.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16345 72102866-910b-0410-8b05-ffd578937521
2003-04-03 18:31:25 +00:00
Alexander Malmberg
df47a8fe60 (-usedRectForTextContainer:): Don't add the extra line frag rect.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16118 72102866-910b-0410-8b05-ffd578937521
2003-03-03 18:32:55 +00:00
Alexander Malmberg
7c79dae556 Add and implement -typesetter and -setTypesetter:.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16115 72102866-910b-0410-8b05-ffd578937521
2003-03-03 13:57:53 +00:00