]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/panel.tex
undefine _DEFINE_LIST before redefining it; also rename it to have WX prefix
[wxWidgets.git] / docs / latex / wx / panel.tex
index 1b8f49e5cb68e9e877da7ac6ab7e763193798ea7..90b4ad50e12317045233c12c92c0af7829c3a437 100644 (file)
@@ -1,13 +1,19 @@
 \section{\class{wxPanel}}\label{wxpanel}
 
 \section{\class{wxPanel}}\label{wxpanel}
 
-A panel is a window on which controls are placed. It is usually placed within a frame.
-It contains minimal extra functionality over and above its parent class wxWindow; its main
-purpose is to be similar in appearance and functionality to a dialog, but with the flexibility of
-having any window as a parent.
+A panel is a window on which controls are placed. It is usually placed within
+a frame. Its main feature over its parent class wxWindow is code for handling
+child windows and TAB traversal. Since wxWidgets 2.9, there is support both
+for TAB traversal implemented by wxWidgets itself as well as native TAB
+traversal (such as for GTK 2.0).
 
 
-{\it Note:} if not all characters are being intercepted by your OnKeyDown or OnChar handler,
-it may be because you are using the wxTAB\_TRAVERSAL style, which grabs some keypresses for use
-by child controls.
+{\it Note:} Tab traversal is implemented through an otherwise undocumented
+intermediate wxControlContainer class from which any class can derive
+in addition to the normal wxWindow base class. Please see <wx/containr.h>
+and <wx/panel.h> to find out how this is achieved.
+
+{\it Note:} if not all characters are being intercepted by your OnKeyDown or
+OnChar handler, it may be because you are using the wxTAB\_TRAVERSAL style, 
+which grabs some keypresses for use by child controls.
 
 \wxheading{Derived from}
 
 
 \wxheading{Derived from}
 
@@ -35,13 +41,13 @@ By default, a panel has the same colouring as a dialog.
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
-\membersection{wxPanel::wxPanel}\label{wxpanelconstr}
+\membersection{wxPanel::wxPanel}\label{wxpanelctor}
 
 \func{}{wxPanel}{\void}
 
 Default constructor.
 
 
 \func{}{wxPanel}{\void}
 
 Default constructor.
 
-\func{}{wxPanel}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = $-1$},\rtfsp
+\func{}{wxPanel}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = \texttt{wxID\_ANY}},\rtfsp
 \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp
 \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
 \param{long}{ style = wxTAB\_TRAVERSAL},\rtfsp
 \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp
 \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
 \param{long}{ style = wxTAB\_TRAVERSAL},\rtfsp
@@ -71,7 +77,7 @@ individual dialog boxes.}
 
 \helpref{wxPanel::Create}{wxpanelcreate}
 
 
 \helpref{wxPanel::Create}{wxpanelcreate}
 
-\membersection{wxPanel::\destruct{wxPanel}}
+\membersection{wxPanel::\destruct{wxPanel}}\label{wxpaneldtor}
 
 \func{}{\destruct{wxPanel}}{\void}
 
 
 \func{}{\destruct{wxPanel}}{\void}
 
@@ -79,21 +85,25 @@ Destructor. Deletes any child windows before deleting the physical window.
 
 \membersection{wxPanel::Create}\label{wxpanelcreate}
 
 
 \membersection{wxPanel::Create}\label{wxpanelcreate}
 
-\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp
+\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = \texttt{wxID\_ANY}},\rtfsp
 \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp
 \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
 \param{long}{ style = wxTAB\_TRAVERSAL},\rtfsp
 \param{const wxString\& }{name = ``panel"}}
 
 \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp
 \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
 \param{long}{ style = wxTAB\_TRAVERSAL},\rtfsp
 \param{const wxString\& }{name = ``panel"}}
 
-Used for two-step panel construction. See \helpref{wxPanel::wxPanel}{wxpanelconstr}\rtfsp
+Used for two-step panel construction. See \helpref{wxPanel::wxPanel}{wxpanelctor}\rtfsp
 for details.
 
 for details.
 
-\membersection{wxPanel::GetDefaultItem}\label{wxpanelgetdefaultitem}
 
 
-\constfunc{wxButton*}{GetDefaultItem}{\void}
+\membersection{wxPanel::AcceptsFocus}\label{wxpanelacceptsfocus}
+
+\constfunc{bool}{AcceptsFocus}{\void}
+
+This method is overridden from \helpref{wxWindow::AcceptsFocus}{wxwindowacceptsfocus}
+and returns true only if there is no child window in the panel which
+can accept the focus. This is reevaluated each time a child
+window is added or removed from the panel.
 
 
-Returns a pointer to the button which is the default for this window, or NULL.
-The default button is the one activated by pressing the Enter key.
 
 \membersection{wxPanel::InitDialog}\label{wxpanelinitdialog}
 
 
 \membersection{wxPanel::InitDialog}\label{wxpanelinitdialog}
 
@@ -128,13 +138,33 @@ propagate the notification to child windows and controls.
 
 \helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}
 
 
 \helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}
 
-\membersection{wxPanel::SetDefaultItem}\label{wxpanelsetdefaultitem}
 
 
-\func{void}{SetDefaultItem}{\param{wxButton }{*btn}}
+\membersection{wxPanel::SetFocus}\label{wxpanelsetfocus}
+
+\func{virtual void}{SetFocus}{\void}
+
+Overrides \helpref{wxWindow::SetFocus}{wxwindowsetfocus}. This method
+uses the (undocumented) mix-in class wxControlContainer which manages
+the focus and TAB logic for controls which usually have child controls.
+In practice, if you call this method and the control has at least
+one child window, the focus will be given to the child window.
+
+\wxheading{See also}
+
+\helpref{wxFocusEvent}{wxfocusevent}
+\helpref{wxWindow::SetFocus}{wxwindowsetfocus}
+
+
+\membersection{wxPanel::SetFocusIgnoringChildren}\label{wxpanelsetfocusignoringchildren}
+
+\func{virtual void}{SetFocusIgnoringChildren}{\void}
 
 
-Changes the default button for the panel.
+In contrast to \helpref{wxPanel::SetFocus}{wxpanelsetfocus} (see above)
+this will set the focus to the panel even if there are child windows
+in the panel. This is only rarely needed.
 
 \wxheading{See also}
 
 
 \wxheading{See also}
 
-\helpref{GetDefaultItem}{wxpanelgetdefaultitem}
+\helpref{wxFocusEvent}{wxfocusevent}
+\helpref{wxPanel::SetFocus}{wxpanelsetfocus}