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:
@@ -1859,7 +1859,7 @@ class WXDLLIMPEXP_CORE wxNavigationKeyEvent : public wxEvent
|
|||||||
public:
|
public:
|
||||||
wxNavigationKeyEvent()
|
wxNavigationKeyEvent()
|
||||||
: wxEvent(0, wxEVT_NAVIGATION_KEY),
|
: 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_focus((wxWindow *)NULL)
|
||||||
{
|
{
|
||||||
m_propagationLevel = wxEVENT_PROPAGATE_NONE;
|
m_propagationLevel = wxEVENT_PROPAGATE_NONE;
|
||||||
@@ -1884,6 +1884,13 @@ public:
|
|||||||
void SetWindowChange(bool bIs)
|
void SetWindowChange(bool bIs)
|
||||||
{ if ( bIs ) m_flags |= WinChange; else m_flags &= ~WinChange; }
|
{ 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
|
// the child which has the focus currently (may be NULL - use
|
||||||
// wxWindow::FindFocus then)
|
// wxWindow::FindFocus then)
|
||||||
wxWindow* GetCurrentFocus() const { return m_focus; }
|
wxWindow* GetCurrentFocus() const { return m_focus; }
|
||||||
@@ -1898,7 +1905,8 @@ public:
|
|||||||
{
|
{
|
||||||
IsBackward = 0x0000,
|
IsBackward = 0x0000,
|
||||||
IsForward = 0x0001,
|
IsForward = 0x0001,
|
||||||
WinChange = 0x0002
|
WinChange = 0x0002,
|
||||||
|
FromTab = 0x0004
|
||||||
};
|
};
|
||||||
|
|
||||||
long m_flags;
|
long m_flags;
|
||||||
|
@@ -1828,7 +1828,8 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool bForward = true,
|
bool bForward = true,
|
||||||
bWindowChange = false;
|
bWindowChange = false,
|
||||||
|
bFromTab = false;
|
||||||
|
|
||||||
// should we process this message specially?
|
// should we process this message specially?
|
||||||
bool bProcess = true;
|
bool bProcess = true;
|
||||||
@@ -1842,6 +1843,7 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg)
|
|||||||
// Ctrl-Tab cycles thru notebook pages
|
// Ctrl-Tab cycles thru notebook pages
|
||||||
bWindowChange = bCtrlDown;
|
bWindowChange = bCtrlDown;
|
||||||
bForward = !bShiftDown;
|
bForward = !bShiftDown;
|
||||||
|
bFromTab = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1966,6 +1968,7 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg)
|
|||||||
wxNavigationKeyEvent event;
|
wxNavigationKeyEvent event;
|
||||||
event.SetDirection(bForward);
|
event.SetDirection(bForward);
|
||||||
event.SetWindowChange(bWindowChange);
|
event.SetWindowChange(bWindowChange);
|
||||||
|
event.SetFromTab(bFromTab);
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
|
|
||||||
if ( GetEventHandler()->ProcessEvent(event) )
|
if ( GetEventHandler()->ProcessEvent(event) )
|
||||||
|
Reference in New Issue
Block a user