added and documented SetEscapeId()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35689 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2005-09-25 20:17:01 +00:00
parent 17a1ebd101
commit c6ece59558
4 changed files with 61 additions and 10 deletions

View File

@ -9,6 +9,10 @@ All:
- wxLaunchDefaultBrowser() now supports wxBROWSER_NEW_WINDOW flag
All (GUI):
- added wxDialog::SetEscapeId()
wxMSW:
- wxFileDialog respects absence of wxCHANGE_DIR flag under NT (Brad Anderson)

View File

@ -97,6 +97,7 @@ See also \helpref{Generic window styles}{windowstyles}.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxDialog::wxDialog}\label{wxdialogctor}
\func{}{wxDialog}{\void}
@ -136,12 +137,14 @@ individual dialog boxes.}
\helpref{wxDialog::Create}{wxdialogcreate}
\membersection{wxDialog::\destruct{wxDialog}}\label{wxdialogdtor}
\func{}{\destruct{wxDialog}}{\void}
Destructor. Deletes any child windows before deleting the physical window.
\membersection{wxDialog::Centre}\label{wxdialogcentre}
\func{void}{Centre}{\param{int}{ direction = wxBOTH}}
@ -152,6 +155,7 @@ Centres the dialog box on the display.
\docparam{direction}{May be {\tt wxHORIZONTAL}, {\tt wxVERTICAL} or {\tt wxBOTH}.}
\membersection{wxDialog::Create}\label{wxdialogcreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp
@ -164,6 +168,7 @@ Centres the dialog box on the display.
Used for two-step dialog box construction. See \helpref{wxDialog::wxDialog}{wxdialogctor}\rtfsp
for details.
\membersection{wxDialog::CreateButtonSizer}\label{wxdialogcreatebuttonsizer}
\func{wxSizer*}{CreateButtonSizer}{\param{long}{ flags}}
@ -175,6 +180,7 @@ The sizer lays out the buttons in a manner appropriate to the platform.
This function simply calls \helpref{CreateStdDialogButtonSizer}{wxdialogcreatestddialogbuttonsizer}.
\membersection{wxDialog::CreateStdDialogButtonSizer}\label{wxdialogcreatestddialogbuttonsizer}
\func{wxStdDialogButtonSizer*}{CreateStdDialogButtonSizer}{\param{long}{ flags}}
@ -184,6 +190,7 @@ of the following flags: wxOK, wxCANCEL, wxYES, wxNO, wxHELP, wxNO\_DEFAULT.
The sizer lays out the buttons in a manner appropriate to the platform.
\membersection{wxDialog::DoOK}\label{wxdialogdook}
\func{virtual bool}{DoOK}{\void}
@ -193,6 +200,7 @@ A command event for the identifier returned by GetAffirmativeId is sent by
default. You can override this function. If the function returns false, wxWidgets
will call Close() for the dialog.
\membersection{wxDialog::EndModal}\label{wxdialogendmodal}
\func{void}{EndModal}{\param{int }{retCode}}
@ -210,6 +218,7 @@ invocation.
\helpref{wxDialog::GetReturnCode}{wxdialoggetreturncode},\rtfsp
\helpref{wxDialog::SetReturnCode}{wxdialogsetreturncode}
\membersection{wxDialog::GetAffirmativeId}\label{wxdialoggetaffirmativeid}
\constfunc{int}{GetAffirmativeId}{\void}
@ -220,6 +229,19 @@ Gets the identifier to be used when the user presses an OK button in a PocketPC
\helpref{wxDialog::SetAffirmativeId}{wxdialogsetaffirmativeid}
\membersection{wxDialog::GetEscapeId}\label{wxdialoggetescapeid}
\constfunc{int}{GetEscapeId}{\void}
Gets the identifier of the button to map presses of \texttt{\textsc{ESC}}
button to.
\wxheading{See also}
\helpref{wxDialog::SetEscapeId}{wxdialogsetescapeid}
\membersection{wxDialog::GetReturnCode}\label{wxdialoggetreturncode}
\func{int}{GetReturnCode}{\void}
@ -236,12 +258,14 @@ a code to the application.
\helpref{wxDialog::SetReturnCode}{wxdialogsetreturncode}, \helpref{wxDialog::ShowModal}{wxdialogshowmodal},\rtfsp
\helpref{wxDialog::EndModal}{wxdialogendmodal}
\membersection{wxDialog::GetTitle}\label{wxdialoggettitle}
\constfunc{wxString}{GetTitle}{\void}
Returns the title of the dialog box.
\membersection{wxDialog::GetToolBar}\label{wxdialoggettoolbar}
\constfunc{wxToolBar*}{GetToolBar}{\void}
@ -252,6 +276,7 @@ arbitrary controls are not currently supported.
This function is not available on any other platform.
\membersection{wxDialog::Iconize}\label{wxdialogiconized}
\func{void}{Iconize}{\param{const bool}{ iconize}}
@ -270,6 +295,7 @@ boxes under Motif which have user-iconizable frames, and under Windows
calling {\tt Iconize(false)} will bring the window to the front, as does
\rtfsp{\tt Show(true)}.
\membersection{wxDialog::IsIconized}\label{wxdialogisiconized}
\constfunc{bool}{IsIconized}{\void}
@ -280,12 +306,14 @@ Returns true if the dialog box is iconized. Windows only.
Always returns false under Windows since dialogs cannot be iconized.
\membersection{wxDialog::IsModal}\label{wxdialogismodal}
\constfunc{bool}{IsModal}{\void}
Returns true if the dialog box is modal, false otherwise.
\membersection{wxDialog::OnApply}\label{wxdialogonapply}
\func{void}{OnApply}{\param{wxCommandEvent\& }{event}}
@ -300,6 +328,7 @@ This function calls \helpref{wxWindow::Validate}{wxwindowvalidate} and \helpref{
\helpref{wxDialog::OnOK}{wxdialogonok}, \helpref{wxDialog::OnCancel}{wxdialogoncancel}
\membersection{wxDialog::OnCancel}\label{wxdialogoncancel}
\func{void}{OnCancel}{\param{wxCommandEvent\& }{event}}
@ -315,6 +344,7 @@ sets the return value to wxID\_CANCEL and calls {\bf Show(false)} if the dialog
\helpref{wxDialog::OnOK}{wxdialogonok}, \helpref{wxDialog::OnApply}{wxdialogonapply}
\membersection{wxDialog::OnOK}\label{wxdialogonok}
\func{void}{OnOK}{\param{wxCommandEvent\& }{event}}
@ -332,6 +362,7 @@ sets the return value to wxID\_OK and calls {\bf Show(false)} if the dialog is m
\helpref{wxDialog::OnCancel}{wxdialogoncancel}, \helpref{wxDialog::OnApply}{wxdialogonapply}
\membersection{wxDialog::OnSysColourChanged}\label{wxdialogonsyscolourchanged}
\func{void}{OnSysColourChanged}{\param{wxSysColourChangedEvent\& }{event}}
@ -354,6 +385,7 @@ propagate the notification to child windows and controls.
\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}
\membersection{wxDialog::SetAffirmativeId}\label{wxdialogsetaffirmativeid}
\func{void}{SetAffirmativeId}{\param{int }{id}}
@ -365,6 +397,20 @@ By default, this is wxID\_OK.
\helpref{wxDialog::GetAffirmativeId}{wxdialoggetaffirmativeid}
\membersection{wxDialog::SetEscapeId}\label{wxdialogsetescapeid}
\func{void}{SetEscapeId}{\param{int }{id}}
Sets the identifier to be used when the user presses \texttt{\textsc{ESC}}
button in the dialog. By default, this is \texttt{wxID\_ANY} meaning that
the first suitable button is used: if there a \texttt{wxID\_CANCEL} button, it
is activated, otherwise \texttt{wxID\_OK} button is activated if present.
Another possible special value for \arg{id} is \texttt{wxID\_NONE} meaning that
\texttt{\textsc{ESC}} presses should be ignored. If another value is given, it
is interpreted as the id of the button to map the escape key to.
\membersection{wxDialog::SetIcon}\label{wxdialogseticon}
\func{void}{SetIcon}{\param{const wxIcon\& }{icon}}
@ -377,6 +423,7 @@ Sets the icon for this dialog.
See also \helpref{wxIcon}{wxicon}.
\membersection{wxDialog::SetIcons}\label{wxdialogseticons}
\func{void}{SetIcons}{\param{const wxIconBundle\& }{icons}}
@ -389,6 +436,7 @@ Sets the icons for this dialog.
See also \helpref{wxIconBundle}{wxiconbundle}.
\membersection{wxDialog::SetModal}\label{wxdialogsetmodal}
\func{void}{SetModal}{\param{const bool}{ flag}}
@ -403,6 +451,7 @@ until the dialog is hidden) or modeless (control returns immediately).
\docparam{flag}{If true, the dialog will be modal, otherwise it will be modeless.}
\membersection{wxDialog::SetReturnCode}\label{wxdialogsetreturncode}
\func{void}{SetReturnCode}{\param{int }{retCode}}
@ -423,6 +472,7 @@ a code to the application. The function \helpref{wxDialog::EndModal}{wxdialogend
\helpref{wxDialog::GetReturnCode}{wxdialoggetreturncode}, \helpref{wxDialog::ShowModal}{wxdialogshowmodal},\rtfsp
\helpref{wxDialog::EndModal}{wxdialogendmodal}
\membersection{wxDialog::SetTitle}\label{wxdialogsettitle}
\func{void}{SetTitle}{\param{const wxString\& }{ title}}
@ -433,6 +483,7 @@ Sets the title of the dialog box.
\docparam{title}{The dialog box title.}
\membersection{wxDialog::Show}\label{wxdialogshow}
\func{bool}{Show}{\param{const bool}{ show}}
@ -449,6 +500,7 @@ modal, control is returned to the calling program.}
The preferred way of dismissing a modal dialog is to use \helpref{wxDialog::EndModal}{wxdialogendmodal}.
\membersection{wxDialog::ShowModal}\label{wxdialogshowmodal}
\func{int}{ShowModal}{\void}

