Source/GSLayoutManager.m: new method -typingAttributes returns default typing
attributes of NSTextView.
* Source/NSLayoutManager.m: override GSLayoutManager's -typingAttributes - primitive
method - provides access to _typingAttributes ivar.
* Source/GSHorizontalTypesetter.m: use new GSLayoutManager's -typingAttributes method
to get paragraph style and font of new empty text container. Normally `curLayoutManager`
is a NSLayoutManager object so actually we get NSLayoutManager's _typingAttributes.
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