X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b5f62a0b2db198609b45dec622a018dae37008e..c266eff98c5e44012647f54f38a1e29ecabd8759:/docs/latex/wx/panel.tex diff --git a/docs/latex/wx/panel.tex b/docs/latex/wx/panel.tex index 63b331c13f..5883f63799 100644 --- a/docs/latex/wx/panel.tex +++ b/docs/latex/wx/panel.tex @@ -1,13 +1,19 @@ \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 +and 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} @@ -29,21 +35,19 @@ See also \helpref{window styles overview}{windowstyles}. By default, a panel has the same colouring as a dialog. -A panel may be loaded from a wxWindows resource file (extension {\tt wxr}). - \wxheading{See also} \helpref{wxDialog}{wxdialog} \latexignore{\rtfignore{\wxheading{Members}}} -\membersection{wxPanel::wxPanel}\label{wxpanelconstr} +\membersection{wxPanel::wxPanel}\label{wxpanelctor} \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 @@ -58,10 +62,10 @@ Constructor. \docparam{id}{An identifier for the panel. A value of -1 is taken to mean a default.} \docparam{pos}{The panel position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWindows, depending on platform.} +either the windowing system or wxWidgets, depending on platform.} \docparam{size}{The panel size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWindows, depending on platform.} +either the windowing system or wxWidgets, depending on platform.} \docparam{style}{The window style. See \helpref{wxPanel}{wxpanel}.} @@ -73,7 +77,7 @@ individual dialog boxes.} \helpref{wxPanel::Create}{wxpanelcreate} -\membersection{wxPanel::\destruct{wxPanel}} +\membersection{wxPanel::\destruct{wxPanel}}\label{wxpaneldtor} \func{}{\destruct{wxPanel}}{\void} @@ -81,21 +85,25 @@ Destructor. Deletes any child windows before deleting the physical window. \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"}} -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. -\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} @@ -130,13 +138,33 @@ propagate the notification to child windows and controls. \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 of there are child windows +in the panel. This is only rarely needed. \wxheading{See also} -\helpref{GetDefaultItem}{wxpanelgetdefaultitem} +\helpref{wxFocusEvent}{wxfocusevent} +\helpref{wxPanel::SetFocus}{wxpanelsetfocus}