]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/frame.tex
added GetForbiddenChars() and TRUE -> true (patch 757777)
[wxWidgets.git] / docs / latex / wx / frame.tex
index 0bc42220db40526d7ffbda19751f9ec5e4bf3111..6eeae2fb8bd7fc358b72f4045b397c5e5e2fb2a7 100644 (file)
@@ -24,42 +24,68 @@ application windows.
 
 \twocolwidtha{5cm}
 \begin{twocollist}\itemsep=0pt
-\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxRESIZE\_BOX \pipe wxSYSTEM\_MENU \pipe wxCAPTION}.}
+\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxRESIZE\_BORDER \pipe wxSYSTEM\_MENU \pipe wxCAPTION \pipe wxCLOSE\_BOX}.}
 \twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized). Windows only. }
 \twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the frame.}
 \twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}. Windows only.}
 \twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame.}
 \twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized. Windows only.}
 \twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame.}
-\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of other windows. Windows only.}
+\twocolitem{\windowstyle{wxCLOSE\_BOX}}{Displays a close box on the frame.}
+\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of all other windows,
+see also wxFRAME\_FLOAT\_ON\_PARENT. Windows only.}
 \twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu.}
 \twocolitem{\windowstyle{wxSIMPLE\_BORDER}}{Displays no border or decorations. GTK and Windows only.}
 \twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window.}
 \twocolitem{\windowstyle{wxFRAME\_TOOL\_WINDOW}}{Causes a frame with a small
 titlebar to be created; the frame does not appear in the taskbar under Windows.}
-\twocolitem{\windowstyle{wxFRAME\_NO\_TASKBAR}}{Creates a normal frame but if
-this frame has a parent it does not appear in the taskbar under Windows. Note
-that a frame without parent will still appear in the taskbar even with this
-style. Has no effect under other platforms.}
-\twocolitem{\windowstyle{wxFRAME\_FLOAT\_ON\_PARENT}}{Unused any longer, use
-wxFRAME\_TOOL\_WINDOW or wxFRAME\_NO\_TASKBAR instead}
+\twocolitem{\windowstyle{wxFRAME\_NO\_TASKBAR}}{Creates an otherwise normal
+frame but it does not appear in the taskbar under Windows (note that it will
+minimize to the desktop window which may seem strange to the users and thus it
+might be better to use this style only without wxMINIMIZE\_BOX style).
+Has no effect under other platforms.}
+\twocolitem{\windowstyle{wxFRAME\_FLOAT\_ON\_PARENT}}{The frame will always be
+on top of its parent (unlike wxSTAY\_ON\_TOP). A frame created with this style
+must have a non-NULL parent.}
 \twocolitem{\windowstyle{wxFRAME\_EX\_CONTEXTHELP}}{Under Windows, puts a query button on the
 caption. When pressed, Windows will go into a context-sensitive help mode and wxWindows will send
 a wxEVT\_HELP event if the user clicked on an application window. {\it Note} that this is an extended
 style and must be set by calling \helpref{SetExtraStyle}{wxwindowsetextrastyle} before Create is called (two-step construction).
-You cannot use this style together with wxMAXIMIZE\_BOX or wxMINIMIZE\_BOX.}
+You cannot use this style together with wxMAXIMIZE\_BOX or wxMINIMIZE\_BOX, so
+you should use
+{\tt wxDEFAULT\_FRAME\_STYLE \& (wxMINIMIZE\_BOX | wxMAXIMIZE\_BOX)} for the
+frames having this style (the dialogs don't have minimize nor maximize box by
+default)}
+\twocolitem{\windowstyle{wxFRAME\_SHAPED}}{Windows with this style are
+  allowed to have their shape changed with the \helpref{SetShape}{wxframesetshape} method.}
 \end{twocollist}
 
 The default frame style is for normal, resizeable frames. To create a frame
 which can not be resized by user, you may use the following combination of
-styles: {\tt wxDEFAULT\_FRAME\_STYLE \& \~ (wxRESIZE\_BORDER \pipe wxRESIZE\_BOX \pipe wxMAXIMIZE\_BOX)}.
+styles: {\tt wxDEFAULT\_FRAME\_STYLE \& (wxRESIZE\_BORDER \pipe wxRESIZE\_BOX \pipe wxMAXIMIZE\_BOX)}.
 % Note: the space after the tilde is necessary or Tex2RTF complains.
 
 See also \helpref{window styles overview}{windowstyles}.
 
+\wxheading{Default event processing}
+
+wxFrame processes the following events:
+
+\begin{twocollist}\itemsep=0pt
+\twocolitem{\helpref{wxEVT\_SIZE}{wxsizeevent}}{If the frame has exactly one
+child window, not counting the status and toolbar, this child is resized to
+take the entire frame client area. If two or more windows are present, they
+should be laid out explicitly either by manually handling wxEVT\_SIZE or using
+\helpref{sizers}{sizeroverview}}
+
+\twocolitem{\helpref{wxEVT\_MENU\_HIGHLIGHT}{wxmenuevent}}{The default
+implementation displays the \helpref{help string}{wxmenuitemgethelp} associated
+with the selected item in the first pane of the status bar, if there is one.}
+\end{twocollist}
+
 \wxheading{Remarks}
 
