]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/generic/panelg.h
#ifdefed wxPopupComboWindow to be used only in wxUniv
[wxWidgets.git] / include / wx / generic / panelg.h
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: wx/generic/panelg.h
3// Purpose: wxPanel: a container for child controls
4// Author: Julian Smart
5// Modified by:
6// Created: 01/02/97
7// RCS-ID: $Id$
8// Copyright: (c)
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_GENERIC_PANEL_H_
13#define _WX_GENERIC_PANEL_H_
14
15#ifdef __GNUG__
16 #pragma interface "panelg.h"
17#endif
18
19// ----------------------------------------------------------------------------
20// headers and forward declarations
21// ----------------------------------------------------------------------------
22
23#include "wx/window.h"
24
25class WXDLLEXPORT wxButton;
26
27WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr;
28
29// ----------------------------------------------------------------------------
30// wxPanel contains other controls and implements TAB traversal between them
31// ----------------------------------------------------------------------------
32
33class WXDLLEXPORT wxPanel : public wxWindow
34{
35public:
36 wxPanel() { Init(); }
37
38 // Old-style constructor (no default values for coordinates to avoid
39 // ambiguity with the new one)
40 wxPanel(wxWindow *parent,
41 int x, int y, int width, int height,
42 long style = wxTAB_TRAVERSAL | wxNO_BORDER,
43 const wxString& name = wxPanelNameStr)
44 {
45 Init();
46
47 Create(parent, -1, wxPoint(x, y), wxSize(width, height), style, name);
48 }
49
50 // Constructor
51 wxPanel(wxWindow *parent,
52 wxWindowID id = -1,
53 const wxPoint& pos = wxDefaultPosition,
54 const wxSize& size = wxDefaultSize,
55 long style = wxTAB_TRAVERSAL | wxNO_BORDER,
56 const wxString& name = wxPanelNameStr)
57 {
58 Init();
59
60 Create(parent, id, pos, size, style, name);
61 }
62
63 // Pseudo ctor
64 bool Create(wxWindow *parent, wxWindowID id,
65 const wxPoint& pos = wxDefaultPosition,
66 const wxSize& size = wxDefaultSize,
67 long style = wxTAB_TRAVERSAL | wxNO_BORDER,
68 const wxString& name = wxPanelNameStr);
69
70 // Sends an OnInitDialog event, which in turns transfers data to
71 // to the dialog via validators.
72 virtual void InitDialog();
73
74#if wxUSE_BUTTON
75 // a default button is activated when Enter is pressed
76 wxButton *GetDefaultItem() const { return m_btnDefault; }
77 void SetDefaultItem(wxButton *btn) { m_btnDefault = btn; }
78#endif // wxUSE_BUTTON
79
80 // implementation from now on
81 // --------------------------
82
83 // responds to colour changes
84 void OnSysColourChanged(wxSysColourChangedEvent& event);
85
86 // process a keyboard navigation message (Tab traversal)
87 void OnNavigationKey(wxNavigationKeyEvent& event);
88
89 // set the focus to the first child if we get it
90 void OnFocus(wxFocusEvent& event);
91
92 // calls layout for layout constraints and sizers
93 void OnSize(wxSizeEvent& event);
94
95 // overridden to tab move focus into first focusable child
96 virtual void SetFocus();
97
98 // called by wxWindow whenever it gets focus
99 void SetLastFocus(wxWindow *win) { m_winLastFocused = win; }
100 wxWindow *GetLastFocus() const { return m_winLastFocused; }
101
102 virtual void RemoveChild(wxWindowBase *child);
103
104protected:
105 // common part of all ctors
106 void Init();
107
108 // set the focus to the child which had it the last time
109 bool SetFocusToChild();
110
111 // the child which had the focus last time this panel was activated
112 wxWindow *m_winLastFocused;
113
114#if wxUSE_BUTTON
115 // a default button or NULL
116 wxButton *m_btnDefault;
117#endif // wxUSE_BUTTON
118
119private:
120 DECLARE_DYNAMIC_CLASS(wxPanel)
121 DECLARE_EVENT_TABLE()
122};
123
124// this function is for wxWindows use only
125extern bool wxSetFocusToChild(wxWindow *win, wxWindow **child);
126
127#endif
128 // _WX_GENERIC_PANEL_H_