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);
// 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;
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: \
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); \
{ \
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) \