* 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
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/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
* 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
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
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
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
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
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
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