diff --git a/ChangeLog b/ChangeLog index 88758033c..8f489d587 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,12 @@ -2010-01-29 Eric Wasylishen +2010-02-01 Eric Wasylishen + + * Source/GSTheme.m: + * Source/GSThemeDrawing.m: + * Source/NSButtonCell.m + * Headers/Additions/GNUstepGUI/GSTheme.h: + Add a new theme state, GSThemeDisabledState. + +2010-01-31 Eric Wasylishen * Source/GSTheme.m: * Source/GSThemeDrawing.m: diff --git a/Headers/Additions/GNUstepGUI/GSTheme.h b/Headers/Additions/GNUstepGUI/GSTheme.h index b1f43ac35..7ed96c736 100644 --- a/Headers/Additions/GNUstepGUI/GSTheme.h +++ b/Headers/Additions/GNUstepGUI/GSTheme.h @@ -315,6 +315,7 @@ GSThemeFillStyleFromString(NSString *s); */ typedef enum { GSThemeNormalState = 0, /** A control in its normal state */ + GSThemeDisabledState, /** A control which is disabled */ GSThemeHighlightedState, /** A control which is highlighted */ GSThemeSelectedState /** A control which is selected */ } GSThemeControlState; diff --git a/Source/GSTheme.m b/Source/GSTheme.m index 1cd1c0422..33bef2d0e 100644 --- a/Source/GSTheme.m +++ b/Source/GSTheme.m @@ -1287,6 +1287,9 @@ typedef struct { case GSThemeNormalState: fullName = aName; break; + case GSThemeDisabledState: + fullName = [aName stringByAppendingString: @"Disabled"]; + break; case GSThemeHighlightedState: fullName = [aName stringByAppendingString: @"Highlighted"]; break; diff --git a/Source/GSThemeDrawing.m b/Source/GSThemeDrawing.m index c023898aa..c84cc7148 100644 --- a/Source/GSThemeDrawing.m +++ b/Source/GSThemeDrawing.m @@ -80,6 +80,10 @@ { color = [NSColor selectedControlColor]; } + else + { + color = [NSColor controlBackgroundColor]; + } } tiles = [self tilesNamed: name state: state]; @@ -141,6 +145,10 @@ { [self drawGrayBezel: frame withClip: NSZeroRect]; } + else + { + [self drawButton: frame withClip: NSZeroRect]; + } } } else diff --git a/Source/NSButtonCell.m b/Source/NSButtonCell.m index 5268caa95..d6f5a2d70 100644 --- a/Source/NSButtonCell.m +++ b/Source/NSButtonCell.m @@ -910,6 +910,11 @@ typedef struct _GSButtonCellFlags buttonState = GSThemeSelectedState; } + if (_cell.is_disabled && buttonState != GSThemeHighlightedState) + { + buttonState = GSThemeDisabledState; + } + [[GSTheme theme] drawButton: cellFrame in: self view: controlView