added wxNavigationEvent::FromTab flag

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-02-19 21:59:21 +00:00
parent 7ff1b620e8
commit 298ca00cdc
2 changed files with 14 additions and 3 deletions

View File

@@ -1859,7 +1859,7 @@ class WXDLLIMPEXP_CORE wxNavigationKeyEvent : public wxEvent
public:
wxNavigationKeyEvent()
: wxEvent(0, wxEVT_NAVIGATION_KEY),
m_flags(IsForward), // defaults are for TAB
m_flags(IsForward | FromTab), // defaults are for TAB
m_focus((wxWindow *)NULL)
{
m_propagationLevel = wxEVENT_PROPAGATE_NONE;
@@ -1884,6 +1884,13 @@ public:
void SetWindowChange(bool bIs)
{ if ( bIs ) m_flags |= WinChange; else m_flags &= ~WinChange; }
// Set to true under MSW if the event was generated using the tab key.
// This is required for proper navogation over radio buttons
bool IsFromTab() const
{ return (m_flags & FromTab) != 0; }
void SetFromTab(bool bIs)
{ if ( bIs ) m_flags |= FromTab; else m_flags &= ~FromTab; }
// the child which has the focus currently (may be NULL - use
// wxWindow::FindFocus then)
wxWindow* GetCurrentFocus() const { return m_focus; }
@@ -1898,7 +1905,8 @@ public:
{
IsBackward = 0x0000,
IsForward = 0x0001,
WinChange = 0x0002
WinChange = 0x0002,
FromTab = 0x0004
};
long m_flags;

View File

@@ -1828,7 +1828,8 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg)
}
bool bForward = true,
bWindowChange = false;
bWindowChange = false,
bFromTab = false;
// should we process this message specially?
bool bProcess = true;
@@ -1842,6 +1843,7 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg)
// Ctrl-Tab cycles thru notebook pages
bWindowChange = bCtrlDown;
bForward = !bShiftDown;
bFromTab = true;
}
break;
@@ -1966,6 +1968,7 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg)
wxNavigationKeyEvent event;
event.SetDirection(bForward);
event.SetWindowChange(bWindowChange);
event.SetFromTab(bFromTab);
event.SetEventObject(this);
if ( GetEventHandler()->ProcessEvent(event) )