-An application should normally define an \helpref{OnCloseWindow}{wxwindowonclosewindow} handler for the
+An application should normally define an \helpref{wxCloseEvent}{wxcloseevent} handler for the
 frame to respond to system close events, for example so that related data and subwindows can be cleaned up.
 
 \wxheading{See also}
@@ -255,6 +281,16 @@ Returns a pointer to the status bar currently associated with the frame (if any)
 
 \helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar}
 
+\membersection{wxFrame::GetStatusBarPane}\label{wxframegetstatusbarpane}
+
+\func{int}{GetStatusBarPane}{\void}
+
+Returns the status bar pane used to display menu and toolbar help.
+
+\wxheading{See also}
+
+\helpref{wxFrame::SetStatusBarPane}{wxframesetstatusbarpane}
+
 \membersection{wxFrame::GetTitle}\label{wxframegettitle}
 
 \constfunc{wxString}{GetTitle}{\void}
@@ -276,27 +312,37 @@ Returns a pointer to the toolbar currently associated with the frame (if any).
 
 \func{void}{Iconize}{\param{bool}{ iconize}}
 
-Iconizes or restores the frame. Windows only.
+Iconizes or restores the frame.
 
 \wxheading{Parameters}
 
-\docparam{izonize}{If TRUE, iconizes the frame; if FALSE, shows and restores it.}
+\docparam{iconize}{If true, iconizes the frame; if false, shows and restores it.}
 
 \wxheading{See also}
 
 \helpref{wxFrame::IsIconized}{wxframeisiconized}, \helpref{wxFrame::Maximize}{wxframemaximize}.
 
+\membersection{wxFrame::IsFullScreen}\label{wxframeisfullscreen}
+
+\func{bool}{IsFullScreen}{\void}
+
+Returns true if the frame is in fullscreen mode.
+
+\wxheading{See also}
+
+\helpref{wxFrame::ShowFullScreen}{wxframeshowfullscreen}
+
 \membersection{wxFrame::IsIconized}\label{wxframeisiconized}
 
 \constfunc{bool}{IsIconized}{\void}
 
-Returns TRUE if the frame is iconized. Windows only.
+Returns true if the frame is iconized.
 
 \membersection{wxFrame::IsMaximized}\label{wxframeismaximized}
 
 \constfunc{bool}{IsMaximized}{\void}
 
-Returns TRUE if the frame is maximized.
+Returns true if the frame is maximized.
 
 \membersection{wxFrame::Maximize}\label{wxframemaximize}
 
@@ -306,7 +352,7 @@ Maximizes or restores the frame.
 
 \wxheading{Parameters}
 
-\docparam{maximize}{If TRUE, maximizes the frame, otherwise it restores it.}
+\docparam{maximize}{If true, maximizes the frame, otherwise it restores it.}
 
 \wxheading{Remarks}
 
@@ -316,13 +362,6 @@ This function only works under Windows.
 
 \helpref{wxFrame::Iconize}{wxframeiconize}
 
-\membersection{wxFrame::OnActivate}
-
-\func{void}{OnActivate}{\param{wxActivateEvent\&}{ event}}
-
-Called when a window is activated or deactivated (MS Windows
-only). See also \helpref{wxActivateEvent}{wxactivateevent}.
-
 \membersection{wxFrame::OnCreateStatusBar}\label{wxframeoncreatestatusbar}
 
 \func{virtual wxStatusBar*}{OnCreateStatusBar}{\param{int }{number},
@@ -386,28 +425,18 @@ implementation returns an instance of \helpref{wxToolBar}{wxtoolbar}.
 
 \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar}.
 
-\membersection{wxFrame::OnMenuCommand}\label{wxframeonmenucommand}
-
-\func{void}{OnMenuCommand}{\param{wxCommandEvent\&}{ event}}
-
-See \helpref{wxWindow::OnMenuCommand}{wxwindowonmenucommand}.
-
-\membersection{wxFrame::OnMenuHighlight}\label{wxframeonmenuhighlight}
-
-\func{void}{OnMenuHighlight}{\param{wxMenuEvent\&}{ event}}
+\membersection{wxFrame::SendSizeEvent}\label{wxframesendsizeevent}
 
-See \helpref{wxWindow::OnMenuHighlight}{wxwindowonmenuhighlight}.
+\func{void}{SendSizeEvent}{\void}
 
-\membersection{wxFrame::OnSize}\label{wxframeonsize}
+This function sends a dummy \helpref{size event}{wxsizeevent} to the frame
+forcing it to reevaluate its children positions. It is sometimes useful to call
+this function after adding or deleting a children after the frame creation or
+if a child size changes.
 
