mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-31 09:40:50 +00:00
* 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:
parent
fe37bc668a
commit
c8c8f845ce
5 changed files with 58 additions and 4 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue