move default button handling code from wxControlContainer to wxTLW (patch 1524441)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -38,28 +38,6 @@ public:
|
||||
wxControlContainer(wxWindow *winParent = NULL);
|
||||
void SetContainerWindow(wxWindow *winParent) { m_winParent = winParent; }
|
||||
|
||||
// default item access: we have a permanent default item which is the one
|
||||
// set by the user code but we may also have a temporary default item which
|
||||
// would be chosen if the user pressed "Enter" now but the default action
|
||||
// reverts to the "permanent" default as soon as this temporary default
|
||||
// item lsoes focus
|
||||
|
||||
// get the default item, temporary or permanent
|
||||
wxWindow *GetDefaultItem() const
|
||||
{ return m_winTmpDefault ? m_winTmpDefault : m_winDefault; }
|
||||
|
||||
// set the permanent default item, return its old value
|
||||
wxWindow *SetDefaultItem(wxWindow *win)
|
||||
{ wxWindow *winOld = m_winDefault; m_winDefault = win; return winOld; }
|
||||
|
||||
// set a temporary default item, SetTmpDefaultItem(NULL) should be called
|
||||
// soon after a call to SetTmpDefaultItem(window)
|
||||
void SetTmpDefaultItem(wxWindow *win) { m_winTmpDefault = win; }
|
||||
|
||||
// return the temporary default item, can be NULL
|
||||
wxWindow *GetTmpDefaultItem() const { return m_winTmpDefault; }
|
||||
|
||||
|
||||
// the methods to be called from the window event handlers
|
||||
void HandleOnNavigationKey(wxNavigationKeyEvent& event);
|
||||
void HandleOnFocus(wxFocusEvent& event);
|
||||
@@ -86,12 +64,6 @@ protected:
|
||||
// the child which had the focus last time this panel was activated
|
||||
wxWindow *m_winLastFocused;
|
||||
|
||||
// a default window (usually a button) or NULL
|
||||
wxWindow *m_winDefault;
|
||||
|
||||
// a temporary override of m_winDefault, use the latter if NULL
|
||||
wxWindow *m_winTmpDefault;
|
||||
|
||||
// a guard against infinite recursion
|
||||
bool m_inSetFocus;
|
||||
|
||||
@@ -115,10 +87,6 @@ public: \
|
||||
virtual void SetFocus(); \
|
||||
virtual void SetFocusIgnoringChildren(); \
|
||||
virtual void RemoveChild(wxWindowBase *child); \
|
||||
virtual wxWindow *GetDefaultItem() const; \
|
||||
virtual wxWindow *SetDefaultItem(wxWindow *child); \
|
||||
virtual void SetTmpDefaultItem(wxWindow *win); \
|
||||
virtual wxWindow *GetTmpDefaultItem() const; \
|
||||
virtual bool AcceptsFocus() const; \
|
||||
\
|
||||
protected: \
|
||||
@@ -131,27 +99,7 @@ protected: \
|
||||
EVT_NAVIGATION_KEY(classname::OnNavigationKey)
|
||||
|
||||
// implement the methods forwarding to the wxControlContainer
|
||||
#define WX_DELEGATE_TO_CONTROL_CONTAINER(classname) \
|
||||
wxWindow *classname::SetDefaultItem(wxWindow *child) \
|
||||
{ \
|
||||
return m_container.SetDefaultItem(child); \
|
||||
} \
|
||||
\
|
||||
void classname::SetTmpDefaultItem(wxWindow *child) \
|
||||
{ \
|
||||
m_container.SetTmpDefaultItem(child); \
|
||||
} \
|
||||
\
|
||||
wxWindow *classname::GetDefaultItem() const \
|
||||
{ \
|
||||
return m_container.GetDefaultItem(); \
|
||||
} \
|
||||
\
|
||||
wxWindow *classname::GetTmpDefaultItem() const \
|
||||
{ \
|
||||
return m_container.GetTmpDefaultItem(); \
|
||||
} \
|
||||
\
|
||||
#define WX_DELEGATE_TO_CONTROL_CONTAINER(classname, basename) \
|
||||
void classname::OnNavigationKey( wxNavigationKeyEvent& event ) \
|
||||
{ \
|
||||
m_container.HandleOnNavigationKey(event); \
|
||||
@@ -161,18 +109,18 @@ void classname::RemoveChild(wxWindowBase *child) \
|
||||
{ \
|
||||
m_container.HandleOnWindowDestroy(child); \
|
||||
\
|
||||
wxWindow::RemoveChild(child); \
|
||||
basename::RemoveChild(child); \
|
||||
} \
|
||||
\
|
||||
void classname::SetFocus() \
|
||||
{ \
|
||||
if ( !m_container.DoSetFocus() ) \
|
||||
wxWindow::SetFocus(); \
|
||||
basename::SetFocus(); \
|
||||
} \
|
||||
\
|
||||
void classname::SetFocusIgnoringChildren() \
|
||||
{ \
|
||||
wxWindow::SetFocus(); \
|
||||
basename::SetFocus(); \
|
||||
} \
|
||||
\
|
||||
void classname::OnChildFocus(wxChildFocusEvent& event) \
|
||||
|
Reference in New Issue
Block a user