From f63c0258d2e478307ef196bada2999bbe739997c Mon Sep 17 00:00:00 2001 From: fredkiefer Date: Thu, 22 Mar 2007 17:47:56 +0000 Subject: [PATCH] Corrected and cleaned up focus ring drawing for cell classes. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@24924 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 10 ++++++++++ Source/NSBrowserCell.m | 3 --- Source/NSButtonCell.m | 18 +++++++++++++++--- Source/NSCell.m | 18 +++++++++++++++--- Source/NSImageCell.m | 3 --- Source/NSPopUpButtonCell.m | 6 ------ 6 files changed, 40 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0114596b3..be9588274 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2007-03-22 Fred Kiefer + + * Source/NSButtonCell.m (-drawWithFrame:inView:), + * Source/NSCell.m (-drawWithFrame:inView:): Respect focus ring + style when drawing first responder state. + * Source/NSBrowserCell.m (-drawInteriorWithFrame:inView:), + * Source/NSPopupButtonCell.m (-drawInteriorWithFrame:inView:), + * Source/NSImageCell.m (-drawInteriorWithFrame:inView:): Don't + draw focus ring. + 2007-03-22 Richard Frith-Macdonald * Source/NSAffineTransform.m: Avoid accessing internals of the base diff --git a/Source/NSBrowserCell.m b/Source/NSBrowserCell.m index 20e629b28..2c347d54e 100644 --- a/Source/NSBrowserCell.m +++ b/Source/NSBrowserCell.m @@ -323,9 +323,6 @@ static NSFont *_leafFont; // Draw the body of the cell [self _drawAttributedText: [self attributedStringValue] inFrame: title_rect]; - - if (_cell.shows_first_responder == YES) - NSDottedFrameRect(cellFrame); } - (BOOL) isOpaque diff --git a/Source/NSButtonCell.m b/Source/NSButtonCell.m index ec04e07c4..a6a9482e1 100644 --- a/Source/NSButtonCell.m +++ b/Source/NSButtonCell.m @@ -948,9 +948,21 @@ typedef struct _GSButtonCellFlags if (_cell.shows_first_responder && [[controlView window] firstResponder] == controlView) { - // FIXME: Should depend on _cell.focus_ring_type - [[GSTheme theme] drawFocusFrame: [self drawingRectForBounds: cellFrame] - view: controlView]; + switch (_cell.focus_ring_type) + { + case NSFocusRingTypeDefault: + [[GSTheme theme] drawFocusFrame: [self drawingRectForBounds: + cellFrame] + view: controlView]; + break; + case NSFocusRingTypeExterior: + [[GSTheme theme] drawFocusFrame: cellFrame + view: controlView]; + break; + case NSFocusRingTypeNone: + default: + break; + } } } diff --git a/Source/NSCell.m b/Source/NSCell.m index e1da1c692..7757b61db 100644 --- a/Source/NSCell.m +++ b/Source/NSCell.m @@ -2019,9 +2019,21 @@ static NSColor *shadowCol; if (_cell.shows_first_responder && [[controlView window] firstResponder] == controlView) { - // FIXME: Should depend on _cell.focus_ring_type - [[GSTheme theme] drawFocusFrame: [self drawingRectForBounds: cellFrame] - view: controlView]; + switch (_cell.focus_ring_type) + { + case NSFocusRingTypeDefault: + [[GSTheme theme] drawFocusFrame: [self drawingRectForBounds: + cellFrame] + view: controlView]; + break; + case NSFocusRingTypeExterior: + [[GSTheme theme] drawFocusFrame: cellFrame + view: controlView]; + break; + case NSFocusRingTypeNone: + default: + break; + } } } diff --git a/Source/NSImageCell.m b/Source/NSImageCell.m index a603d4834..6a56810d8 100644 --- a/Source/NSImageCell.m +++ b/Source/NSImageCell.m @@ -301,9 +301,6 @@ scaleProportionally(NSSize imageSize, NSRect canvasRect) realImageSize.height) operation: NSCompositeSourceOver fraction: 1.0]; - - if (_cell.shows_first_responder) - NSDottedFrameRect(cellFrame); } - (NSSize) cellSize diff --git a/Source/NSPopUpButtonCell.m b/Source/NSPopUpButtonCell.m index b273a6db7..01cf93bbc 100644 --- a/Source/NSPopUpButtonCell.m +++ b/Source/NSPopUpButtonCell.m @@ -888,12 +888,6 @@ static NSImage *_pbc_image[2]; [self calcSize]; [super drawInteriorWithFrame: cellFrame inView: controlView]; - if (_cell.shows_first_responder) - { - cellFrame = [self drawingRectForBounds: cellFrame]; - NSDottedFrameRect(cellFrame); - } - /* Unset the item to restore balance if a new was created */ if (new) {