X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/678cd6de66095373ebaed01d8d013f256cac326b..442b35b53bf95f5c6c003ea9ddbefd17adbc2a00:/include/wx/generic/panelg.h?ds=sidebyside diff --git a/include/wx/generic/panelg.h b/include/wx/generic/panelg.h index b6c550a860..44ea182c1c 100644 --- a/include/wx/generic/panelg.h +++ b/include/wx/generic/panelg.h @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: panelg.h -// Purpose: wxPanel: similar to wxWindows but is coloured as for a dialog +// Name: wx/generic/panelg.h +// Purpose: wxPanel: a container for child controls // Author: Julian Smart // Modified by: // Created: 01/02/97 @@ -13,14 +13,23 @@ #define _WX_GENERIC_PANEL_H_ #ifdef __GNUG__ -#pragma interface "panelg.h" + #pragma interface "panelg.h" #endif +// ---------------------------------------------------------------------------- +// headers and forward declarations +// ---------------------------------------------------------------------------- + #include "wx/window.h" -#include "wx/button.h" + +class WXDLLEXPORT wxButton; WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr; +// ---------------------------------------------------------------------------- +// wxPanel contains other controls and implements TAB traversal between them +// ---------------------------------------------------------------------------- + class WXDLLEXPORT wxPanel : public wxWindow { public: @@ -62,9 +71,11 @@ public: // to the dialog via validators. virtual void InitDialog(); +#if wxUSE_BUTTON // a default button is activated when Enter is pressed wxButton *GetDefaultItem() const { return m_btnDefault; } void SetDefaultItem(wxButton *btn) { m_btnDefault = btn; } +#endif // wxUSE_BUTTON // implementation from now on // -------------------------- @@ -78,26 +89,40 @@ public: // set the focus to the first child if we get it void OnFocus(wxFocusEvent& event); + // calls layout for layout constraints and sizers void OnSize(wxSizeEvent& event); + // overridden to tab move focus into first focusable child + virtual void SetFocus(); + // called by wxWindow whenever it gets focus void SetLastFocus(wxWindow *win) { m_winLastFocused = win; } wxWindow *GetLastFocus() const { return m_winLastFocused; } + virtual void RemoveChild(wxWindowBase *child); + protected: // common part of all ctors void Init(); + // set the focus to the child which had it the last time + bool SetFocusToChild(); + // the child which had the focus last time this panel was activated wxWindow *m_winLastFocused; +#if wxUSE_BUTTON // a default button or NULL wxButton *m_btnDefault; +#endif // wxUSE_BUTTON private: DECLARE_DYNAMIC_CLASS(wxPanel) DECLARE_EVENT_TABLE() }; +// this function is for wxWindows use only +extern bool wxSetFocusToChild(wxWindow *win, wxWindow **child); + #endif // _WX_GENERIC_PANEL_H_