with a background color before drawing the cell. Seems pointless
- GNUstep's default knob image is opaque, but filling with a solid
color prevents transparent knob images from looking good.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37224 72102866-910b-0410-8b05-ffd578937521
* Panels/Spanish.lproj/GSPageLayout.gorm: Minor visual tweaks:
Turn off "draws background" on the portrait/landscape matrix
so it looks better with themes. Remove 0.5 point offsets on
some views on the second and third tabs to eliminate blurring.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37223 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
"optiacal bounds" metadata in 9-patch images. It's stored
in the layoutRect ivar but not used otherwise.
See "Optical bounds layout" section of:
http://developer.android.com/about/versions/android-4.3.html
* Source/GSThemePrivate.h (GSDrawTiles): Add layoutRect ivar
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37219 72102866-910b-0410-8b05-ffd578937521
with clipping rect that was causing artifacts when scrolling a list
of color wells in Thematic.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37218 72102866-910b-0410-8b05-ffd578937521
in the 9-patch content rect parsing code. Add some comments.
Simplify contentRectForRect: implementation.
* Source/GSThemeDrawing.m (-browserHeaderDrawingRectForCell:...):
Use -contentRectForRect: to get the content rect instead of
incorrectly reading from ivar. Fixes broken text positioning
in browser header with Nesedah theme.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37217 72102866-910b-0410-8b05-ffd578937521
* Source/NSBox.m (-calcSizesAllowingNegative):
Special case for box type NSBoxSeparator to draw a centered line
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37210 72102866-910b-0410-8b05-ffd578937521
as NinePatch=YES. If a tile isn't listed in GSThemeTiles in the
plist, try to find it in the ThemeTiles directory anyway. This
lets you avoid declaring tiles in the info plist.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37208 72102866-910b-0410-8b05-ffd578937521
use actual clipping to clip a hole in the border, so we can avoid
filling anything with the background color.
* Source/NSBox.m (-isOpaque:): change to NO.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37207 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
Clean up grid drawing code; use rect fills to avoid blurriness.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37204 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
-setName:forElement:temporary: mechanism to bind the menu close
button's cell to the name GSMenuCloseButton, so themes can provide
a custom border for this button.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37201 72102866-910b-0410-8b05-ffd578937521
* Source/NSColorWell.m: Move code to draw the black and white
triangles background for transparent colors to
-[NSColor drawSwatchInRect:].
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37194 72102866-910b-0410-8b05-ffd578937521
the arrow using NSHighlightedMenuArrow (if available).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37192 72102866-910b-0410-8b05-ffd578937521
to get the margins for draw tiles.
* Source/GSThemePrivate.h:
* Source/GSThemeTools.m: Get the 9-patch content rect support
working from end-to-end.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37191 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
with the image @"common_CircularSlider". Draw the dimple
with @"common_Dimple" instead of an NSBezierPath.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37186 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
Accept negative item indicies, which are passed in when
opening the preferences window in TextEdit. Need to investigate
further why that is happening.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37184 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
Remove update logic from -setSeparatesColumns: and just use
-tile. Tested by toggling "separates columns" flag in Gorm.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37173 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
Remove call to [controlView displayRect: cellFrame];
There was a comment saying it should be removed, and when
combined with the -[NSButtonCell isOpaque] change, it
was casuing scroller buttons to stay "stuck" down.
* Source/NSBrowser.m (-isOpaque):
* Source/NSButtonCell.m (-isOpaque):
* Source/NSColorWell.m (-isOpaque):
Force -isOpaque to return NO, because it's
possible to make all of these controls semitransparent with
theme tiles. This was visible with the Narcissus theme
(svn://svn.gna.org/svn/etoile/trunk/Etoile/Themes/Narcissus.theme)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37164 72102866-910b-0410-8b05-ffd578937521
so non-code themes can change -[GSTheme defaultScrollerWidth]
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37163 72102866-910b-0410-8b05-ffd578937521
allows themes to make the scroller knob overlap the scroller buttons
by a specified amount.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37162 72102866-910b-0410-8b05-ffd578937521
draw string when editing.
* Source/NSBrowserCell.m (-titleRectForBounds:): Implement to
exactly match calculation in -drawInteriorWithFrame:inView:.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37159 72102866-910b-0410-8b05-ffd578937521