comment to describe cache variables.
* Source/GSHorizontalTypesetter.m: Restructure glyph attribute
cache filling and make _addExtraLineFragment saver by providing a
default for curParagraphStyle.
* Source/NSSliderCell.m: Rewrite this class to store and access
the value directly. This brings the behaviour closer to Apple's
horrible implementation.
Create methods which allow a graphics context to be created with a
CGContext as an equivalent to a graphics port. The context set through
this property will be used in gnustep-back.
Expose methods for bridging Opal types and GUI classes. The new
relations are the following:
a) NSImage -> CGImage
b) NSColor -> CGColor
c) NSImageRep -> CGImage
The actual implementation for this bridge is implemented in the Backend
library.
This significantly improves compatibility with AppKit.
Implement the NSPasteboardItem class. For now, it remains relatively
useless since NSPasteboard does not yet know how to use it. However, it
should be pluggable into NSPasteboard once NSPasteboard learns about
NSPasteboardReading and NSPasteboardWriting.
As of macOS 10.7, scrollers gained two types: Legacy and Overlay. Here,
we define these styles as well as a method to determine which is the
"default" style to be used.
Declare base NSAccessibility functions and constants, which have been
implemented as stubs.
In the near future, we could begin supporting some NSAccessibility
informal protocol features (for instance, elements ignored in the
accessible view hierarchy). However, for even considering thorough
accessibility support we would require, at least:
* A proper implementation of the AX* API in gnustep-boron;
* Design integration with screen reading software and other components
for an accessible graphic environment.
which are most certainly long-term tasks.
Define layer-related properties in NSView for compatibility purposes,
and keep their getters and setters as stubs, since they will not have
any effect before NSView-CALayer integration is implemented.
Define new constants for NSPasteboard type identifiers. Most of them are
aliases to the old "Pboard"-style types, although some new ones are not
fully implemented:
* NSPasteboardTypePNG
* NSPasteboardTypeSound
* NSPasteboardTypeMultipleTextSelection
* NSPasteboardTypeTextFinderOptions
Modern applications require NSSpeechSynthesizerDelegate to be an actual
@protocol in order to conform to it. Here, we allow it to be one if we
are on an Objective-C runtime that supports it.
* Source/NSColorPanel.m: Remove left over GModel loading code.
Set default mode to colour wheel.
Small cleanups mostly in comments.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40229 72102866-910b-0410-8b05-ffd578937521
resulting behaviour is as intended by the author of the last change.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@39974 72102866-910b-0410-8b05-ffd578937521
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