Fix wxStaticText::Disable() to respect text color on OS X

wxStaticText emulates disabled state on OS X by changing text color to
light grey. When re-enabling the control, though, it always set the
color to the standard text color, which broke static texts with a custom
color.

Fix this by keeping track of the original color and restoring it back
when setEnabled:YES is called.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78107 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík 2014-11-10 06:57:50 +00:00
parent c3596d4591
commit a0fe90c644

View File

@ -32,6 +32,7 @@
@interface wxNSStaticTextView : NSTextField
{
NSColor *m_textColor;
}
@end
@ -47,6 +48,12 @@
}
}
- (void)dealloc
{
[m_textColor release];
[super dealloc];
}
- (void) setEnabled:(BOOL) flag
{
[super setEnabled: flag];
@ -57,10 +64,13 @@
// http://www.cocoabuilder.com/archive/message/cocoa/2006/7/21/168028
if (flag)
{
[self setTextColor: [NSColor controlTextColor]];
if (m_textColor)
[self setTextColor: m_textColor];
}
else
{
[m_textColor release];
m_textColor = [[self textColor] retain];
[self setTextColor: [NSColor secondarySelectedControlColor]];
}
}