Commit graph

7890 commits

Author SHA1 Message Date
Eric Wasylishen
5f73c3f623 * Source/NSLayoutManager.m:
* Source/NSGraphicsContext.m:
* Headers/AppKit/DPSOperators.h:
* Headers/AppKit/NSGraphicsContext.h:
* Headers/Additions/GNUstepGUI/GSMethodTable.h:
New GSShowGlyphsWithAdvances, which replaces
GSShowGlyphs as the primitive text drawing method.
(used by -[NSLayoutManager drawGlyphsForGlyphRange:atPoint:])

Requires r33121 in -back.

Note that the advances aren't actually used by -back yet so
text output should be unchanged.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33122 72102866-910b-0410-8b05-ffd578937521
2011-05-26 03:55:55 +00:00
Eric Wasylishen
07ee1e9f6c * Source/NSComboBoxCell.m: Correct positioning of popup window when
a scale factor is in use.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33120 72102866-910b-0410-8b05-ffd578937521
2011-05-25 23:45:19 +00:00
Eric Wasylishen
4736b353dc Add a FIXME to NSLayoutManager
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33118 72102866-910b-0410-8b05-ffd578937521
2011-05-25 21:47:30 +00:00
David Chisnall
4f1f0f90f0 Added ChangeLog entry from last commit
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33112 72102866-910b-0410-8b05-ffd578937521
2011-05-25 11:19:44 +00:00
David Chisnall
2ccfbde833 Change direct references to the isa pointer to calls to object_getClass(). In
discussion with Steve Naroff (before he left Apple) it was decided that the isa
pointer should be regarded as an implementation detail and not part of the
language, so direct references to it are deprecated (on OS X).  This gives the
runtime a bit more freedom to do secret isa-swizzling tricks.

I've had these changes sitting in my copy for ages - no idea why they weren't
committed.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33111 72102866-910b-0410-8b05-ffd578937521
2011-05-25 11:19:09 +00:00
Fred Kiefer
1964b0d902 Clean up the code and the GNUmakefile of the say tool.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33091 72102866-910b-0410-8b05-ffd578937521
2011-05-23 11:29:52 +00:00
Fred Kiefer
f881df45ed Add OSX 10.5 methods.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33081 72102866-910b-0410-8b05-ffd578937521
2011-05-21 22:18:22 +00:00
Fred Kiefer
f4a8cab41b * Source/NSView.m (-setSubviews:): New method.
Code by Banlu Kemiyatorn <object@gmail.com>.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33068 72102866-910b-0410-8b05-ffd578937521
2011-05-19 08:19:13 +00:00
Fred Kiefer
2608a790ed Method to get all images from an ICNS file.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33062 72102866-910b-0410-8b05-ffd578937521
2011-05-18 20:07:02 +00:00
Fred Kiefer
6c54fd6be5 Remove most uses of the method [NSView -removeSubview:].
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33047 72102866-910b-0410-8b05-ffd578937521
2011-05-15 14:42:08 +00:00
Eric Wasylishen
d199cb565e * Source/NSTextView.m: Use pointing hand cursor for links
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33043 72102866-910b-0410-8b05-ffd578937521
2011-05-15 06:55:33 +00:00
Eric Wasylishen
360c974c4e * Source/NSTableHeaderView.m: Use resize cursors
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33042 72102866-910b-0410-8b05-ffd578937521
2011-05-15 05:48:22 +00:00
Eric Wasylishen
7e17fa5ca5 * Source/NSTextView.m: Use IBeam cursor if selectable
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33041 72102866-910b-0410-8b05-ffd578937521
2011-05-15 05:03:14 +00:00
Eric Wasylishen
d84b435d98 * Source/NSSplitView.m: Use resize cursors
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33040 72102866-910b-0410-8b05-ffd578937521
2011-05-15 04:24:20 +00:00
Fred Kiefer
947ed83d99 Partial fix for bug #32845
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33038 72102866-910b-0410-8b05-ffd578937521
2011-05-14 18:00:13 +00:00
Fred Kiefer
dfa18a81da * Source/GSXibLoader.m: Add support for the "array" and
"dictionary" elements found in newer XIB files (Version >= 8).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33022 72102866-910b-0410-8b05-ffd578937521
2011-05-11 08:53:31 +00:00
Eric Wasylishen
18a1c91c6c * Source/Functions.m: For functions which set the fill or stroke
color as part of their implementation, save/restore the graphics
state so that the user's fill/stroke color isn't overwritten.
See the PixelExactDrawing test in GSTest for an example.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33021 72102866-910b-0410-8b05-ffd578937521
2011-05-11 07:53:04 +00:00
Eric Wasylishen
ea05d7fa37 * Source/NSButtonCell.m (-drawImage:withFrame:inView:): Align
the point at which the image is drawn to the nearest pixel.

