X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a660d684eda27638bca0384b2058911a31c8e845..5a20d2ced0a0779b5d8b1cc8064f8404b2727e92:/docs/latex/wx/frame.tex diff --git a/docs/latex/wx/frame.tex b/docs/latex/wx/frame.tex index 61cad1ee36..d145636166 100644 --- a/docs/latex/wx/frame.tex +++ b/docs/latex/wx/frame.tex @@ -1,37 +1,95 @@ \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. \wxheading{Derived from} +\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ \helpref{wxWindow}{wxwindow}\\ \helpref{wxEvtHandler}{wxevthandler}\\ \helpref{wxObject}{wxobject} +\wxheading{Include files} + + + \wxheading{Window styles} \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\_BORDER \pipe wxSYSTEM\_MENU \pipe wxCAPTION \pipe wxCLOSE\_BOX \pipe wxCLIP\_CHILDREN}.} +\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{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.} +\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu.} +\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 or GTK+.} +\twocolitem{\windowstyle{wxFRAME\_NO\_TASKBAR}}{Creates an otherwise normal +frame but it does not appear in the taskbar under Windows or GTK+ (note that it +will minimize to the desktop window under Windows which may seem strange to the +users and thus it might be better to use this style only without +wxMINIMIZE\_BOX style). In wxGTK, the flag is respected only if GTK+ is at +least version 2.2 and the window manager supports +\urlref{\_NET\_WM\_STATE\_SKIP\_TASKBAR}{http://freedesktop.org/Standards/wm-spec/1.3/ar01s05.html} hint. +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 wxWidgets 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, so +you should use\rtfsp +{\tt wxDEFAULT\_FRAME\_STYLE \& ~ (wxMINIMIZE\_BOX | wxMAXIMIZE\_BOX)} for the +frames having this style (the dialogs don't have a minimize or a maximize box by +default)} +\twocolitem{\windowstyle{wxFRAME\_SHAPED}}{Windows with this style are + allowed to have their shape changed with the \helpref{SetShape}{wxtoplevelwindowsetshape} method.} +\twocolitem{\windowstyle{wxFRAME\_EX\_METAL}}{On Mac OS X, frames with this style will be shown with a metallic look. This is an {\it extra} style.} \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)}. +% 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} @@ -41,13 +99,13 @@ frame to respond to system close events, for example so that related data and su \latexignore{\rtfignore{\wxheading{Members}}} -\membersection{wxFrame::wxFrame}\label{wxframeconstr} +\membersection{wxFrame::wxFrame}\label{wxframector} \func{}{wxFrame}{\void} Default constructor. -\func{}{wxFrame}{\param{wxWindow* }{parent}, \param{const wxWindowID }{id},\rtfsp +\func{}{wxFrame}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp \param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp \param{const wxString\& }{name = ``frame"}} @@ -64,10 +122,10 @@ always be displayed on top of the parent window on Windows.} \docparam{title}{The caption to be displayed on the frame's title bar.} \docparam{pos}{The window 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 window 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{wxFrame}{wxframe}.} @@ -84,7 +142,7 @@ For Motif, MWM (the Motif Window Manager) should be running for any window style \helpref{wxFrame::Create}{wxframecreate} -\membersection{wxFrame::\destruct{wxFrame}} +\membersection{wxFrame::\destruct{wxFrame}}\label{wxframedtor} \func{void}{\destruct{wxFrame}}{\void} @@ -92,7 +150,7 @@ Destructor. Destroys all child windows and menu bar if present. \membersection{wxFrame::Centre}\label{wxframecentre} -\func{void}{Centre}{\param{const int}{ direction = wxBOTH}} +\func{void}{Centre}{\param{int}{ direction = wxBOTH}} Centres the frame on the display. @@ -100,29 +158,21 @@ Centres the frame on the display. \docparam{direction}{The parameter may be {\tt wxHORIZONTAL}, {\tt wxVERTICAL} or {\tt wxBOTH}.} -\membersection{wxFrame::Command}\label{wxframecommand} - -\func{void}{Command}{\param{int }{id}} - -Simulate a menu command. - -\wxheading{Parameters} - -\docparam{id}{The identifier for a menu item.} - \membersection{wxFrame::Create}\label{wxframecreate} -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{const wxWindowID }{id},\rtfsp +\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp \param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp \param{const wxString\& }{name = ``frame"}} -Used in two-step frame construction. See \helpref{wxFrame::wxFrame}{wxframeconstr}\rtfsp +Used in two-step frame construction. See \helpref{wxFrame::wxFrame}{wxframector}\rtfsp for further details. \membersection{wxFrame::CreateStatusBar}\label{wxframecreatestatusbar} -\func{virtual bool}{CreateStatusBar}{\param{const int}{ number = 1}} +\func{virtual wxStatusBar*}{CreateStatusBar}{\param{int}{ number = 1}, + \param{long}{ style = 0}, + \param{wxWindowID}{ id = -1}, \param{const wxString\&}{ name = "statusBar"}} Creates a status bar at the bottom of the frame. @@ -131,9 +181,17 @@ Creates a status bar at the bottom of the frame. \docparam{number}{The number of fields to create. Specify a value greater than 1 to create a multi-field status bar.} +\docparam{style}{The status bar style. See \helpref{wxStatusBar}{wxstatusbar} for a list +of valid styles.} + +\docparam{id}{The status bar window identifier. If -1, an identifier will be chosen by +wxWidgets.} + +\docparam{name}{The status bar window name.} + \wxheading{Return value} -TRUE if the status bar was created successfully. +A pointer to the status bar if it was created successfully, NULL otherwise. \wxheading{Remarks} @@ -151,125 +209,103 @@ Note that you can put controls and other windows on the status bar if you wish. \helpref{wxFrame::OnCreateStatusBar}{wxframeoncreatestatusbar},\rtfsp \helpref{wxFrame::GetStatusBar}{wxframegetstatusbar} -\membersection{wxFrame::GetMenuBar}\label{wxframegetmenubar} +\membersection{wxFrame::CreateToolBar}\label{wxframecreatetoolbar} -\constfunc{wxMenuBar*}{GetMenuBar}{\void} +\func{virtual wxToolBar*}{CreateToolBar}{\param{long}{ style = wxNO\_BORDER \pipe wxTB\_HORIZONTAL}, + \param{wxWindowID}{ id = -1}, \param{const wxString\&}{ name = "toolBar"}} -Returns a pointer to the menubar currently associated with the frame (if any). - -\wxheading{See also} - -\helpref{wxFrame::SetMenuBar}{wxframesetmenubar}, \helpref{wxMenuBar}{wxmenubar}, \helpref{wxMenu}{wxmenu} - -\membersection{wxFrame::GetStatusBar}\label{wxframegetstatusbar} - -\func{wxStatusBar*}{GetStatusBar}{\void} - -Returns a pointer to the status bar currently associated with the frame (if any). - -\wxheading{See also} - -\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar} - -\membersection{wxFrame::GetTitle}\label{wxframegettitle} - -\func{wxString\&}{GetTitle}{\void} - -Gets a temporary pointer to the frame title. See -\helpref{wxFrame::SetTitle}{wxframesettitle}. - -\membersection{wxFrame::Iconize}\label{wxframeiconize} - -\func{void}{Iconize}{\param{const bool}{ iconize}} - -Iconizes or restores the frame. +Creates a toolbar at the top or left of the frame. \wxheading{Parameters} -\docparam{izonize}{If TRUE, iconizes the frame; if FALSE, shows and restores it.} - -\wxheading{See also} - -\helpref{wxFrame::IsIconized}{wxframeisiconized}, \helpref{wxFrame::Maximize}{wxframemaximize}. +\docparam{style}{The toolbar style. See \helpref{wxToolBar}{wxtoolbar} for a list +of valid styles.} -\membersection{wxFrame::IsIconized}\label{wxframeisiconized} +\docparam{id}{The toolbar window identifier. If -1, an identifier will be chosen by +wxWidgets.} -\func{bool}{IsIconized}{\void} +\docparam{name}{The toolbar window name.} -Returns TRUE if the frame is iconized. +\wxheading{Return value} -\membersection{wxFrame::LoadAccelerators}\label{wxframeloadaccelerators} +A pointer to the toolbar if it was created successfully, NULL otherwise. -\func{void}{LoadAccelerators}{\param{const wxString\& }{table}} +\wxheading{Remarks} -Loads a keyboard accelerator table for this frame. +By default, the toolbar is an instance of wxToolBar (which is defined to be +a suitable toolbar class on each platform, such as wxToolBar95). To use a different class, +override \helpref{wxFrame::OnCreateToolBar}{wxframeoncreatetoolbar}. -\wxheading{Parameters} +When a toolbar has been created with this function, or made known to the frame +with \helpref{wxFrame::SetToolBar}{wxframesettoolbar}, the frame will manage the toolbar +position and adjust the return value from \helpref{wxWindow::GetClientSize}{wxwindowgetclientsize} to +reflect the available space for application windows. -\docparam{table}{Accelerator table to load.} +Under Pocket PC, you should {\it always} use this function for creating the toolbar +to be managed by the frame, so that wxWidgets can use a combined +menubar and toolbar. Where you manage your own toolbars, create a wxToolBar +as usual. -\wxheading{Return value} +\wxheading{See also} -TRUE if the operation was successful, FALSE otherwise. +\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar},\rtfsp +\helpref{wxFrame::OnCreateToolBar}{wxframeoncreatetoolbar},\rtfsp +\helpref{wxFrame::SetToolBar}{wxframesettoolbar},\rtfsp +\helpref{wxFrame::GetToolBar}{wxframegettoolbar} -\wxheading{Remarks} +\membersection{wxFrame::GetClientAreaOrigin}\label{wxframegetclientareaorigin} -Accelerator tables map keystrokes onto control and menu identifiers, so the -programmer does not have to explicitly program this correspondence. +\constfunc{wxPoint}{GetClientAreaOrigin}{\void} -See the hello demo ({\tt hello.cpp} and {\tt hello.rc}) for -an example of accelerator usage. This is a fragment from {\tt hello.rc}: +Returns the origin of the frame client area (in client coordinates). It may be +different from (0, 0) if the frame has a toolbar. -\begin{verbatim} -#define HELLO_LOAD_FILE 111 +\membersection{wxFrame::GetMenuBar}\label{wxframegetmenubar} -menus_accel ACCELERATORS -{ +\constfunc{wxMenuBar*}{GetMenuBar}{\void} -"^L", HELLO_LOAD_FILE +Returns a pointer to the menubar currently associated with the frame (if any). -} -\end{verbatim} +\wxheading{See also} -This function only works under Windows. +\helpref{wxFrame::SetMenuBar}{wxframesetmenubar}, \helpref{wxMenuBar}{wxmenubar}, \helpref{wxMenu}{wxmenu} -% huh? If you call LoadAccelerators, you need to override wxFrame::OnActivate to do nothing. +\membersection{wxFrame::GetStatusBar}\label{wxframegetstatusbar} -\membersection{wxFrame::Maximize}\label{wxframemaximize} +\constfunc{wxStatusBar*}{GetStatusBar}{\void} -\func{void}{Maximize}{\param{const bool }{maximize}} +Returns a pointer to the status bar currently associated with the frame (if any). -Maximizes or restores the frame. +\wxheading{See also} -\wxheading{Parameters} +\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar} -\docparam{maximize}{If TRUE, maximizes the frame, otherwise it restores it}. +\membersection{wxFrame::GetStatusBarPane}\label{wxframegetstatusbarpane} -\wxheading{Remarks} +\func{int}{GetStatusBarPane}{\void} -This function only works under Windows. +Returns the status bar pane used to display menu and toolbar help. \wxheading{See also} -\helpref{wxFrame::Iconize}{wxframeiconize} +\helpref{wxFrame::SetStatusBarPane}{wxframesetstatusbarpane} -\membersection{wxFrame::OnActivate} +\membersection{wxFrame::GetToolBar}\label{wxframegettoolbar} -\func{void}{OnActivate}{\param{bool}{ active}} +\constfunc{wxToolBar*}{GetToolBar}{\void} -Called when a window is activated or deactivated (MS Windows -only). If the window is being activated, {\it active} is TRUE, else it -is FALSE. +Returns a pointer to the toolbar currently associated with the frame (if any). -If you call wxFrame::LoadAccelerators, you need to override this function e.g. +\wxheading{See also} -\begin{verbatim} - void OnActivate(bool) {}; -\end{verbatim} +\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar},\rtfsp +\helpref{wxFrame::SetToolBar}{wxframesettoolbar} \membersection{wxFrame::OnCreateStatusBar}\label{wxframeoncreatestatusbar} -\func{virtual wxStatusBar*}{OnCreateStatusBar}{\param{const int }{number}} +\func{virtual wxStatusBar*}{OnCreateStatusBar}{\param{int }{number}, + \param{long}{ style}, + \param{wxWindowID}{ id}, \param{const wxString\&}{ name}} Virtual function called when a status bar is requested by \helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}. @@ -277,6 +313,14 @@ Virtual function called when a status bar is requested by \helpref{wxFrame::Crea \docparam{number}{The number of fields to create.} +\docparam{style}{The window style. See \helpref{wxStatusBar}{wxstatusbar} for a list +of valid styles.} + +\docparam{id}{The window identifier. If -1, an identifier will be chosen by +wxWidgets.} + +\docparam{name}{The window name.} + \wxheading{Return value} A status bar object. @@ -290,77 +334,87 @@ implementation returns an instance of \helpref{wxStatusBar}{wxstatusbar}. \helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar}. -\membersection{wxFrame::OnMenuCommand}\label{wxframeonmenucommand} - -\func{void}{OnMenuCommand}{\param{wxCommandEvent\&}{ event}} - -See \helpref{wxWindow::OnMenuCommand}{wxwindowonmenucommand}. +\membersection{wxFrame::OnCreateToolBar}\label{wxframeoncreatetoolbar} -\membersection{wxFrame::OnMenuHighlight}\label{wxframeonmenuhighlight} +\func{virtual wxToolBar*}{OnCreateToolBar}{\param{long}{ style}, + \param{wxWindowID}{ id}, \param{const wxString\&}{ name}} -\func{void}{OnMenuHighlight}{\param{wxMenuEvent\&}{ event}} +Virtual function called when a toolbar is requested by \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}. -See \helpref{wxWindow::OnMenuHighlight}{wxwindowonmenuhighlight}. - -\membersection{wxFrame::OnSize}\label{wxframeonsize} - -\func{void}{OnSize}{\param{wxSizeEvent\& }{event}} +\wxheading{Parameters} -See \helpref{wxWindow::OnSize}{wxwindowonsize}. +\docparam{style}{The toolbar style. See \helpref{wxToolBar}{wxtoolbar} for a list +of valid styles.} -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). +\docparam{id}{The toolbar window identifier. If -1, an identifier will be chosen by +wxWidgets.} -\membersection{wxFrame::SetIcon}\label{wxframeseticon} +\docparam{name}{The toolbar window name.} -\func{void}{SetIcon}{\param{const wxIcon\& }{icon}} +\wxheading{Return value} -Sets the icon for this frame. +A toolbar object. -\wxheading{Parameters} +\wxheading{Remarks} -\docparam{icon}{The icon to associate with this frame.} +An application can override this function to return a different kind of toolbar. The default +implementation returns an instance of \helpref{wxToolBar}{wxtoolbar}. -\wxheading{Remarks} +\wxheading{See also} -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. +\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar}. -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} +\membersection{wxFrame::ProcessCommand}\label{wxframeprocesscommand} -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. +\func{void}{ProcessCommand}{\param{int }{id}} -If these icons are not supplied, and {\bf SetIcon} is not called either, -then the following defaults apply if you have included wx.rc. +Simulate a menu command. -\begin{verbatim} -wxDEFAULT_FRAME ICON std.ico -wxDEFAULT_MDIPARENTFRAME ICON mdi.ico -wxDEFAULT_MDICHILDFRAME ICON child.ico -\end{verbatim} +\wxheading{Parameters} -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. +\docparam{id}{The identifier for a menu item.} -{\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. -See also \helpref{wxIcon}{wxicon}. +\membersection{wxFrame::SendSizeEvent}\label{wxframesendsizeevent} + +\func{void}{SendSizeEvent}{\void} + +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. + +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. + +% 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 wxWidgets application. Currently they show the same icon. \membersection{wxFrame::SetMenuBar}\label{wxframesetmenubar} @@ -379,18 +433,36 @@ menu bar and its menus will be destroyed also, so do not delete the menu bar explicitly (except by resetting the frame's menu bar to another frame or NULL). -Under Windows, a call to \helpref{wxFrame::OnSize}{wxframeonsize} is generated, so be sure to initialize +Under Windows, a size event is generated, so be sure to initialize data members properly before calling {\bf SetMenuBar}. -Note that it is not possible to call this function twice for the same frame object. +Note that on some platforms, it is not possible to call this function twice for the same frame object. \wxheading{See also} \helpref{wxFrame::GetMenuBar}{wxframegetmenubar}, \helpref{wxMenuBar}{wxmenubar}, \helpref{wxMenu}{wxmenu}. +\membersection{wxFrame::SetStatusBar}\label{wxframesetstatusbar} + +\func{void}{SetStatusBar}{\param{wxStatusBar*}{ statusBar}} + +Associates a status bar with the frame. + +\wxheading{See also} + +\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{const int}{ number = 0}} +\func{virtual void}{SetStatusText}{\param{const wxString\& }{ text}, \param{int}{ number = 0}} Sets the status bar text and redraws the status bar. @@ -410,13 +482,13 @@ Use an empty string to clear the status bar. \membersection{wxFrame::SetStatusWidths}\label{wxframesetstatuswidths} -\func{virtual void}{SetStatusWidths}{\param{const int}{ n}, \param{const int *}{widths}} +\func{virtual void}{SetStatusWidths}{\param{int}{ n}, \param{int *}{widths}} Sets the widths of the fields in the status bar. \wxheading{Parameters} -\wxheading{n}{The number of fields in the status bar. It must be the +\docparam{n}{The number of fields in the status bar. It must be the same used in \helpref{CreateStatusBar}{wxframecreatestatusbar}.} \docparam{widths}{Must contain an array of {\it n} integers, each of which is a status field width @@ -426,20 +498,22 @@ 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. -\membersection{wxFrame::SetTitle}\label{wxframesettitle} +\pythonnote{Only a single parameter is required, a Python list of +integers.} -\func{virtual void}{SetTitle}{\param{const wxString\& }{ title}} +\perlnote{In wxPerl this method takes the field widths as parameters.} -Sets the frame title. +\membersection{wxFrame::SetToolBar}\label{wxframesettoolbar} -\wxheading{Parameters} +\func{void}{SetToolBar}{\param{wxToolBar*}{ toolBar}} -\docparam{title}{The frame title.} +Associates a toolbar with the frame. \wxheading{See also} -\helpref{wxFrame::GetTitle}{wxframegettitle} +\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar},\rtfsp +\helpref{wxFrame::GetToolBar}{wxframegettoolbar}