* 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
This commit is contained in:
ericwa 2013-10-14 17:18:38 +00:00
parent fe37bc668a
commit c8c8f845ce
5 changed files with 58 additions and 4 deletions

View file

@ -972,6 +972,20 @@ typedef struct _GSButtonCellFlags
buttonState = GSThemeDisabledState;
}
/* If we are first responder, change to the corresponding
first responder state. Note that GSThemeDisabledState
doesn't have a first responder variant, currently. */
if (_cell.shows_first_responder
&& [[controlView window] firstResponder] == controlView)
{
if (buttonState == GSThemeSelectedState)
buttonState = GSThemeSelectedFirstResponderState;
else if (buttonState == GSThemeHighlightedState)
buttonState = GSThemeHighlightedFirstResponderState;
else if (buttonState == GSThemeNormalState)
buttonState = GSThemeFirstResponderState;
}
[[GSTheme theme] drawButton: cellFrame
in: self
view: controlView