Commit graph

5514 commits

Author SHA1 Message Date
Riccardo Mottola
d472adfbb1 * Source/NSTextView.m (-mouseDown:): Use container origin for attachment cells.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37283 72102866-910b-0410-8b05-ffd578937521
2013-10-26 15:50:02 +00:00
Fred Kiefer
56803c6c14 * Source/NSMenuView.m (-heightForItem:): Use
-menuItemCellForItemAtIndex: to protect against an index being to
  big. This happens when the menu does not send notifications and a
  non-existing item gets highlighted.
* Source/NSMenuView.m (-menuItemCellForItemAtIndex:): Protect
  against negative index values.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37279 72102866-910b-0410-8b05-ffd578937521
2013-10-25 22:34:18 +00:00
Fred Kiefer
35b547f964 * Source/NSBitmapImageRep+PNG.m: Better cleanup on error.
* Source/NSBitmapImageRep.m (_set_bit_value): Correct error in
bit operation. This should allow the code to work with 16 bit images.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37267 72102866-910b-0410-8b05-ffd578937521
2013-10-20 20:41:52 +00:00
Fred Kiefer
2c7ebd84a2 Add some OSX 10.6 methods.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37247 72102866-910b-0410-8b05-ffd578937521
2013-10-17 21:05:15 +00:00
Eric Wasylishen
d9da770d5b * Source/GSThemeDrawing.m:
* 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
2013-10-16 07:19:45 +00:00
Eric Wasylishen
326a3d57f4 * Source/GSThemeDrawing.m:
* Headers/Additions/GNUstepGUI/GSTheme.h: Add methods
	-menuSubmenuHorizontalOverlap and -menuSubmenuVerticalOverlap
	wrapping user defaults GSMenuSubmenuHorizontalOverlap and
	GSMenuSubmenuVerticalOverlap
	* Source/NSMenuView.m (-locationForSubmenu:): Offset calculations
	by -[GSTheme menuSubmenuHorizontalOverlap] and
	-[GSTheme menuSubmenuVerticalOverlap]


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37243 72102866-910b-0410-8b05-ffd578937521
2013-10-16 07:08:15 +00:00
Eric Wasylishen
64432f901d * Source/GSThemePrivate.h:
* Source/GSTheme.m: Add GSStringFromImageFrameStyle
	* Source/GSThemeDrawing.m (-drawBorderForImageFrameStyle:...):
	Use GSStringFromImageFrameStyle to get tiles, if presentwq


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37242 72102866-910b-0410-8b05-ffd578937521
2013-10-16 05:14:32 +00:00
Eric Wasylishen
c05595c8be * Source/GSThemeDrawing.m (-drawColorWellBorder:...): Draw inner
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
2013-10-16 04:11:41 +00:00
Eric Wasylishen
a4fa237d9e * Source/GSThemePrivate.h:
* Source/GSThemeTools.m:
	* Source/GSThemeDrawing.m: Add explicit isFlipped: param to
	-[GSDrawTiles contentRectForRect:]


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37239 72102866-910b-0410-8b05-ffd578937521
2013-10-16 03:36:01 +00:00
Eric Wasylishen
310b7d5786 * Headers/Additions/GNUstepGUI/GSTheme.h: Remove GSScrollViewBottomCorner
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
2013-10-15 23:26:51 +00:00
Eric Wasylishen
4e1aeabe94 * Source/NSTableView.m (-tile): Check the GSScrollViewNoInnerBorder
user default to see whether to expand the corner view by 1pt or not.
* Source/GSThemeDrawing.m (-drawTableHeaderRect:inView:): Remove
special case which reduced the width of the last column header by 1pt.

I don't see any reason for doing that and it looks better to me without
the gap, and more uniform for themeing.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37237 72102866-910b-0410-8b05-ffd578937521
2013-10-15 20:33:46 +00:00
Eric Wasylishen
74bd902874 * Source/NSButtonCell.m:
* Source/NSMenuItemCell.m: Make a shared -themeControlState in
NSButtonCell and eliminate duplicated code.
* Source/NSPopUpButtonCell.m: Add private declaration for
-[NSButtonCell themeControlState]


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37236 72102866-910b-0410-8b05-ffd578937521
2013-10-15 18:41:17 +00:00
Eric Wasylishen
1fdf58e506 * Headers/Additions/GNUstepGUI/GSTheme.h: Add -tabViewContentRectForBounds:
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
2013-10-15 07:27:44 +00:00
Eric Wasylishen
2cdd882e36 * Source/NSTabViewItem.m (-drawLabel:inRect:): Center label vertically
inside the tab.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37233 72102866-910b-0410-8b05-ffd578937521
2013-10-15 07:08:01 +00:00
Eric Wasylishen
fc5c32e1b3 * Source/NSTabView.m (-initWithCoder:): Make non-keyed archives
call -selectTabViewItem: to select the current tab at unarchiving
	time (keyed archives were already doing this.)

	Comment: "N.B.: As a side effect, this discards the subview frame
	and sets it to [self contentRect].

	This is desirable because the subview frame will be different
	depending on whether the arcive is from Cocoa or GNUstep,
	and which GNUstep theme was active at save time.

	However, it does mean that the tab view contents should be
	prepared to resize slightly."

	The immediate need for this is tab views were changed to use
	flipped coordinates, so the subview frames stored in existing
	archives are now in the wrong coordinate system.

	This is essentially the same idea as NSScrollView calling -tile at the
	end of -initWithCoder: so I hope it makes sense for tab views too.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37232 72102866-910b-0410-8b05-ffd578937521
