Commit graph

66 commits

Author SHA1 Message Date
fredkiefer
cd1d8d3174 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
ericwa
faa4f9b8ce * 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
rfm
89b2b64d5e 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
rmottola
c028d0568d 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
fredkiefer
bbd17d9e16 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
fredkiefer
30240921b4 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
fredkiefer
e64aca8bb2 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
gcasa
08af90abe3 * 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
gcasa
c1197686ac * 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
fredkiefer
5eeaed8339 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
rfm
44fa81f7fc 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
fredkiefer
6776d5b06b 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
fredkiefer
62d0cdf623 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
fedor
ce41d782c1 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
gcasa
d7968bb04b 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
fredkiefer
ffd3b2f332 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
fredkiefer
22e2aee612 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
fredkiefer
0c7b8fad15 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
rfm
efe3ed5993 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
fredkiefer
e25cceb710 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
fredkiefer
0a607a5fbe 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
ratmice
b913f96dc2 * 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
rfm
2ed1c70692 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
CaS
6988bf34c2 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
fedor
db3c52eab8 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
alexm
8b0730a303 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
alexm
ba5384b986 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
alexm
f97bdf037e 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
alexm
83cca92909 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
alexm
8a4f79d54d (-_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
FredKiefer
9eaf173210 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
ayers
9732999fd8 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
FredKiefer
47f3feff6c (_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
fedor
fc402789db 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
alexm
0c29bdf045 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
alexm
77261b37c3 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
alexm
71c421778a 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
alexm
8e14f25072 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
alexm
ba56fb1e7e (-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
alexm
9a2fd89144 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
alexm
421c6cf381 (-_generateRunsToCharacter:): Optimize the run structure by merging with an existing run instead of creating a new run under some circumstances.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16074 72102866-910b-0410-8b05-ffd578937521
2003-02-25 23:55:03 +00:00
alexm
a807d2eb25 Set the next character index correctly after the run-merge optimization.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16064 72102866-910b-0410-8b05-ffd578937521
2003-02-24 14:26:22 +00:00
alexm
a54da88ec2 Fix handling of the case where the exact glyph is found during the binary search.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16060 72102866-910b-0410-8b05-ffd578937521
2003-02-24 02:53:20 +00:00
alexm
3b7974675d 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
alexm
f92b3e1d3d Optimizations.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16010 72102866-910b-0410-8b05-ffd578937521
2003-02-19 14:12:16 +00:00
alexm
f841f5bf3a Optimize.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16007 72102866-910b-0410-8b05-ffd578937521
2003-02-19 02:18:41 +00:00
alexm
c2e1f1fa8e Optimize reuse of soft-invalidated layout a bit in a common case.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16006 72102866-910b-0410-8b05-ffd578937521
2003-02-18 23:34:51 +00:00
alexm
9c80e2a6ba Correct the condition for splitting the initial run.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16005 72102866-910b-0410-8b05-ffd578937521
2003-02-18 23:16:29 +00:00
alexm
46b1dab064 Add basic interface that lets the typesetter access soft-invalidated layout information.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16003 72102866-910b-0410-8b05-ffd578937521
2003-02-18 20:26:49 +00:00
alexm
f5d30aaf97 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