View File

@ -47,17 +47,8 @@ public:
int GetAffirmativeId() const { return m_affirmativeId; }
// Identifier for Esc key translation
#if wxCHECK_VERSION(2, 7, 0)
#error "Uncomment SetEscapeId() implementation"
// this is what we should do in 2.7: remove the "#else" part and add
// m_escapeId declaration and the docs for Set/GetEscapeId()
void SetEscapeId(int escapeId) { m_escapeId = escapeId; }
int GetEscapeId() const { return m_escapeId; }
#elif wxABI_VERSION > 20601
// just a stub for 2.6
int GetEscapeId() const { return wxID_ANY; }
#endif
#if wxUSE_STATTEXT // && wxUSE_TEXTCTRL
// splits text up at newlines and places the
@ -78,6 +69,9 @@ protected:
// The identifier for the affirmative button (usually wxID_OK)
int m_affirmativeId;
// The identifier for cancel button (usually wxID_CANCEL)
int m_escapeId;
DECLARE_NO_COPY_CLASS(wxDialogBase)
DECLARE_EVENT_TABLE()
WX_DECLARE_CONTROL_CONTAINER();

View File

@ -108,7 +108,8 @@ void wxDialogBase::Init()
{
m_returnCode = 0;
m_affirmativeId = wxID_OK;
m_escapeId = wxID_ANY;
// the dialogs have this flag on by default to prevent the events from the
// dialog controls from reaching the parent frame which is usually
// undesirable and can lead to unexpected and hard to find bugs