2013-10-15 06:17:36 +00:00
Eric Wasylishen
a55c2a9189 * Source/GSThemeDrawing.m (-tabHeightForType:): Check for nil
before calling -size on an NSImage, for systems where this
corrupts the stack.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37231 72102866-910b-0410-8b05-ffd578937521
2013-10-15 04:21:45 +00:00
Eric Wasylishen
77b7b9558e * Source/GSThemeDrawing.m: Change stepper drawing methods to use
images. The stepper is too small to make decomposing it in to
border + bezel + arrow worthwhile; it's simpler to just use images.
* Images/GNUmakefile:
* Images/common_StepperDown.tiff:
* Images/common_StepperDownHighlighted.tiff:
* Images/common_StepperUp.tiff:
* Images/common_StepperUpHighlighted.tiff: Add stepper images


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37229 72102866-910b-0410-8b05-ffd578937521
2013-10-14 20:52:55 +00:00
Eric Wasylishen
6f4a16835b * Headers/Additions/GNUstepGUI/GSTheme.h: Add three new theme
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
2013-10-14 17:18:38 +00:00
Eric Wasylishen
856b71dd2f * Source/GSThemeDrawing.m (-drawTableViewBackgroundInClipRect:...):
Add support for drawing striped table backgrounds, using the colors
returned by [NSColor controlAlternatingRowBackgroundColors].
Currently not used because
-[NSTableView usesAlternatingRowBackgroundColors] is hardcoded to
return NO.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37226 72102866-910b-0410-8b05-ffd578937521
2013-10-14 07:05:05 +00:00
Eric Wasylishen
9dfd31dc6e * Source/NSSliderCell.m (-drawKnob:): Don't fill the knob
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
2013-10-14 04:16:30 +00:00
Eric Wasylishen
5501a5a4b7 * Headers/Additions/GNUstepGUI/GSTheme.h:
* 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
2013-10-14 03:31:54 +00:00
Eric Wasylishen
bd3426dd41 * Source/GSThemeTools.m (-initWithNinePatchImage:): Parse the
"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
2013-10-12 18:24:33 +00:00
Eric Wasylishen
a627839460 * Source/NSColorWell.m (-drawRect:): Remove incorrect intersection
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
2013-10-12 04:48:04 +00:00
Eric Wasylishen
1411fdfa3a * Source/GSThemeTools.m: Fix unflipped/flipped coordinates bug
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
2013-10-12 04:33:59 +00:00
Germán Arias
c713f8cb04 Fix last commit.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37215 72102866-910b-0410-8b05-ffd578937521
2013-10-09 19:45:55 +00:00
Germán Arias
123703e8e1 Send events mouse entered only if the cursor rectangle is valid.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37214 72102866-910b-0410-8b05-ffd578937521
2013-10-09 19:07:36 +00:00
Germán Arias
a0f6ce809f Set _lastPoint after update the cursor in NSWindow.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37213 72102866-910b-0410-8b05-ffd578937521
2013-10-09 18:52:39 +00:00
Eric Wasylishen
3e533f43b1 * Source/GSThemeDrawing.m:
* Source/GSTheme.m:
* Headers/Additions/GNUstepGUI/GSTheme.h: Add part names for
themeing bottom tabs.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37211 72102866-910b-0410-8b05-ffd578937521
2013-10-09 01:48:50 +00:00
Eric Wasylishen
3d3125cdde * Source/GSThemeDrawing.m (-drawBoxInClipRect:...):
* 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
2013-10-08 23:42:30 +00:00
Eric Wasylishen
74fa44060f * Source/NSTabView.m: Fix incorrect content rect now that view
is flipped.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37209 72102866-910b-0410-8b05-ffd578937521
2013-10-08 20:30:28 +00:00
Eric Wasylishen
8624e56f43 * Source/GSTheme.m (-tilesNamed:state:): Interpret .9.png files
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
2013-10-08 19:32:09 +00:00
Eric Wasylishen
02bc49e2d5 * Source/GSThemeDrawing.m (NSBox): If drawing with theme tiles,
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
2013-10-08 18:22:15 +00:00
Eric Wasylishen
0786f621f2 * Source/NSTabView.m: Uncomment - (BOOL) isFlipped { return YES; }
* Source/GSThemeDrawing.m: Change tab drawing to assume flipped
coordinates


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37206 72102866-910b-0410-8b05-ffd578937521
2013-10-08 17:35:44 +00:00
Eric Wasylishen
7d7cac6780 * Source/GSThemeDrawing.m: Rewrite tab drawing code to be more
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
2013-10-08 08:01:23 +00:00
Eric Wasylishen
11d5fc7902 * Source/GSThemeDrawing.m (-drawTableViewGridInClipRect:inView:):
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
2013-10-07 23:32:14 +00:00
Eric Wasylishen
69acbb22b1 * Headers/Additions/GNUstepGUI/GSTheme.h:
* 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
2013-10-07 07:29:13 +00:00
Eric Wasylishen
d651b3154c * Source/GSTitleView.m: Use the GSTheme
-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
2013-10-07 06:23:02 +00:00
Eric Wasylishen
e72fe86870 * Documentation/GuiUser/DefaultsSummary.gsdoc:
* Headers/Additions/GNUstepGUI/GSTheme.h:
* Source/GSThemeDrawing.m:
* Source/NSScroller.m: Add defaults GSScrollerScrollsByPage
and GSScrollerArrowsSameEnd to allow customizing scroller
behaviour beyond the combinations provided by NSInterfaceStyle.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37200 72102866-910b-0410-8b05-ffd578937521
2013-10-07 03:29:14 +00:00
Eric Wasylishen
481d535880 * Source/NSColor.m:
* 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
2013-10-04 07:18:27 +00:00
Eric Wasylishen
53dcd018ad * Headers/Additions/GNUstepGUI/GSTheme.h:
* Source/GSThemeDrawing.m:
* Source/NSBrowser.m:
* Source/NSTableHeaderCell.m: Add custom color names
tableHeaderTextColor and browserHeaderTextColor for
table and browser headers.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37193 72102866-910b-0410-8b05-ffd578937521
2013-10-04 02:23:16 +00:00
Eric Wasylishen
467edcbeef * Source/NSMenuItemCell.m: If the cell is highlighted, draw
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
2013-10-04 00:50:45 +00:00
Eric Wasylishen
fb723f8241 * Source/GSThemeDrawing.m: Use new -[GSDrawTiles themeMargins]
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
2013-10-03 22:24:57 +00:00
Eric Wasylishen
c63df23ba8 * Headers/Additions/GNUstepGUI/GSTheme.h:
* 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
2013-10-03 19:52:05 +00:00
Eric Wasylishen
5cd9dd8b7e * Source/NSSliderCell.m: Support themeing the circular slider
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
2013-10-03 06:55:45 +00:00
Eric Wasylishen
2347347cf9 * Headers/Additions/GNUstepGUI/GSTheme.h:
* 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
2013-10-03 04:51:10 +00:00
Eric Wasylishen
d3be1c555f * Source/NSMenuView.m (heightForItem:, yOriginForItem:):
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
2013-10-03 00:35:27 +00:00
Eric Wasylishen
dfab5c6196 * Headers/Additions/GNUstepGUI/GSTheme.h:
* 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
2013-10-02 23:56:16 +00:00
Eric Wasylishen
ea8ded398f * Source/NSMenuView.m: Read the menu item/menu bar/separator
height from GSTheme.
* Headers/Additions/GNUstepGUI/GSTheme.h:
* Source/GSThemeDrawing.m: Add -menuBarHeight, -menuItemHeight,
-menuSeparatorHeight. Corresponding defaults are GSMenuBarHeight,
GSMenuItemHeight, GSMenuSeparatorHeight


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37182 72102866-910b-0410-8b05-ffd578937521
2013-10-02 22:06:24 +00:00
Eric Wasylishen
3bbfcbaab2 * Headers/Additions/GNUstepGUI/GSTheme.h:
* 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
2013-09-30 05:53:21 +00:00
Eric Wasylishen
52f8843480 * Source/NSBrowser.m: Fix some position calculations from the last
commit


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37175 72102866-910b-0410-8b05-ffd578937521
2013-09-30 02:29:28 +00:00
Eric Wasylishen
67de37f017 * Source/NSBrowser.m:
* 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
2013-09-30 00:38:09 +00:00
Eric Wasylishen
f0b96e967f * Source/NSBrowser.m: Small refactoring to simplify code.
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
2013-09-29 22:44:57 +00:00
Eric Wasylishen
8b6fffb7fc * Source/NSBrowser.m: Change NSBR_COLUMN_SEP and NSBR_VOFFSET
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
2013-09-29 19:36:08 +00:00
Fred Kiefer
47145c6c46 * Source/NSImage.m: Better protection against representation being nil.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37169 72102866-910b-0410-8b05-ffd578937521
2013-09-29 16:37:59 +00:00
Germán Arias
f006045995 Check the scrollview style to display the autocomplete window.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37166 72102866-910b-0410-8b05-ffd578937521
2013-09-29 07:14:01 +00:00
Eric Wasylishen
2fe4c2e708 * Source/GSTheme.m:
* 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
2013-09-29 00:30:59 +00:00
Eric Wasylishen
ef5f2cf19f * Source/NSCell.m (-highlight:withFrame:inView:):
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
2013-09-28 21:38:29 +00:00
Eric Wasylishen
d3a8560cc5 * Source/GSThemeDrawing.m: Add GSScrollerDefaultWidth user default
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
2013-09-28 20:40:42 +00:00
Eric Wasylishen
894b5b0059 * Source/NSScroller.m: Add GSScrollerKnobOvershoot default which
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
2013-09-28 18:51:00 +00:00
Germán Arias
b8217cb63e Don't change the location of submenus in NSMacintoshInterfaceStyle.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37161 72102866-910b-0410-8b05-ffd578937521
2013-09-27 22:20:12 +00:00
Fred Kiefer
f1b45bbcad * Source/NSBrowserCell.m (-drawInteriorWithFrame:inView:): Don't
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
2013-09-27 13:10:23 +00:00
Germán Arias
2decccabe0 Close popup if user press a modifier flag an theme process events.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37158 72102866-910b-0410-8b05-ffd578937521
2013-09-27 07:47:01 +00:00
Germán Arias
4877916592 Revert last change and implement a better solution.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37157 72102866-910b-0410-8b05-ffd578937521
2013-09-27 04:33:30 +00:00
Germán Arias
5559a2dfd1 Improvements at pulldown popups when the theme process events.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37154 72102866-910b-0410-8b05-ffd578937521
2013-09-25 05:42:27 +00:00
Ivan Vučica
baabe32c27 * Source/NSImage.m: Missing -retain inside the method
-drawInRect:fromRect:... caused a crash inside Opal backend.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37141 72102866-910b-0410-8b05-ffd578937521
2013-09-23 17:12:25 +00:00
Ivan Vučica
fa522babc4 * Source/NSImage.m: Missing -retain inside the method
-compositeToPoint:fromRect:operation:fraction caused a crash
inside Opal backend.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37140 72102866-910b-0410-8b05-ffd578937521
2013-09-23 16:58:18 +00:00
Gregory John Casamento
04a8a1e1a9 2013-09-18 18:17-EDT Gregory John Casamento <greg.casamento@gmail.com>
* Headers/AppKit/AppKit.h: Add NSTrackingArea.h                                                                                                         
        * Headers/AppKit/NSTrackingArea.h: Add interface for NSTrackingArea                                                                                     
        * Source/GNUmakefile: Add NSTrackingArea.[hm] to makefile.                                                                                              
        * Source/NSTrackingArea.m: Add implementation for NSTrackingArea  


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37112 72102866-910b-0410-8b05-ffd578937521
2013-09-18 22:19:12 +00:00
Riccardo Mottola
04f1819d3c silence more warnings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37102 72102866-910b-0410-8b05-ffd578937521
2013-09-17 23:19:12 +00:00
Ivan Vučica
42f7c46547 NSLayoutManager: advancementbuf[0] was not being filled. Most backends, including cairo, ignore advancements, so the bug was not immediately apparent until opal backend started using the advancements.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37100 72102866-910b-0410-8b05-ffd578937521
2013-09-17 21:58:21 +00:00
Riccardo Mottola
5478f1e00c warning fix
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37088 72102866-910b-0410-8b05-ffd578937521
2013-09-17 09:39:47 +00:00
Fred Kiefer
581d7fcd0c * Source/NSBrowser.m (-setPath:): Fixed a bug where setting the
path to "/" would not deselect the cells.
  Based on patch by Frank Le Grand <frank.legrand@testplant.com>


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37081 72102866-910b-0410-8b05-ffd578937521
2013-09-16 18:18:07 +00:00
Riccardo Mottola
c0c27b5f8c Prepare for additional argument to function DGifOpen in newer libgif versions.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37078 72102866-910b-0410-8b05-ffd578937521
2013-09-13 15:50:05 +00:00
Fred Kiefer
c75ec40019 * Source\NSAttributedString.m (-fixFontAttributeInRange:): In
* the
        absence of a NSFontAttributeName attribute, use a default font