r32895 which reimplemented -[NSImage composite..] methods
on top of -[NSImage draw...] methods means that drawing
images with -compositeToPoint: no longer pixel-aligns
the image automatically. The new behaviour matches
Cocoa, however.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33002 72102866-910b-0410-8b05-ffd578937521
2011-05-07 21:37:14 +00:00
Eric Wasylishen
5b0bfe8f6e 011-05-07 Eric Wasylishen <ewasylishen@gmail.com>
* Source/NSView.m (-convertPoint:toView:): Correct this
	method; it was applying the transforms backwards :-(


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33001 72102866-910b-0410-8b05-ffd578937521
2011-05-07 21:30:25 +00:00
Eric Wasylishen
c241019926 * Tests/gui/NSView/NSView_frame_bounds.m: Add some more tests
of setBoundsSize:. They are currently failing (but pass on
OS X).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32990 72102866-910b-0410-8b05-ffd578937521
2011-05-06 01:01:21 +00:00
Eric Wasylishen
d5c2d502e2 2 more high-res images
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32981 72102866-910b-0410-8b05-ffd578937521
2011-05-04 20:14:47 +00:00
Eric Wasylishen
95263d9d43 * Images: Add a few more high-res images (arrows)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32977 72102866-910b-0410-8b05-ffd578937521
2011-05-04 10:16:26 +00:00
Eric Wasylishen
ce051d9bd8 * Source/NSScreen.m: Use -userSpaceScaleFactor to calculate
NSDeviceResolution
* Source/NSImage.m: Implement -_bestRep:withResolutionMatch:
* Images/common_Dimple.tiff:
* Images/common_3DArrowRight.tiff: Add to these images
a second 'page' at 4x the original resolution which I drew.

If you use GSScaleFactor > 1 then the high resolution version
of these images should be used.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32975 72102866-910b-0410-8b05-ffd578937521
2011-05-04 01:33:21 +00:00
Eric Wasylishen
2873a337e6 * Images: Ensure all images have their DPI metadata set to 72.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32965 72102866-910b-0410-8b05-ffd578937521
2011-05-01 22:57:08 +00:00
Eric Wasylishen
b384d732ff * Source/NSLayoutManager.m
(-characterIndexMoving:fromCharacterIndex:originalCharacterIndex:distance:):
Rework this method to suport moving the insertion point between text
containers, for both left/right and up/down movements. However, it will
only have this behaviour when distance == 0.

This is part of what is needed to support moving the insertion point
between text views in, e.g., TextEdit when using the multi-page view.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32964 72102866-910b-0410-8b05-ffd578937521
2011-05-01 22:06:45 +00:00
Eric Wasylishen
b00942ae92 * Source/NSView.m (-updateBoundsMatrix):
Fix a bug where updateBoundsMatrix would refuse to restore a
view's scale to its original value, after a modified bounds rect
had been set.
* Source/NSView.m (-setBounds:, -setBoundsOrigin:, -setBoundsSize:):
Call [self setNeedsDisplay: YES]; at the ends of these methods.
While the Cocoa docs explicitly say that calling these methods
won't mark the view as needing redisplay, this doesn't seem to
be true in practice.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32955 72102866-910b-0410-8b05-ffd578937521
2011-04-30 06:40:14 +00:00
Eric Wasylishen
019d81dc22 * Source/NSOutlineView.m: Implement -keyDown: to expand/contract
items.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32954 72102866-910b-0410-8b05-ffd578937521
2011-04-30 05:46:44 +00:00
Eric Wasylishen
a3fe4dcbec * Source/NSTextView.m (-mouseDown:):
Add support for making selections with the mouse which span multiple
text views
* Source/NSTextView.m (-setSelectedRange:affinity:stillSelecting:):
Replace the complex display invalidation code with two calls to
-[NSLayoutManager invalidateDisplayForCharacterRange:], which will
take care to invalidate all necessary text views.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32953 72102866-910b-0410-8b05-ffd578937521
2011-04-30 04:49:51 +00:00
Eric Wasylishen
e4458742a1 * Source/NSTextView.m (-setTypingAttributes:) Guard against
nil layout manager


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32952 72102866-910b-0410-8b05-ffd578937521
2011-04-30 04:30:45 +00:00
Eric Wasylishen
63b253d53f * Source/NSPopUpButtonCell.m: Override -representedObject and
-setRepresentedObject: with implementations that delegate the
call to [self selectedItem] (the NSMenuItem).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32943 72102866-910b-0410-8b05-ffd578937521
2011-04-29 00:17:01 +00:00
Eric Wasylishen
ea58698be4 * Source/NSTextView.m (-selectionRangeForProposedRange:granularity:):
Remove a special case which caused this method to refuse to
expand a range {[string length], 0}.
This was why the align left/center/right menu items didn't work
in Ink when the insertion point was at the end of a document.
The behaviour should match OS X now.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32935 72102866-910b-0410-8b05-ffd578937521
2011-04-27 09:19:53 +00:00
Eric Wasylishen
a2f673e468 * Headers/AppKit/NSSavePanel.h:
* Source/NSSavePanel.m: Implement -setNameFieldStringValue:,
-nameFieldStringValue, -setNameFieldLabel:, -nameFieldLabel.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32933 72102866-910b-0410-8b05-ffd578937521
2011-04-27 04:55:22 +00:00
Eric Wasylishen
9db8881062 * Source/NSTextView.m (-setRulersVisible:): Create a horizontal ruler on
the scroll view if needed - this seems to be the OS X behaviour.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32932 72102866-910b-0410-8b05-ffd578937521
2011-04-27 04:00:33 +00:00
Eric Wasylishen
2042ff816c * Source/NSImage.m (-nativeDrawInRect:...): Fix a bug in my recent change
here which mis-positioned images.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32921 72102866-910b-0410-8b05-ffd578937521
2011-04-21 23:21:44 +00:00
Eric Wasylishen
76d30190e9 * Source/tiff.m:
* Source/nsimage-tiff.h:
* Source/NSBitmapImageRep.m: Read DPI metadata in TIFF files and use this
to set the point size of the image rep


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32920 72102866-910b-0410-8b05-ffd578937521
2011-04-21 22:19:06 +00:00
Eric Wasylishen
50e9a10212 * Source/NSImage.m (-nativeDrawInRect:...): Make the cache window
large enough so that detail is preserved when drawing using a scale factor
larger than 1. This change should only improve output quality but not
affect image drawing otherwise.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32917 72102866-910b-0410-8b05-ffd578937521
2011-04-21 05:46:06 +00:00
Eric Wasylishen
96450245fe * Source/NSBitmapImageRep+PNG.m: Read DPI metadata in PNG files
and use this to set the point size of the image rep


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32916 72102866-910b-0410-8b05-ffd578937521
2011-04-20 21:41:17 +00:00
Eric Wasylishen
dd335948b1 * ColorPickers/GSWheelColorPicker.m: Choose the color wheel bitmap size
by converting the bounds rect to window base coordinates


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32899 72102866-910b-0410-8b05-ffd578937521
2011-04-19 08:59:03 +00:00
Eric Wasylishen
d92c92984d * Source/NSScreen.m: Read -userSpaceScaleFactor from the GSScaleFactor
user default.
* Source/GSWindowDecorationView.m: Apply -[NSScreen userSpaceScaleFactor]
in +frameRectForContentRect and +contentRectForFrameRect, as well as
setting a scaled bounds size in -layout.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32898 72102866-910b-0410-8b05-ffd578937521
2011-04-19 08:42:59 +00:00
Eric Wasylishen
346f604cb7 * Source/NSWindow.m: Remove unnecessary FIXMEs related to
user space scale factor
* Source/NSAppliation.m: Correct app icon sizing which was
mixing up window frame coordinates and user space coordinates
* Source/NSCachedImageRep.m: Add NSUnscaledWindowMask to the
window used internally


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32897 72102866-910b-0410-8b05-ffd578937521
2011-04-19 08:23:01 +00:00
Eric Wasylishen
b4e8ecd7cf * Source/NSScreen.m (-userSpaceScaleFactor):
Temporarily fix the scale factor at 1.0 until the remaining parts
of the high DPI patch are committed.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32896 72102866-910b-0410-8b05-ffd578937521
2011-04-18 23:21:11 +00:00
Eric Wasylishen
a6ec05473b * Source/NSImage.m (-compositeToPoint:fromRect:operation:fraction:):
New simple implementation which calls
-drawAtPoint:fromRect:operation:fraction:.
Also respects the user space scale factor.
* Source/NSImage.m (-guiDrawInRect:fromRect:operation:fraction):
Remove a special case which called -compositeToPoint:..., which would
cause an infinite loop when combined with the above change.

Also avoid using -drawRepresentation:inRect: because -drawInRect:...
is supposed to fill the destination rect regardless of the setting
of -scalesWhenResized. This is a change borrowed from
-nativeDrawInRect:...


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32895 72102866-910b-0410-8b05-ffd578937521
2011-04-18 23:12:28 +00:00
Fred Kiefer
e8745434cd * Source/NSMenu.m (-_organizeMenu): Move some code around to avoid
a compiler warning.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32890 72102866-910b-0410-8b05-ffd578937521
2011-04-18 22:24:08 +00:00
Fred Kiefer
2a781c1651 * Source/NSViewController.m (-loadView): Retain the topLevelObjects.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32889 72102866-910b-0410-8b05-ffd578937521
2011-04-18 22:12:08 +00:00
Eric Wasylishen
eb4dc65d90 * Source/NSMenuView.m (-setWindowFrameForAttachingToRect:...):
This method mixed user space and window base coordinates in some
places, which I fixed.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32888 72102866-910b-0410-8b05-ffd578937521
2011-04-18 21:10:55 +00:00
Eric Wasylishen
a5a57fdfdf * Source/NSView.m (-_rebuildCoordinates): Remove assumption that
the window content view's superview's transformation matrix is
the identity matrix.
* Source/NSView.m (-convertPoint..., convertRect..., convertSize...):
Rewrite these methods to remove the same assumption as above, and
also call -_matrixToWindow/-_matrixFromWindow rather than accessing
ivars directly.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32887 72102866-910b-0410-8b05-ffd578937521
2011-04-18 21:02:36 +00:00
Eric Wasylishen
0fccc78bad * Source/GSStandardWindowDecorationView.m: Use bounds rect instead
of frame rect when laying out the window parts (title bar, etc).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32886 72102866-910b-0410-8b05-ffd578937521
2011-04-18 20:49:39 +00:00
Fred Kiefer
e1e89d3818 Fix XIB loading bug #33042
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32884 72102866-910b-0410-8b05-ffd578937521
2011-04-18 08:44:25 +00:00
Eric Wasylishen
e166bb2e52 gui: Copy the -Wdeclaration-after-statement test from base. Also adds -Wall.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32879 72102866-910b-0410-8b05-ffd578937521
2011-04-17 21:38:38 +00:00
Adam Fedor
8b3dc08245 Bumb version to unstable
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32852 72102866-910b-0410-8b05-ffd578937521
2011-04-14 03:04:13 +00:00