id<NSMenuItem> to NSMenuitem* as it is done by Apple too
fixes warnings in NSApplication.m and NSTextView.m
OK Fred Kiefer
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@38568 72102866-910b-0410-8b05-ffd578937521
* Source/NSTableView.m:
Create working stubs for table view batch insertions/removals of
rows
Patch by Marcian Lytwyn <gna@advcsi.com>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@38240 72102866-910b-0410-8b05-ffd578937521
* Source/GSXibLoader.m: Fix object ID parsing in XIB loading due
to Apple moving to string ID represenatation.
Patch by Marcian Lytwyn <gna@advcsi.com>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@38236 72102866-910b-0410-8b05-ffd578937521
* Source/NSStatusItem.m
make return value of -sendActionOn: match apple documentation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37925 72102866-910b-0410-8b05-ffd578937521
* Source/NSTextAttachment.m: Use NSUInteger and bring closer to
the Apple implementation.
* Source/GSHorizontalTypesetter.m (-layoutLineNewParagraph:):
For attachments use the cell origin y flipped.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37704 72102866-910b-0410-8b05-ffd578937521
identifier used by the backend's windowing system instead of
just the GNUstep-internal window number. On X11, the identifier
is useful, among other things, to implement the D-Bus menu
protocol.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37533 72102866-910b-0410-8b05-ffd578937521
* Headers/AppKit/NSApplication.h
* Headers/AppKit/NSControl.h
* Headers/AppKit/NSPopover.h
* Headers/AppKit/NSSavePanel.h
* Headers/AppKit/NSTableView.h
* Headers/AppKit/NSTextView.h
* Headers/AppKit/NSWindow.h: Use GS_PROTOCOLS_HAVE_OPTIONAL to
protect the @optional keyword in protocol definitions.
Based on base patch by Marcus Mueller <znek@mulle-kybernetik.com>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37530 72102866-910b-0410-8b05-ffd578937521
* Source/GSModelLoaderFactory.m: Add new method +supportedTypes.
* Source/NSBundleAdditions.m: Use this new method to implement
NIB resource detection on top of the base methods instead of doing
it here.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37421 72102866-910b-0410-8b05-ffd578937521
* Source/GSThemeTools.m:
* Headers/Additions/GNUstepGUI/GSTheme.h: Small refactor:
most uses of -[GSTheme fillRect:withTiles:background:] use
[NSColor clearColor], so add a version without the background:
param.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37244 72102866-910b-0410-8b05-ffd578937521
border using part GSColorWellInnerBorder
* Source/GSTheme.m:
* Headers/Additions/GNUstepGUI/GSTheme.h: Add GSColorWellInnerBorder
part name
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37240 72102866-910b-0410-8b05-ffd578937521
part name, instead themes should just provide a part called NSScrollView.
Add -scrollViewScrollersOverlapBorders method.
* Source/GSTheme.m: Remove GSScrollViewBottomCorner part name.
* Source/GSThemeDrawing.m: Add -scrollViewScrollersOverlapBorders.
* Source/GSThemeDrawing.m (-drawBrowserRect:...): If
-scrollViewScrollersOverlapBorders is enabled, fill the browser background
with the NSScrollView tile.
* Source/GSThemeDrawing.m (-drawScrollViewRect:...): If
-scrollViewScrollersOverlapBorders is enabled, fill the scroll view background
with the NSScrollView tile.
* Source/NSScroller.m (-rectForPart:): Change the meaning of the
GSScrollerKnobOvershoot default so the knob only overlaps the buttons
by this much (rather than both ends of the track). Turns out this is more
useful for themes.
* Source/NSScrollView.m (-tile): Add support for
-[GSTheme scrollViewScrollersOverlapBorders]
* Source/NSBrowser.m (-tile): Add support for
-[GSTheme scrollViewScrollersOverlapBorders] and
-[GSTheme scrollViewUseBottomCorner]
The overall point of these additions is to support NSScrollView and
NSBrowser looking like: http://jesseross.com/clients/gnustep/ui/concepts/
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37238 72102866-910b-0410-8b05-ffd578937521
method.
* Source/GSThemeDrawing.m:
* Source/NSTabView.m: Move the -contentRect implementation to GSTheme
so we can delegate to GSDrawTiles, if used.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37234 72102866-910b-0410-8b05-ffd578937521
control state: GSThemeFirstResponderState,
GSThemeHighlightedFirstResponderState,
and GSThemeSelectedFirstResponderState. This lets themes draw
custom first responder tiles, if the desired effect can't be
accomplished by drawing on top of an existing button.
* Source/GSThemeDrawing.m (-drawFocusFrame:inRect:):
Use tiles named "NSFocusRing" if available, else draw dotted
rect.
* Source/GSTheme.m:
* Source/NSButtonCell.m: Use new GSTheme*FirstResponderState
states
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37227 72102866-910b-0410-8b05-ffd578937521
* Source/GSTheme.m: Add GSProgressIndicatorBezel part name
* Source/GSThemeDrawing.m (-drawProgressIndicatorBezel:withClip:):
Use GSProgressIndicatorBezel to draw bezel if available.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37222 72102866-910b-0410-8b05-ffd578937521
organized, lay out the images in a straightforward way, and
allow themeing the fill part of the tab between the end images.
The output is almost pixel-identical to
the old code (only some unnoticable 1-pixel differences
in where shadows end). It's also organized so that adding support
for left and right tabs should be easy.
* Headers/Additions/GNUstepGUI/GSTheme.h: Add some part names
* Images/common_Tab*.tiff: Tweak to work with the new layout code.
All top images are now the same size, as are all bottom images.
* Images/GNUmakefile:
* Images/common_TabUnSelectToSelectedJunction.tiff: Renamed to
Images/common_TabUnSelectedToSelectedJunction.tiff
* Source/GSThemePrivate.h:
* Source/GSTheme.m: Add GSStringFromTabViewType utility function
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37205 72102866-910b-0410-8b05-ffd578937521
* Source/GSThemeDrawing.m:
* Source/NSPopUpButtonCell.m:
Remove -[GSTheme drawBorderAndBackgroundForPopUpButtonCell:
withFrame:inView:state:] which I added recently, and just use
-[GSTheme drawButton:in:view:style:state]. This way,
NSPopUpButtonCell automatically supports all of the different
NSBezelStyles.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37202 72102866-910b-0410-8b05-ffd578937521
* Source/GSTheme.m:
* Source/GSThemeDrawing.m:
* Source/NSBox.m: Factor out -[NSBox drawRect:] to GSTheme
method -drawBoxInClipRect:boxType:borderType:inView:.
Add a tiles name GSBoxBorder for themeing the box border.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37188 72102866-910b-0410-8b05-ffd578937521
* Source/GSTheme.m:
Declare GSSliderHorizontalTrack and GSSliderVerticalTrack
part names for themeing the background of NSSlider
* Source/GSThemeDrawing.m:
Add new drawSliderBorderAndBackground:frame:inCell:isHorizontal:
method to draw the slider border and background.
* Source/GSThemePrivate.h:
* Source/GSThemeTools.m:
Add a -size method on GSDrawTiles which returns the total
original size of the tiles, so we can easily compute a rect
that scales the tiles in only one dimension.
* Source/NSSliderCell.m:
Override _drawBorderAndBackgroundWithFrame: to call new
GSTheme method. Also, tweak the knob drawing code; the knob
is now centered and drawn at its native size. This still looks
correct with the default slider sizes create by Gorm.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37185 72102866-910b-0410-8b05-ffd578937521
* Source/GSTheme.m:
* Source/GSThemeDrawing.m:
* Source/NSPopUpButtonCell.m: Add a theme part GSPopUpButton
so NSPopUpButtonCell can be drawn with a different background
than NSMenuItemCell.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37183 72102866-910b-0410-8b05-ffd578937521
* Source/NSScrollView.m:
* Source/GSThemeDrawing.m:
* Source/GSTheme.m: Add GSScrollViewUseBottomCorner default,
which themes can set to NO to leave a square gap in the bottom-
left (or bottom-right) corner where the horizontal and vertical
scrollers meet.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37176 72102866-910b-0410-8b05-ffd578937521
* Source/GSThemeDrawing.m:
* Headers/Additions/GNUstepGUI/GSTheme.h: Add GSBrowserUseBezels
user default. Themes can set it to NO to prevent NSBrowser from
drawing any bezels, even if separatesColumns is set to YES.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37174 72102866-910b-0410-8b05-ffd578937521
macros to static floats. Cache the values in +initialize and
when GSThemeDidActivateNotification is sent, by calling the
new GSTheme methods.
* Source/GSThemeDrawing.m:
* Headers/Additions/GNUstepGUI/GSTheme.h: Add
-browserColumnSeparation and -browserVerticalPadding methods
which access user defaults GSBrowserColumnSeparation and
GSBrowserVerticalPadding. These determine the padding between
browser columns, and the vertical padding between the bottom
scroller, contents, and headers.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37171 72102866-910b-0410-8b05-ffd578937521
* Source/GSTitleView.m:
* Source/GSThemeDrawing.m:
* Headers/Additions/GNUstepGUI/GSTheme.h: Add GSMenuTitleBackground
theme tile for themeing the background of GSTitleView.
NOTE: I removed some code that was in -[GSTitleView drawRect:] for
drawing with a different style when the GSTitleView is NOT owned
by an NSMenu, but by an NSWindow/NSPanel (_ownedByMenu == NO).
If needed, this can be added back, but it doesn't appear to ever
be used in gnustep-gui - GSTitleView is only created in one place,
with NSMenu as the owner.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37165 72102866-910b-0410-8b05-ffd578937521
* Headers/AppKit/NSTreeNode.h: Add method declarations to these
* files.
* Headers/AppKit/AppKit.h,
* Source/GNUmakefile: Include new files.
* Source/NSObjectController.m (+initialize, -selection): Get
* basic
binding example working.
* Source/NSTreeController.m: Minimal implementation.
* Source/NSTreeNode.m: Full implementation of this class.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36991 72102866-910b-0410-8b05-ffd578937521
* Source/GSDisplayServer.m: Add new method -setIgnoreMouse::
* with
empty implementation.
* Source/NSWindow.m (-setIgnoresMouseEvents:): Use this new
* method.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36854 72102866-910b-0410-8b05-ffd578937521
for popoverShouldClose:
* Headers/AppKit/NSWindow.h: add convertRectToScreen: and
convertRectFromScreen: methods.
* Source/NSPopover.m: Correct delegate method for popoverShouldClose:.
Changes to align popover window with rect it is being placed relative
to.
* Source/NSWindow.m: implementation of convertRectToScreen: and
convertRectFromScreen: methods.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36577 72102866-910b-0410-8b05-ffd578937521
* -selectedRowIndexes): Return an
autoreleased copy of the corresponding ivar. Returning a
reference to the ivar
leads to issues (and behavior different from Cocoa) when
iterating thru the
indexsets if at a time they would be being altered.
Patch by Frank LeGrand (flegrand@testplant.com).
* Source/GNUmakefile: Add NSCollectionViewItem.
* Headers/AppKit/NSCollectionView.h,
* Headers/AppKit/NSCollectionViewItem.h,
* Source/NSCollectionViewItem.m,
* Source/NSCollectionView.m: Bring closer to the GNUstep coding
* standard.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36551 72102866-910b-0410-8b05-ffd578937521
* Headers/AppKit/NSCollectionViewItem.h
* Source/GNUmakefile
* Source/NSCollectionViewItem.m
* Source/NSCollectionView.m: Added NSCollectionView and
NSCollectionViewItem classes from testplant branch. Made changes
to original patch to conform to coding standards, NSCoding for
non-keyed archiving and moved instances of float/integer to
CGFloat and NSInteger/NSUInteger as appropriate.
Patch by Doug Simons (dsimons@testplant.com) and
Frank LeGrand (flegrand@testplant.com).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36545 72102866-910b-0410-8b05-ffd578937521
int -> NSInteger transitions for NSOutlineView protocol
OK Fred
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36240 72102866-910b-0410-8b05-ffd578937521
* Source/NSSplitView.m: Change to CGFloat, NSUInteger and NSInteger.
Patch partly by Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36109 72102866-910b-0410-8b05-ffd578937521
* Source/NSPageLayout.m: Change int to NSInteger.
Patch by Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36092 72102866-910b-0410-8b05-ffd578937521
Fix all of the current warnings in Gorm so that it can be used to test
NSInteger things.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36039 72102866-910b-0410-8b05-ffd578937521
state of the view has changed. Call this method all the times
instead of checking _coordinates_valid.
This change allows views to dynamically change their flipped
state.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35928 72102866-910b-0410-8b05-ffd578937521
matrixExplicitlySet.
Patch by Derek Fawcus <dfawcus@cisco.com>.
* Source/NSFont.m: Remove all other usages of
matrixExplicitlySet.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35926 72102866-910b-0410-8b05-ffd578937521
-_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
* 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
separate method -_replacementFontName and add replacement for
"Helvetica-" prefix.
* Header/AppKit/NSLayoutManager.h: Add some 10.5 methods.
* Source/NSLayoutManager.m: Simple implementations for these new
methods.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35922 72102866-910b-0410-8b05-ffd578937521
for method setKeyEquivalent:forButtonCell:
* Source/GSThemeDrawing.m: Add implementation for method
setKeyEquivalent:forButtonCell:
* Source/NSButtonCell.m: Add call to new method.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35702 72102866-910b-0410-8b05-ffd578937521
for a window (and tab view item). This implicit key view is created
when a window is made key and does not have an explicit key view loop,
which is detected by checking the initial first responder of the
window.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35632 72102866-910b-0410-8b05-ffd578937521
* Source/NSCell.m (+initialize): Expose title binding.
* Source/NSOpenPanel.m (-runModal): Use _directory if it is set.
* Source/NSTableView.m (-validateEditing): Check _isValidating to
prevent recursive calls into validateEditing.
* Source/NSTabView.m (-initWithCoder:): Set _selected_item to
NSNotFound.
* Source/NSView.m (-addSubview:): Do not throw an exception when
adding a nil subview, just ignore it. This matches behavior on
Cocoa.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35562 72102866-910b-0410-8b05-ffd578937521
some functions with empty bodies so people don't get compiler warnings from
importing AppKit.h
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35035 72102866-910b-0410-8b05-ffd578937521
* Source/externs.m: Additional binding names.
* Source/GSBindingHelpers.h,
* Source/NSKeyValueBinding.m: Additional helper methods.
* Source/NSObjectController.m: Use helper methods.
* Source/NSArrayController.m: Signal when the arranged objects
change.
* Source/NSTableColumn.m,
* Source/NSTableView.m: First attempt at support for content
binding.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34923 72102866-910b-0410-8b05-ffd578937521
* Headers/AppKit/NSArrayController.h,
* Source/NSArrayController.m: Add some implementation to this class.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34904 72102866-910b-0410-8b05-ffd578937521
is a primitive method which subclasses should override.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34815 72102866-910b-0410-8b05-ffd578937521
* Source/NSImageView.m: Protect image drag with new ivar that
gets set via a new GNUstep extension method.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34580 72102866-910b-0410-8b05-ffd578937521
and unsigned with NSUInteger. This allows to recompile gui on
64 bit systems after the change to NSNotFound in base.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34312 72102866-910b-0410-8b05-ffd578937521
because NSNotFound no longer fits in unsigned int on 64-bit
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34295 72102866-910b-0410-8b05-ffd578937521
* Source/NSToolbar.m:
* Source/GSToolbarCustomizationPalette.m:
* Source/GSToolbarView.m:
* Source/NSToolbarItem.m:
* Source/NSToolbarFrameworkPrivate.h:
* Headers/AppKit/NSToolbar.h: Implement -initWithCoder: for
NSToolbar. This required a bit more work that usual because
toolbars created with -initWithCoder can operate without a delegate.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34189 72102866-910b-0410-8b05-ffd578937521
* Headers/AppKit/NSCell.h: Move NSImageScaling constants to NSCell
* Source/NSImageCell.m:
* Source/NSCell.m: Refactor the image scaling logic to a private
method in NSCell, -_scaleImageWithSize:toFitInSize:scalingType:
which can be share by NSImageCell, NSButtonCell, and any other
cell classes that need it.
* Source/NSButtonCell.m:
* Headers/AppKit/NSButtonCell.h: Implement -imageScaling and
-setImageScaling methods.
* Source/GSThemeDrawing.m:
* Headers/Additions/GNUstepGUI/GSTheme.h: Remove the
-drawImage:inButtonCell:withFrame:position: API intended
to let themes substitute images right before drawing,
as IMHO it's the wrong place to hook in new images (by
the time this method was caleld, sizing/positionging
was already done).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34160 72102866-910b-0410-8b05-ffd578937521
NSMenuItemCell to a new method in GSThemeDrawing.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@34079 72102866-910b-0410-8b05-ffd578937521
in place of the _fileTypes ivar. Replace calls to _setupForTypes: with
-setAllowedFileTypes:.
* Headers/AppKit/NSOpenPanel.h: Remove now unused _fileTypes ivar
* Source/NSSavePanel.m: Treat directories whose names have extensions
in the _allowedFileTypes array as file packages.
Previously, we only relied on -[NSWorkspace isFilePackageAtPath:],
to determine if a director is a file package, which only considers the
info.plists of installed applications.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33810 72102866-910b-0410-8b05-ffd578937521
on backends supporting GSdraw: (cairo). This means we don't have to
create a window for every call to draw an image, and gives me a 5-10x
speedup for image drawing.
* Source/NSCachedImageRep.m: Implement private method
-nativeDrawInRect:.. which is called by NSImageRep's
-drawInRect:fromRect:..., and efficiently draw the cached rep
using GSdraw:. Also make some changes so cached image reps can have a
DPI != 72.
* Headers/AppKit/NSCachedImageRep.h: New private init method that lets
you specify diferent pixel size and point size.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33765 72102866-910b-0410-8b05-ffd578937521
-drawInRect:fromRect:operation:fraction:respectFlipped:hints: method
* Source/NSImage.m:
* Source/NSImageRep.m: Refactor drawing code from NSImage to NSImageRep.
This should cause no functionlity change, but it lets NSImageRep
subclasses implement more efficient versions of -drawInRect:fromRect:...
that don't involve the (expensive) drawing of the image in a temporary
offscreen window and then drawing from there on to the destination surface.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33764 72102866-910b-0410-8b05-ffd578937521
Rename buttonBorderForCell:style:state: to buttonMarginsForCell:style:state:
and return the top/bottom/left/right margins instead of just two values.
(This is a theme API break.)
* Source/GSThemeDrawing.m: Implement buttonMarginsForCell:style:state:.
Also reduce the top and left margin of the default button by 1 pt, to
better reflect the button's appearance.
* Source/GSGuiPrivate.h: Add a GSRoundTowardsNegativeInfinity function
* Source/NSButtonCell.m (-drawImage:withFrame:inView:): Round the image
position down and to the right, as this seems to look the best.
* Source/NSButtonCell.m (-cellSize): Call new buttonMarginsForCell: method
* Source/NSButtonCell.m (-drawingRectForBounds:): Call new
buttonMarginsForCell: method
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33743 72102866-910b-0410-8b05-ffd578937521
* 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
* Headers/Additions/GNUstepGUI/GSDisplayServer.h: Add a new API for taking
screenshots: -contentsOfScreen:inRect:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33442 72102866-910b-0410-8b05-ffd578937521
* Headers/AppKit/NSAffineTransform.h,
* Headers/AppKit/NSView.h,
* Source/NSAffineTransform.m,
* Source/NSPrintOperation.m,
* Source/NSView.m: Use CGFlaot instead of float.
* Tests/gui/NSView/NSView_bounds_scale.m: New test file that currently fails.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33398 72102866-910b-0410-8b05-ffd578937521
* Headers/Additions/GNUstepGUI/GSGhostscriptImageRep.h:
* Source/GNUmakefile:
* Source/NSImageRep.m: New image rep which attempts to
invoke Ghostscript to rasterize PS/EPS/PDF images. It needs
some polishing but basically works.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33389 72102866-910b-0410-8b05-ffd578937521
Bug point out by Bluna Ratimonkey <object@gmail.com>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33364 72102866-910b-0410-8b05-ffd578937521
* Source/NSImageCell.m: Add support for NSImageScaleProportionallyUpOrDown
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33309 72102866-910b-0410-8b05-ffd578937521
which chooses the smallest rep larger than or equal to the provided size.
Modify -nativeDrawInRect:... to use the above method for choosing a rep.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33304 72102866-910b-0410-8b05-ffd578937521
the background of the NSSplitView transparent by default.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33139 72102866-910b-0410-8b05-ffd578937521
* 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
* Headers/AppKit/NSSavePanel.h: Implement -showsHiddenFiles
and -setShowsHiddenFiles:. Add a context menu to the browser
to allow toggling this setting.
NOTE: It defaults to not showing hidden files, and no longer
uses the GSFileBrowserHideDotFiles user default.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32560 72102866-910b-0410-8b05-ffd578937521
for old cell.
* Headers/AppKit/NSCursor.h
* gui/Source/NSCursor.m: Add Mac 10.6 methods and implement
keyed coding/decoding properly.
* Images/nsmapping.strings: Add mappings for some new cursors.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32538 72102866-910b-0410-8b05-ffd578937521
The Opal library is a more complete replacement for CoreGraphics.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32251 72102866-910b-0410-8b05-ffd578937521
Macintosh or Windows 95 style menus. Inspired by OS X, the menu
contains items to hide or show the application, to terminate the
application, an item for each window present in the application's
window menu, and the items of the dock menu returned by the
application delegate.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31892 72102866-910b-0410-8b05-ffd578937521
end up as dedicated attachments in attributed strings.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31828 72102866-910b-0410-8b05-ffd578937521
_rFlagsType.flipped_view.
Still needs some work to automatically invalidate coordinates when the
flipping changes e.g. between two drawing sessions.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31233 72102866-910b-0410-8b05-ffd578937521
See bug report #27782
In particular, fixed -[NSImage drawXXX] and -[NSImage composite/dissolveXXX]
methods to work exactly as Cocoa when the Cairo backend is used.
Added a new draw operator (in addition to composite) to the backend. Cairo is
the only backend that implements it for now.
Eliminated as many flipping checks as possible.
Warning: Untested with the winlib backend.
You must update, recompile and install both Back and Gui.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30523 72102866-910b-0410-8b05-ffd578937521
* Source/NSOutlineView.m: Add -parentForItem: and -frameOfOutlineCellAtRow:.
Use the later in -drawRow:clipRect:.
Change methods to use NSInteger and CGFloat.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30514 72102866-910b-0410-8b05-ffd578937521
displayPopUpMenu:... to handle the display of the popup menus for
themes.
* Source/GSThemeMenu.m: Added default implementation.
* Source/NSPopUpButtonCell.m: Call the displayPopUpMenu:... method
in the method attachPopUpWithFrame:inView:.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30433 72102866-910b-0410-8b05-ffd578937521
-(unsigned int)hash from Object and -(NSUInteger)hash from NSObject, when the
receiver is of type (id).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30429 72102866-910b-0410-8b05-ffd578937521
rightMouseMenu:forEvent: to allow theming of transient and
context menus.
* Source/GSThemeMenu.m: Implementation of method
rightMouseMenu:forEvent: to allow theming of transient and
context menus.
* Source/NSMenu.m: use the theming code implemented above instead
of rendering the menu directly.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30370 72102866-910b-0410-8b05-ffd578937521
menus. Fixes a bug where the services, windows, and recent documents
menu were defunct when loading the menu from a .nib file.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30363 72102866-910b-0410-8b05-ffd578937521
documents menu. Make the methods to access that menu available to
other classes in -gui.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30362 72102866-910b-0410-8b05-ffd578937521
Source/NSSliderCell.m: Check for atan2f function (not present on
old Solaris systems for instance).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30254 72102866-910b-0410-8b05-ffd578937521
graphics context isn't available (eg - from a subthread).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30226 72102866-910b-0410-8b05-ffd578937521
extension. Try to use higher level NIB loading methods where possible.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30077 72102866-910b-0410-8b05-ffd578937521
overriding of classes used for save/open panels.
* Source/GNUmakefile: Build new category.
* Source/GSThemeOpenSavePanels.m: Implementation of methods
-savePanelClass and -openPanelClass.
* Source/NSOpenPanel.m: Modifications to use class from current
theme.
* Source/NSSavePanel.m: Modifications to use class from current
theme.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29791 72102866-910b-0410-8b05-ffd578937521
declaration for updateAllWindowsWithMenu:
* Source/GSThemeMenu.m: Added default implementation of
updateAllWindowsWithMenu:
* Source/NSMenu.m: Added call to updateAllWindowsWithMenu: on
current theme.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29445 72102866-910b-0410-8b05-ffd578937521
pasting, and deleting full words in a text view or text field.
Note: I have changed NSTextView initialization to enable smart insert
and delete by default, since this is the default on OS X. (It is even
documented, though in a maybe obscure place, cf. "Text Editing
Programming Guide for Cocoa: Subclassing NSTextView".) However, this
means that support for this feature will be somewhat inconsistent.
Smart insert and delete is enabled for text views created
programmatically (including the field editor), but not for text views
loaded from existing nib files.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29426 72102866-910b-0410-8b05-ffd578937521
More changes are needed to get proper sorting support (e.g. visual feedback).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29293 72102866-910b-0410-8b05-ffd578937521
back menuHeightForWindow:
* Source/GSThemeMenu.m: Added default implementation of
menuHeightForWindow:. Default implementation returns NSMenuView
menuBarHeight.
* Source/GSWindowDecorationView.m: Use menuHeightForWindow: instead
of getting it directly from the menu view.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29288 72102866-910b-0410-8b05-ffd578937521
to support adding menus and processing commands from windows, if
appropriate.
* Headers/Additions/GNUstepGUI/GSWindowDecorationView.h: Added
new methods for menu and toolbar flags.
* Headers/AppKit/NSInterfaceStyle.h: Added new interface style.
* Source/GNUmakefile: Added header.
* Source/GSStandardWindowDecorationView.m: Change include
to include header in new location.
* Source/GSThemeMenu.m: Default theme implementation for
Menus.
* Source/GSWindowDecorationView.m: Add the setHasMenu:/setHasToolbar:
flags.
* Source/NSWindow.m: Use the theme to set the menu instead of
setting it directly.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29271 72102866-910b-0410-8b05-ffd578937521
- activation of the now happens on mouseUp, not mouseDown
- non-bordered NSColorWells can't be activated by clicking
- non-bordered NSColorWells start a drag operation upon mouseDown
- disabled NSColorWells don't accept colours being dropped on them
- dropping a colour on the well inside the NSColorPanel now
also updates the active NSColorWell
Also moved the static variable for keeping track of where the mouseDown
occurred to an instance variable.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29150 72102866-910b-0410-8b05-ffd578937521
lineBreakMode attribute. Note that with this change cells now wrap by
default, as has always been the case on OS X.
Also fix a related inconsistency where text that is wrapped by the
cell was displayed in a single line during editing.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29134 72102866-910b-0410-8b05-ffd578937521
includes a fix for the problem of properly resizing and redrawing the
editor when the cell is resized or moved during editing (bug #22678).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29133 72102866-910b-0410-8b05-ffd578937521
These new additions remain to be fully implemented and the archiving code to be
updated.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29107 72102866-910b-0410-8b05-ffd578937521
-setStringValue: have an effect while the cell is edited.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29010 72102866-910b-0410-8b05-ffd578937521
Kusterer <witness.of.teachtext@gmx.net>.
-- Diese und die folgenden Zeilen werden ignoriert --
M Source/NSProgressIndicator.m
M Headers/AppKit/NSProgressIndicator.h
M ChangeLog
AM Images/common_ProgressSpinning_4.tiff
AM Images/common_ProgressIndeterminate_3.tiff
AM Images/common_ProgressSpinning_8.tiff
M Images/GNUmakefile
AM Images/common_ProgressSpinning_1.tiff
AM Images/common_ProgressSpinning_5.tiff
AM Images/common_ProgressIndeterminate_4.tiff
AM Images/common_ProgressSpinning_2.tiff
AM Images/common_ProgressIndeterminate_1.tiff
AM Images/common_ProgressSpinning_6.tiff
AM Images/common_ProgressIndeterminate_5.tiff
AM Images/common_ProgressSpinning_3.tiff
AM Images/common_ProgressIndeterminate_2.tiff
AM Images/common_ProgressSpinning_7.tiff
AM Images/common_ProgressIndeterminate_6.tiff
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28900 72102866-910b-0410-8b05-ffd578937521
conform to NSValidatedUserInterfaceItem.
Patch by Quentin Mathe <quentin.mathe@gmail.com>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28627 72102866-910b-0410-8b05-ffd578937521
* Source/NSSearchFieldCell.m (-encodeWithCoder:, -initWithCoder:):
Correct encoding/decoding of maximumRecents.
Based on patch by Quentin Mathe <quentin.mathe@gmail.com>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28623 72102866-910b-0410-8b05-ffd578937521
This should be enough for Emacs to compile with GNUstep.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28525 72102866-910b-0410-8b05-ffd578937521
for drawButtonCell:...
* Source/GSThemeDrawing.m: Added implementation for new method. The
purpose of the method is to allow the theme to override images with
native images which may be theme dependent.
* Source/NSButtonCell.m: Use the new method.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28522 72102866-910b-0410-8b05-ffd578937521
* Source/NSAlert.m: Change code to use hightlightWithLevel: method
in resetWindow method.
* Source/NSApplication.m: Stub out setAttachedSheet method.
* Source/NSWindow.m: Remove new ivar for next release and stub out
attachedSheet method.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28415 72102866-910b-0410-8b05-ffd578937521
* Source/NSSpeechSynthesizer.m: Implementation of
NSSpeechSynthesizer.
Patch by David Chisnall <theraven@sucs.org>
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28327 72102866-910b-0410-8b05-ffd578937521
* Source/NSDrawer.m: Don't set the timer since it eats a lot of CPU.
* Source/NSPasteboard.m: Retain the path since it's autoreleased.
* Source/NSTextView.m: Set the textview to allow undos by default.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28186 72102866-910b-0410-8b05-ffd578937521
which were added during refactoring.
* Source/GSNibLoading.m: Corrections to NSCustomView, refactoring.
Changes to initialization logic to call awakeFromNib.
* Source/NSBundleAdditions.m: Cleanup to move code to the nib loading
code.
* Source/NSClipView.m: Added assertion to guarantee that no
NSCustomView is unarchived at time of initWithCoder: being called.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27298 72102866-910b-0410-8b05-ffd578937521
nibInstantiateWithCoder: to do the initialization normally done
in NSView when not in IB/Gorm.
* Source/GSNibLoading.m: Added implementation of new method and
also re-wrote part of NSCustomView.
* Source/NSView.m: Added an NSAssert to assure that no subview
ever decoded is an NSCustomView.
---
Moved decoding of custom view attributes here so that it can cleanly initialize everything to ensure that the view works properly.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27281 72102866-910b-0410-8b05-ffd578937521
document, undoing a number of changes, and then making an equal number
of changes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27219 72102866-910b-0410-8b05-ffd578937521
drag operation no longer changes the current selection of the target
view. Also fix an issue with dropping text into an empty text view.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27125 72102866-910b-0410-8b05-ffd578937521
to handle temporary attributes.
* Source/GSNibCompatibility.m: Corrections to nib loading logic.
* Source/NSLayoutManager.m: Skeleton implementations of new
methods to handle temporary attributes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27124 72102866-910b-0410-8b05-ffd578937521
-beginSheetModalForWindow:delegate:didEndSelector:contextInfo: method.
Fix swapping of title and informative message text in NSAlerts. Also
supply a default title "Alert" if none is set.
Determine key equivalent of NSAlert buttons from their localized titles.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27010 72102866-910b-0410-8b05-ffd578937521
responder chain. Patch by Wolfgang Lux <wolfgang.lux@gmail.com>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26956 72102866-910b-0410-8b05-ffd578937521
* configure.ac: Added check for libicns. (http://icns.sourceforge.net/)
* Headers/Additions/GNUstepGUI/config.h.in
* Source/GNUmakefile: Added new files
* Source/NSBitmapImageRep+ICNS.h: Header for ICNS category
* Source/NSBitmapImageRep+ICNS.m: Implementation if ICNS reading
logic.
* Source/NSBitmapImageRep.m: Add support for the ICNS file
format so that GNUstep can read Mac OS X icon files. Uses
the libicns library available from sourceforge.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26805 72102866-910b-0410-8b05-ffd578937521
* Headers/AppKit/NSTokenField.h: Headers for new class.
* Source/GNUmakefile
* Source/NSDocumentController.m: Added code to handle the
CF keys as well as the NS keys for document oriented apps.
* Source/NSTokenFieldCell.m
* Source/NSTokenField.m: Start of implementation for this class
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26801 72102866-910b-0410-8b05-ffd578937521
* Source/GSNibTemplates.m: Removed call to designated init, since
this is handled by the initWithCOoder method in NSWindow.m.
* Source/NSWindow.m: Correction for calling the designated initializer.
Fix for bug#23336.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26567 72102866-910b-0410-8b05-ffd578937521
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
Stronger typing in NSBrowser.
Clearer drawing code in different classes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26020 72102866-910b-0410-8b05-ffd578937521
Add support for new dragging methods in table view.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@25660 72102866-910b-0410-8b05-ffd578937521
* Source/NSObjectController.m: Changed "class" to "aClass" to
avoid issues with ObjC++ compilation in both the header and the
.m file for consistency. This change was suggested by Rob Burns
and he provided a short patch via IRC.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@25290 72102866-910b-0410-8b05-ffd578937521
- only NSAnimationNonBlocking mode is implemented
- runLoopModesForAnimating is not used
GSAnimator class is in alpha stage : interface may be changed
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@24968 72102866-910b-0410-8b05-ffd578937521
change requires a complete re-compile of GNUstep and all applications!!!
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@24821 72102866-910b-0410-8b05-ffd578937521
this file. Better support for key equivalent display.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@24420 72102866-910b-0410-8b05-ffd578937521
then and use this methods. Also adjusted subclasses tothis changes.
Split off theming code for buttons into two methods.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@24400 72102866-910b-0410-8b05-ffd578937521
Mon. 20-Nov-2006 Mark Tracy <tracy454 at concentric dot net>
Many changes related to bitmap images
1. NSBitmapImateRep attribute global strings were not defined
Fix: add definitions to externs.h, and declarations to NSBitmapImageRep.h
Comment: Two strings defined in Cocoa were commented out: NSImageColorSyncData
is proprietary to Apple, and NSImageEXIFData has no support elsewhere in
GNUstep. I propose adding GSImageICCProfileData if and when color management
is added to GNUstep.
2. LZW compression in TIFF was disabled for lack of a test of its availability
Fix: Implement NSTiffIsCodecConfigured(codec) in tiff.m
Comment: As of libtiff-3.7.0, there is a function call in the API to test
availability at runtime. For libtiff-3.6.0 (earlier?) there are macros
#defined in tiffconf.h. The implementation check the library version at
compile time, and uses one of the two methods. I have not tested the
second method for lack of an installation of an old libtiff.
3. -canCompressUsing: relied on a static list of capabilities
Fix: Use the new NSTiffIsCodecConfigured(codec) in NSBitmapImageRep.m
Comment: The static list could be wrong, as it was on my system. Also
eliminate the supports_lzw_compression flag.
4. +getTIFFCompressionTypes:count: relied on a static list of compressors.
Fix: Use the new NSTiffIsCodecConfigured(codec) in NSBitmapImageRep.m
Comment: Compares GNUstep supported compressors against actual availability.
Also change the private instance methods _localFromCompressionType and
_compressionTypeFromLocal to private class methods so that they can be used
in -initWithTIFFImage:number: and -TIFFRepresentationUsingCompression:factor:
and +getTIFFCompressionTypes:count: This is probably a clumsy implementation
but it works.
5. -setProperty:toValue: and -valueForProperty: were not implemented
Fix: Add a new instance variable NSMutableDictionary * _properties to
NSBitmapImageRep.h and implemented accessors in NSBitmapImageRep.m. Patch
-_initFromTIFFImage to set compression type and factor in _properties.
Comment: This feature is used to pass options to and from JPEG, PNG, TIFF, and
GIF in Cocoa, although the docs are kind of vague. In one case the Cocoa docs
said the properties were set when reading a TIFF, but the implementation
didn't; I chose to implement the docs. Cocoa does use properties when
exporting bitmaps, so I implemented that.
6. Checked and updated NSBitmapImageFileType in NSBitmapImageRep.h
Fix: confirmed the enumeration values against Cocoa, and added
NSJPEG2000FileType = 5
Comment: JPEG-2000 is not implemented, just reserved a space for it.
7. -representationUsingType:properties: was not implemented
Fix: Implement export of TIFF, JPEG, GIF and PNG in NSBitmapImage.m
Comment: See the change notes for JPEG, GIF, and PNG for more. BMP and JPEG-2000
are not implemented; they just log a message to that effect. As apparently
Cocoa does it this way, if you pass nil for properties, it falls back to
the internal _properties, and if that is empty, there are some safe defaults.
8. +representationfOfImageRepsInArray:UsingType:properties: was not implemented
Fix: Partially implement in NSBitmapImageRep.m
Comment: I just stole the incomplete code from
+TIFFRepresentationOfImageRepsInArray: since I have yet to find an explanation
of how this really ought to work.
9. JPEG export didn't handle alpha channel, properties or errors.
Fix: Add -_JPEGRepresentationWithProperties:errorMessage: to
NSBitmapImageRep+JPEG.h and greatly rework Nicolas Roard's code in
NSBitmapImageRep+JPEG.m. Patch -_initBitmapFromJPEG:errorMessage to
write properties.
Comment: Major rewrite of Nicolas Roard's JPEG export code.
To do: Support for planar bitmaps and support for colorspaces other than
RGB(A).
10. PNG export not implemented
Fix: Add -_PNGRepresentationWithProperties: to
NSBitmapImageRep+PNG.h and implement NSBitmapImageRep+PNG.m
Comment: No support yet for planar bitmaps. Only supports
NS*WhiteColorSpace and NS*RGBColorSpace. Does support alpha. Support for
reading and writing NSImageGamma is experimental. In keeping with Cocoa,
the property NSImageGamma ranges from 0.0 to 1.0; representing the range
of minimum supported gamma to maximum supported gamma, in this case 1.0
to 2.5. This is in contrast to GNUstep where by convention the property
would range from 0.0 to 255.0.
To do: proper error message support
11. GIF export not implemented
Fix: Add -_GIFRepresentationWithPropterties:errorMessage: to
NSBitmapImageRep+GIF.h and implement in NSBitmapImageRep+GIF.m
Comments: Supports only RGB(A) colorspaces, but ignores alpha. Supports
planar or interleaved bitmaps. Supports properties NSImageRGBColorTable.
12. -_initBitmapFromGIF:errorMessage: did not support transparency
Fix: Don't ignore control blocks in NSBitmapImageRep+GIF.m; check for
transparency.
Comment: If a transparent color is found, it adds an alpha channel to the
bitmap. Also, save the color table in properties.
13. -_initBitmapFromGIF:errorMessage: would show the last image in a
multi-image GIF file
Fix: Break the parsing loop after the first image in NSBitmapImageRep+GIF.m
Comment: Also check for frame duration, and set that property. There is not
yet any support for animated GIF. This will require some additional
infrastructure, and I won't do it unless asked.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@24140 72102866-910b-0410-8b05-ffd578937521
verticalMotionCanBeginDrag.
* Source/NSTableView.m: Implement verticalMotionCanBeginDrag
bump class version.
* Source/NSTextView_actions.m: Fix method name from previous changes.
* KeyBindings/DefaultKeyBindings.dict: Add new key bindings.
* ChangeLog: Add to description of a previous change.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@24067 72102866-910b-0410-8b05-ffd578937521
for NSIBHelpConnector ivars and methods.
* Source/GSNibCompatibility.m: Implemented NSIBHelpConnector.
* Source/NSBundleAdditions.m: Added check to initWithCoder so that
values aren't decoded, if there's no value in the coder.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23784 72102866-910b-0410-8b05-ffd578937521
* Source/GSNibCompatibility.m: Moved comments to top, for gcc < 3.0
compilation.
* Source/NSDrawer.m: Added GSDrawerWindow implementation and
implementation of some methods in NSDrawer to interact with the
window.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23482 72102866-910b-0410-8b05-ffd578937521
* Images/common_Printer.tiff: Replaced old printer icon with one
created from the PrefsIcon_SelectSpooler_Tile.jpg image on the website.
* Source/GSNibCompatibility.m: Added oids method to get the map.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23292 72102866-910b-0410-8b05-ffd578937521
* Source/NSHelpManager.m:
added -setContextHelp:forObject: as specified in Apple docs;
-setContextHelp:withObject: deprecated.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23174 72102866-910b-0410-8b05-ffd578937521
method.
* Source/GSHelpManagerPanel.m: implemented -buttonAction:.
added a button to close the panel and changed the style mask of the window
to NSTitledWindowMask | NSResizableWindowMask.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23171 72102866-910b-0410-8b05-ffd578937521
* Headers/AppKit/NSHelpManager.h: declaration for new method -pathForHelpResource:
* Source/NSHelpManager.m: implemented -pathForHelpResource: in the NSBundle
category. -pathForHelpResource: looks for help files giving the priority
to localized resources.
-showHelp: looks for rtfd files too.
* Source/GSHelpManagerPanel.m: various fixes to avoid a crash when quitting
and to resize correctly the NSTextView.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23164 72102866-910b-0410-8b05-ffd578937521
* Headers/Additions/GNUstepGUI/GSNibCompatibility.h: Added
declarations for classes and names methods and change return
type for objects method.
* Source/GSNibCompatibility.m: Properly return the pointer in
objects method and also add methods for names, and classes
maps in the nib file.
* Source/NSDocument.m: Refuse to write a file for a type which isn't
native. If the class method isNativeType: returns YES, then write the
file in writeToFile:ofType:saveOperation:.
* Source/NSSliderCell.m: Make the cell non-bordered in initWithCoder:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23095 72102866-910b-0410-8b05-ffd578937521