to
        prevent the substitution from stopping. This fixes a bug where
        unicode characters would not get the proper font substitution.
        Patch by: Frank Le Grand <frank.legrand@testplant.com>



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37027 72102866-910b-0410-8b05-ffd578937521
2013-08-30 15:30:22 +00:00
Fred Kiefer
9ad339a73a * Headers/Additions/GNUstepGUI/GSDisplayServer.h
* Source/GSDisplayServer.m: Add new method -_printEventQueue.
* Source/NSWindow.m (-_checkCursorRectangles:forEvent:): Replace
  hack with proper functions that handle cursor rectangles.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37026 72102866-910b-0410-8b05-ffd578937521
2013-08-30 11:27:10 +00:00
Fred Kiefer
aa9d40fcfd * Source/NSCursor.m (-mouseEntered:, -mouseExited:):
Add better debug output.
* Source/NSWindow.m (-_checkCursorRectangles:forEvent:): Add
hack that updates cursor rectangles more correctly.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37022 72102866-910b-0410-8b05-ffd578937521
2013-08-27 21:00:42 +00:00
Fred Kiefer
a93d126191 * Headers/AppKit/NSTreeController.h,
* 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
2013-08-19 19:10:22 +00:00
Fred Kiefer
ef49975949 Add code by Nikolaus Schaller <hns@computer.org>, reformatted and
simplified.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36982 72102866-910b-0410-8b05-ffd578937521
2013-08-17 13:39:16 +00:00
Luboš Doležel
ceb8720fb2 * Headers/AppKit/NSSavePanel.h,
* Source/NSSavePanel.m: beginSheetModalForWindow: and
beginWithCompletionHander: implementations



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36968 72102866-910b-0410-8b05-ffd578937521
2013-08-12 18:10:38 +00:00
Gregory John Casamento
4032737cf0 Add placeholder for NSStatusItem.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36950 72102866-910b-0410-8b05-ffd578937521
2013-08-08 20:28:33 +00:00
Quentin Mathe
4db314841a Fixed missing theme images if not listed in the theme bundle Info.plist.
Theme bundles that contain theme images named using either GNUstep or 
OPENSTEP names now work properly again (bug introduced in r36836).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36916 72102866-910b-0410-8b05-ffd578937521
2013-07-22 15:24:32 +00:00
Germán Arias
7eb3256964 Move code of previous commit.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36906 72102866-910b-0410-8b05-ffd578937521
2013-07-18 23:04:22 +00:00
Germán Arias
bb09eb6bca Improvements for PopUp when should process events.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36902 72102866-910b-0410-8b05-ffd578937521
2013-07-17 23:34:20 +00:00
Riccardo Mottola
28fff5bc13 Add license to the Theme properties
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36889 72102866-910b-0410-8b05-ffd578937521
2013-07-15 13:20:41 +00:00
Germán Arias
405b577cd1 Use arrow cursor in transient menus.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36875 72102866-910b-0410-8b05-ffd578937521
2013-07-12 05:03:34 +00:00
Fred Kiefer
32299abf5b * Headers/Additions/GNUstepGUI/GSDisplayServer.h
* 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
2013-07-08 20:42:49 +00:00
Germán Arias
4fe34147c1 Ignore the first mouse up in transient menus if style is NSWindows95InterfaceStyle.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36852 72102866-910b-0410-8b05-ffd578937521
2013-07-08 19:20:36 +00:00
Germán Arias
17db14c969 Revert last commit.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36849 72102866-910b-0410-8b05-ffd578937521
2013-07-08 01:33:25 +00:00
Germán Arias
5cfee62130 Prevent duplicate the cursor with -push.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36848 72102866-910b-0410-8b05-ffd578937521
2013-07-07 18:33:01 +00:00
Fred Kiefer
a5412c1f42 * Source/NSImageRep.m (-guiDrawInRect:...fraction:): Readd special
handling for printing as suggested by Eric Wasylishen <ewasylishen@gmail.com>.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36847 72102866-910b-0410-8b05-ffd578937521
2013-07-07 15:26:21 +00:00
Quentin Mathe
da2351d2b2 Added support for providing custom theme control images (e.g. checkbox) in the same way we support it for tiles
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36836 72102866-910b-0410-8b05-ffd578937521
2013-07-04 15:46:11 +00:00
Richard Frith-MacDonald
461dcd25c9 fixes for bug reported by marcus
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36834 72102866-910b-0410-8b05-ffd578937521
2013-07-04 07:54:52 +00:00
Eric Wasylishen
2e67252907 Improve NSDrawThreePartImage implementation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36827 72102866-910b-0410-8b05-ffd578937521
2013-07-03 22:03:59 +00:00
Eric Wasylishen
520993931f Add NSDrawThreePartImage
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36824 72102866-910b-0410-8b05-ffd578937521
2013-07-03 16:19:24 +00:00
Germán Arias
571a79bd47 Revert last change in NSCursor.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36806 72102866-910b-0410-8b05-ffd578937521
2013-07-03 00:05:31 +00:00
Germán Arias
34d629e05a Improvements to handle cursors.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36802 72102866-910b-0410-8b05-ffd578937521
2013-07-02 16:57:54 +00:00
Germán Arias
f2a56be6f5 Fix memory leak in GSComboWindow.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36744 72102866-910b-0410-8b05-ffd578937521
2013-06-22 22:47:35 +00:00
Germán Arias
dc0ac1b635 Fix problems with last commit.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36734 72102866-910b-0410-8b05-ffd578937521
2013-06-20 18:33:52 +00:00
Germán Arias
70b54d1f0d Add autocomplete in NSTextView.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36733 72102866-910b-0410-8b05-ffd578937521
2013-06-19 18:40:28 +00:00
Sebastian Reitenbach
494399d5f4 bump version of NSParagraphStyle, and fix the decoder
makes Grr happy again loading its gorm files

OK Fred Kiefer



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36646 72102866-910b-0410-8b05-ffd578937521
2013-05-17 15:50:53 +00:00
Germán Arias
316ee53b63 Add -resetCursorRect:inView: in NSFormCell.m
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36620 72102866-910b-0410-8b05-ffd578937521
2013-05-14 18:39:36 +00:00