]> git.saurik.com Git - wxWidgets.git/blame - include/wx/generic/panelg.h
Replaced typedef with #define for VC++ 1.5, to prevent 'no constructor' error
[wxWidgets.git] / include / wx / generic / panelg.h
CommitLineData
c801d85f 1/////////////////////////////////////////////////////////////////////////////
f6bcfd97
BP
2// Name: wx/generic/panelg.h
3// Purpose: wxPanel: a container for child controls
c801d85f
KB
4// Author: Julian Smart
5// Modified by:
6// Created: 01/02/97
7// RCS-ID: $Id$
8// Copyright: (c)
678cd6de 9// Licence: wxWindows licence
c801d85f
KB
10/////////////////////////////////////////////////////////////////////////////
11
678cd6de
VZ
12#ifndef _WX_GENERIC_PANEL_H_
13#define _WX_GENERIC_PANEL_H_
c801d85f
KB
14
15#ifdef __GNUG__
f6bcfd97 16 #pragma interface "panelg.h"
c801d85f
KB
17#endif
18
f6bcfd97
BP
19// ----------------------------------------------------------------------------
20// headers and forward declarations
21// ----------------------------------------------------------------------------
22
c801d85f 23#include "wx/window.h"
f6bcfd97
BP
24
25class WXDLLEXPORT wxButton;
c801d85f 26
908d4516 27WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr;
c801d85f 28
f6bcfd97
BP
29// ----------------------------------------------------------------------------
30// wxPanel contains other controls and implements TAB traversal between them
31// ----------------------------------------------------------------------------
32
06b57134 33class WXDLLEXPORT wxPanel : public wxWindow
c801d85f 34{
c801d85f 35public:
edccf428 36 wxPanel() { Init(); }
27dc7e21 37
341c92a8
VZ
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 {
edccf428
VZ
45 Init();
46
341c92a8
VZ
47 Create(parent, -1, wxPoint(x, y), wxSize(width, height), style, name);
48 }
27dc7e21 49
341c92a8
VZ
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 {
d220ae32
VZ
58 Init();
59
341c92a8
VZ
60 Create(parent, id, pos, size, style, name);
61 }
c801d85f 62
341c92a8
VZ
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);
27dc7e21 69
341c92a8
VZ
70 // Sends an OnInitDialog event, which in turns transfers data to
71 // to the dialog via validators.
72 virtual void InitDialog();
c801d85f 73
edccf428
VZ
74 // a default button is activated when Enter is pressed
75 wxButton *GetDefaultItem() const { return m_btnDefault; }
76 void SetDefaultItem(wxButton *btn) { m_btnDefault = btn; }
77
78 // implementation from now on
79 // --------------------------
80
341c92a8
VZ
81 // responds to colour changes
82 void OnSysColourChanged(wxSysColourChangedEvent& event);
27dc7e21 83
341c92a8
VZ
84 // process a keyboard navigation message (Tab traversal)
85 void OnNavigationKey(wxNavigationKeyEvent& event);
27dc7e21 86
341c92a8
VZ
87 // set the focus to the first child if we get it
88 void OnFocus(wxFocusEvent& event);
c801d85f 89
3da17724 90 // calls layout for layout constraints and sizers
27dc7e21
RD
91 void OnSize(wxSizeEvent& event);
92
3da17724
RR
93 // overridden to tab move focus into first focusable child
94 virtual void SetFocus();
95
341c92a8 96 // called by wxWindow whenever it gets focus
319fefa9
VZ
97 void SetLastFocus(wxWindow *win) { m_winLastFocused = win; }
98 wxWindow *GetLastFocus() const { return m_winLastFocused; }
c801d85f 99
341c92a8 100protected:
edccf428
VZ
101 // common part of all ctors
102 void Init();
103
00c4e897
VZ
104 // set the focus to the child which had it the last time
105 bool SetFocusToChild();
106
341c92a8 107 // the child which had the focus last time this panel was activated
319fefa9 108 wxWindow *m_winLastFocused;
06b57134 109
edccf428
VZ
110 // a default button or NULL
111 wxButton *m_btnDefault;
112
06b57134
VZ
113private:
114 DECLARE_DYNAMIC_CLASS(wxPanel)
115 DECLARE_EVENT_TABLE()
c801d85f
KB
116};
117
f6bcfd97
BP
118// this function is for wxWindows use only
119extern bool wxSetFocusToChild(wxWindow *win, wxWindow **child);
120
c801d85f 121#endif
678cd6de 122 // _WX_GENERIC_PANEL_H_