-\func{void}{OnSize}{\param{wxSizeEvent\& }{event}}
-
-See \helpref{wxWindow::OnSize}{wxwindowonsize}.
-
-The default {\bf wxFrame::OnSize} implementation looks for a single subwindow,
-and if one is found, resizes it to fit
-inside the frame. Override this member if more complex behaviour
-is required (for example, if there are several subwindows).
+Note that if the frame is using either sizers or constraints for the children
+layout, it is enough to call \helpref{Layout()}{wxwindowlayout} directly and
+this function should not be used in this case.
 
 \membersection{wxFrame::SetIcon}\label{wxframeseticon}
 
@@ -425,7 +454,21 @@ The frame takes a `copy' of {\it icon}, but since it uses reference
 counting, the copy is very quick. It is safe to delete {\it icon} after
 calling this function.
 
-% VZ: we don't have all this any more (18.08.00) 
+See also \helpref{wxIcon}{wxicon}.
+
+\membersection{wxFrame::SetIcons}\label{wxframeseticons}
+
+\func{void}{SetIcons}{\param{const wxIconBundle\& }{icons}}
+
+Sets the icons for this frame.
+
+\wxheading{Parameters}
+
+\docparam{icons}{The icons to associate with this frame.}
+
+See also \helpref{wxIconBundle}{wxiconbundle}.
+
+% VZ: we don't have all this any more (18.08.00)
 %
 %Under Windows, instead of using {\bf SetIcon}, you can add the
 %following lines to your MS Windows resource file:
@@ -452,8 +495,6 @@ calling this function.
 %You can replace std.ico, mdi.ico and child.ico with your own defaults
 %for all your wxWindows application. Currently they show the same icon.
 
-See also \helpref{wxIcon}{wxicon}.
-
 \membersection{wxFrame::SetMenuBar}\label{wxframesetmenubar}
 
 \func{void}{SetMenuBar}{\param{wxMenuBar* }{menuBar}}
@@ -480,6 +521,17 @@ Note that it is not possible to call this function twice for the same frame obje
 
 \helpref{wxFrame::GetMenuBar}{wxframegetmenubar}, \helpref{wxMenuBar}{wxmenubar}, \helpref{wxMenu}{wxmenu}.
 
+\membersection{wxFrame::SetShape}\label{wxframesetshape}
+
+\func{bool}{SetShape}{\param{const wxRegion\&}{ region}}
+
+If the platform supports it, sets the shape of the window to that
+depicted by \it{region}.  The system will not display or
+respond to any mouse event for the pixels that lie outside of the
+region.  To reset the window to the normal rectangular shape simply
+call \it{SetShape} again with an empty region.  Returns TRUE if the
+operation is successful.
+
 \membersection{wxFrame::SetStatusBar}\label{wxframesetstatusbar}
 
 \func{void}{SetStatusBar}{\param{wxStatusBar*}{ statusBar}}
@@ -491,6 +543,13 @@ Associates a status bar with the frame.
 \helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar},\rtfsp
 \helpref{wxFrame::GetStatusBar}{wxframegetstatusbar}
 
+\membersection{wxFrame::SetStatusBarPane}\label{wxframesetstatusbarpane}
+
+\func{void}{SetStatusBarPane}{\param{int}{ n}}
+
+Set the status bar pane used to display menu and toolbar help.
+Using -1 disables help display.
+
 \membersection{wxFrame::SetStatusText}\label{wxframesetstatustext}
 
 \func{virtual void}{SetStatusText}{\param{const wxString\& }{ text}, \param{int}{ number = 0}}
@@ -535,6 +594,8 @@ variable fields.
 \pythonnote{Only a single parameter is required, a Python list of
 integers.}
 
+\perlnote{In wxPerl this method takes the field widths as parameters.}
+
 \membersection{wxFrame::SetToolBar}\label{wxframesettoolbar}
 
 \func{void}{SetToolBar}{\param{wxToolBar*}{ toolBar}}
@@ -564,9 +625,10 @@ Sets the frame title.
 
 \func{bool}{ShowFullScreen}{\param{bool}{ show}, \param{long}{ style = wxFULLSCREEN\_ALL}}
 
-Passing TRUE to {\it shows} shows the frame full-screen, and passing FALSE restores the frame
-again. {\it style} is a bit list containing some or all of the following values, which
-indicate what elements of the frame to hide in full-screen mode:
+Depending on the value of {\it show} parameter the frame is either shown full
+screen or restored to its normal state. {\it style} is a bit list containing
+some or all of the following values, which indicate what elements of the frame
+to hide in full-screen mode:
 
 \begin{itemize}\itemsep=0pt
 \item wxFULLSCREEN\_NOMENUBAR
@@ -577,5 +639,12 @@ indicate what elements of the frame to hide in full-screen mode:
 \item wxFULLSCREEN\_ALL (all of the above)
 \end{itemize}
 
-This function only works on Windows and has not been tested with MDI frames.
+This function has not been tested with MDI frames.
+
+Note that showing a frame full screen also actually
+\helpref{Show()s}{wxwindowshow} if it hadn't been shown yet.
+
+\wxheading{See also}
+
+\helpref{wxFrame::IsFullScreen}{wxframeisfullscreen}