]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/frame.tex
don't call wxYield() from EnsureVisible(), this is too dangerous - and unnecessary...
[wxWidgets.git] / docs / latex / wx / frame.tex
index 52c5be1dfb13b59fd6695aa7d80a89a510764f6a..d4bd5a33a1f700ab251c09eeeee9fc94fa2499f8 100644 (file)
@@ -1,12 +1,14 @@
 \section{\class{wxFrame}}\label{wxframe}
 
-A frame is a window whose size and position can (usually) be changed by the user. It usually has
-thick borders and a title bar, and can optionally contain a menu bar, toolbar and
-status bar. A frame can contain any window that is not a frame or dialog.
+A frame is a window whose size and position can (usually) be changed by the
+user. It usually has thick borders and a title bar, and can optionally contain
+a menu bar, toolbar and status bar. A frame can contain any window that is not
+a frame or dialog.
 
-A frame that has a status bar and toolbar created via the CreateStatusBar/CreateToolBar functions
-manages these windows, and adjusts the value returned by GetClientSize to reflect
-the remaining size available to application windows.
+A frame that has a status bar and toolbar created via the
+CreateStatusBar/CreateToolBar functions manages these windows, and adjusts the
+value returned by GetClientSize to reflect the remaining size available to
+application windows.
 
 \wxheading{Derived from}
 
@@ -22,24 +24,38 @@ the remaining size available to application windows.
 
 \twocolwidtha{5cm}
 \begin{twocollist}\itemsep=0pt
-\twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized) (Windows only).}
+\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxRESIZE\_BOX \pipe wxSYSTEM\_MENU \pipe wxCAPTION}.}
+\twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized). Windows only. }
 \twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the frame.}
-\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxTHICK\_FRAME \pipe wxSYSTEM\_MENU \pipe wxCAPTION}.}
-\twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}.}
-\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame (Windows and Motif only).}
-\twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized (Windows only).}
-\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame (Windows and Motif only).}
-\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of other windows (Windows only).}
-\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu (Windows and Motif only).}
-\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Displays a thick frame around the window (Windows and Motif only).}
-\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window (Motif only).}
+\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{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\_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.}
 \end{twocollist}
 
-See also \helpref{window styles overview}{windowstyles}. Currently the GTK port of wxWindows
-ignores all the window styles listed above as there is no standard way (yet) to inform the
-window manager about such options. Therefore, the only relevant window style flag which
-the GTK port recognizes is \windowstyle{wxSIMPLE\_BORDER} which brings up a frame without
-any window decorations. This can be used for a splash screen or specialized tooltip etc.
+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)}.
+% Note: the space after the tilde is necessary or Tex2RTF complains.
+
+See also \helpref{window styles overview}{windowstyles}.
 
 \wxheading{Remarks}
 
@@ -212,6 +228,13 @@ reflect the available space for application windows.
 \helpref{wxFrame::SetToolBar}{wxframesettoolbar},\rtfsp
 \helpref{wxFrame::GetToolBar}{wxframegettoolbar}
 
+\membersection{wxFrame::GetClientAreaOrigin}\label{wxframegetclientareaorigin}
+
+\constfunc{wxPoint}{GetClientAreaOrigin}{\void}
+
+Returns the origin of the frame client area (in client coordinates). It may be
+different from (0, 0) if the frame has a toolbar.
+
 \membersection{wxFrame::GetMenuBar}\label{wxframegetmenubar}
 
 \constfunc{wxMenuBar*}{GetMenuBar}{\void}
@@ -224,7 +247,7 @@ Returns a pointer to the menubar currently associated with the frame (if any).
 
 \membersection{wxFrame::GetStatusBar}\label{wxframegetstatusbar}
 
-\func{wxStatusBar*}{GetStatusBar}{\void}
+\constfunc{wxStatusBar*}{GetStatusBar}{\void}
 
 Returns a pointer to the status bar currently associated with the frame (if any).
 
@@ -234,14 +257,13 @@ Returns a pointer to the status bar currently associated with the frame (if any)
 
 \membersection{wxFrame::GetTitle}\label{wxframegettitle}
 
-\func{wxString\&}{GetTitle}{\void}
+\constfunc{wxString}{GetTitle}{\void}
 
-Gets a temporary pointer to the frame title. See
-\helpref{wxFrame::SetTitle}{wxframesettitle}.
+Gets a string containing the frame title. See \helpref{wxFrame::SetTitle}{wxframesettitle}.
 
 \membersection{wxFrame::GetToolBar}\label{wxframegettoolbar}
 
-\func{wxToolBar*}{GetToolBar}{\void}
+\constfunc{wxToolBar*}{GetToolBar}{\void}
 
 Returns a pointer to the toolbar currently associated with the frame (if any).
 
