full keyboard access support

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37419 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2006-02-09 15:30:21 +00:00
parent 88c139da46
commit 90b4f7b5f5

View File

@@ -1256,14 +1256,22 @@ void wxWindowMac::MacSetBackgroundBrush( const wxBrush &brush )
bool wxWindowMac::MacCanFocus() const
{
// there is currently no way to determine whether the window is running in full keyboard
// access mode, therefore we cannot rely on these features, yet the only other way would be
// to issue a SetKeyboardFocus event and verify after whether it succeeded, this would risk problems
// in event handlers...
UInt32 features = 0 ;
m_peer->GetFeatures( &features ) ;
// TODO : evaluate performance hits by looking up this value, eventually cache the results for a 1 sec or so
// CAUTION : the value returned currently is 0 or 2, I've also found values of 1 having the same meaning, but the value range
// is nowhere documented
Boolean keyExistsAndHasValidFormat ;
CFIndex fullKeyboardAccess = CFPreferencesGetAppIntegerValue ( CFSTR("AppleKeyboardUIMode" ) ,
kCFPreferencesCurrentApplication, &keyExistsAndHasValidFormat);
if ( keyExistsAndHasValidFormat && fullKeyboardAccess > 0 )
return true ;
else
{
UInt32 features = 0 ;
m_peer->GetFeatures( &features ) ;
return features & ( kControlSupportsFocus | kControlGetsFocusOnClick ) ;
return features & ( kControlSupportsFocus | kControlGetsFocusOnClick ) ;
}
}
void wxWindowMac::SetFocus()