@@ -252,7 +274,7 @@ Returns a pointer to the toolbar currently associated with the frame (if any).
 
 \membersection{wxFrame::Iconize}\label{wxframeiconize}
 
-\func{void}{Iconize}{\param{const bool}{ iconize}}
+\func{void}{Iconize}{\param{bool}{ iconize}}
 
 Iconizes or restores the frame.
 
@@ -264,6 +286,16 @@ Iconizes or restores the frame.
 
 \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}
@@ -278,13 +310,13 @@ Returns TRUE if the frame is maximized.
 
 \membersection{wxFrame::Maximize}\label{wxframemaximize}
 
-\func{void}{Maximize}{\param{const bool }{maximize}}
+\func{void}{Maximize}{\param{bool }{maximize}}
 
 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}
 
@@ -303,7 +335,7 @@ only). See also \helpref{wxActivateEvent}{wxactivateevent}.
 
 \membersection{wxFrame::OnCreateStatusBar}\label{wxframeoncreatestatusbar}
 
-\func{virtual wxStatusBar*}{OnCreateStatusBar}{\param{int }{number}
+\func{virtual wxStatusBar*}{OnCreateStatusBar}{\param{int }{number},
  \param{long}{ style},
  \param{wxWindowID}{ id}, \param{const wxString\&}{ name}}
 
@@ -403,36 +435,32 @@ 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.
 
-Under Windows, instead of using {\bf SetIcon}, you can add the
-following lines to your MS Windows resource file:
-
-\begin{verbatim}
-wxSTD_MDIPARENTFRAME ICON icon1.ico
-wxSTD_MDICHILDFRAME  ICON icon2.ico
-wxSTD_FRAME          ICON icon3.ico
-\end{verbatim}
-
-where icon1.ico will be used for the MDI parent frame, icon2.ico
-will be used for MDI child frames, and icon3.ico will be used for
-non-MDI frames.
-
-If these icons are not supplied, and {\bf SetIcon} is not called either,
-then the following defaults apply if you have included wx.rc.
-
-\begin{verbatim}
-wxDEFAULT_FRAME               ICON std.ico
-wxDEFAULT_MDIPARENTFRAME      ICON mdi.ico
-wxDEFAULT_MDICHILDFRAME       ICON child.ico
-\end{verbatim}
-
-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.
-
-{\it Note:} a wxWindows application linked with subsystem equal to 4.0
-(i.e. marked as a Windows 95 application) doesn't respond properly
-to wxFrame::SetIcon. To work around this until a solution is found,
-mark your program as a 3.5 application. This will also ensure
-that Windows provides small icons for the application automatically.
+% 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:
+%
+%\begin{verbatim}
+%wxSTD_MDIPARENTFRAME ICON icon1.ico
+%wxSTD_MDICHILDFRAME  ICON icon2.ico
+%wxSTD_FRAME          ICON icon3.ico
+%\end{verbatim}
+%
+%where icon1.ico will be used for the MDI parent frame, icon2.ico
+%will be used for MDI child frames, and icon3.ico will be used for
+%non-MDI frames.
+%
+%If these icons are not supplied, and {\bf SetIcon} is not called either,
+%then the following defaults apply if you have included wx.rc.
+%
+%\begin{verbatim}
+%wxDEFAULT_FRAME               ICON std.ico
+%wxDEFAULT_MDIPARENTFRAME      ICON mdi.ico
+%wxDEFAULT_MDICHILDFRAME       ICON child.ico
+%\end{verbatim}
+%
+%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}.
 
@@ -511,9 +539,14 @@ field must be -1. You should delete this array after calling {\bf SetStatusWidth
 \wxheading{Remarks}
 
 The widths of the variable fields are calculated from the total width of all fields,
-minus the sum of widths of the non-variable fields, divided by the number of 
+minus the sum of widths of the non-variable fields, divided by the number of
 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}}
@@ -539,3 +572,26 @@ Sets the frame title.
 
 \helpref{wxFrame::GetTitle}{wxframegettitle}
 
+\membersection{wxFrame::ShowFullScreen}\label{wxframeshowfullscreen}
+
+\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:
+
+\begin{itemize}\itemsep=0pt
+\item wxFULLSCREEN\_NOMENUBAR
+\item wxFULLSCREEN\_NOTOOLBAR
+\item wxFULLSCREEN\_NOSTATUSBAR
+\item wxFULLSCREEN\_NOBORDER
+\item wxFULLSCREEN\_NOCAPTION
+\item wxFULLSCREEN\_ALL (all of the above)
+\end{itemize}
+
+This function has not been tested with MDI frames.
+
+\wxheading{See also}
+
+\helpref{wxFrame::IsFullScreen}{wxframeisfullscreen}
+