d6b88ca399
The underlying Windows TaskDialog supports adding an additional footer to the message dialog. This makes the native functionality available and implements it in the generic version. See https://github.com/wxWidgets/wxWidgets/pull/573
178 lines
5.6 KiB
Objective-C
178 lines
5.6 KiB
Objective-C
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/richmsgdlg.h
|
|
// Purpose: interface of wxRichMessageDialog
|
|
// Author: wxWidgets team
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
@class wxRichMessageDialog
|
|
|
|
Extension of wxMessageDialog with additional functionality.
|
|
|
|
This class adds the possibility of using a checkbox (that is especially
|
|
useful for implementing the "Don't ask me again" kind of dialogs) and an
|
|
extra explanatory text which is initially collapsed and not shown to the
|
|
user but can be expanded to show more information.
|
|
|
|
Notice that currently the native dialog is used only under MSW when using
|
|
Vista or later Windows version. Elsewhere, or for older versions of
|
|
Windows, a generic implementation which is less familiar to the users is
|
|
used. Because of this it's recommended to use this class only if you do
|
|
need its extra functionality and use wxMessageDialog which does have native
|
|
implementation under all platforms otherwise. However if you do need to put
|
|
e.g. a checkbox in a dialog, you should definitely consider using this
|
|
class instead of using your own custom dialog because it will have much
|
|
better appearance at least under recent Windows versions.
|
|
|
|
To use this class, you need to create the dialog object and call
|
|
ShowCheckBox() and/or ShowDetailedText() to configure its contents.
|
|
Other than that, it is used in exactly the same way as wxMessageDialog and
|
|
supports all the styles supported by it. In particular, ShowModal() return
|
|
value is the same as for wxMessageDialog. The only difference is that you
|
|
need to use IsCheckBoxChecked() to examine the checkbox value if you had
|
|
called ShowCheckBox().
|
|
|
|
Here is a simple example:
|
|
@code
|
|
void MyFrame::ShowDialog()
|
|
{
|
|
if ( ... shouldn't show this dialog again ... )
|
|
return;
|
|
|
|
wxRichMessageDialog dlg(this, "Welcome to my wonderful program!");
|
|
dlg.ShowCheckBox("Don't show welcome dialog again");
|
|
dlg.ShowModal(); // return value ignored as we have "Ok" only anyhow
|
|
|
|
if ( dlg.IsCheckBoxChecked() )
|
|
... make sure we won't show it again the next time ...
|
|
}
|
|
@endcode
|
|
|
|
@since 2.9.2
|
|
|
|
@library{wxcore}
|
|
@category{cmndlg}
|
|
|
|
@see @ref overview_cmndlg_msg
|
|
*/
|
|
class wxRichMessageDialog : public wxRichMessageDialogBase
|
|
{
|
|
public:
|
|
/**
|
|
Constructor specifying the rich message dialog properties.
|
|
Works just like the constructor for wxMessageDialog.
|
|
*/
|
|
wxRichMessageDialog(wxWindow* parent,
|
|
const wxString& message,
|
|
const wxString& caption = wxMessageBoxCaptionStr,
|
|
long style = wxOK | wxCENTRE);
|
|
|
|
/**
|
|
Shows a checkbox with a given label or hides it.
|
|
|
|
@param checkBoxText
|
|
If the parameter is non-empty a checkbox will be shown with that
|
|
label, otherwise it will be hidden.
|
|
@param checked
|
|
The initial state of the checkbox.
|
|
*/
|
|
void ShowCheckBox(const wxString& checkBoxText, bool checked = false);
|
|
|
|
|
|
/**
|
|
Retrieves the label for the checkbox.
|
|
|
|
@return
|
|
The label for the checkbox, will be the empty string if no
|
|
checkbox is used.
|
|
*/
|
|
wxString GetCheckBoxText() const;
|
|
|
|
/**
|
|
Shows or hides a detailed text and an expander that is used to
|
|
show or hide the detailed text.
|
|
|
|
@param detailedText
|
|
The detailed text that can be expanded when the dialog is shown,
|
|
if empty no detailed text will be used.
|
|
*/
|
|
void ShowDetailedText(const wxString& detailedText);
|
|
|
|
/**
|
|
Retrieves the detailed text.
|
|
|
|
@return
|
|
The detailed text or empty if detailed text is not used.
|
|
*/
|
|
wxString GetDetailedText() const;
|
|
|
|
/**
|
|
Shows or hides a footer text that is used at the bottom of
|
|
the dialog together with an optional icon.
|
|
|
|
@param footerText
|
|
The footer text if empty no footer text will be used.
|
|
|
|
@see SetFooterIcon(), GetFooterText()
|
|
|
|
@since 3.1.1
|
|
*/
|
|
void SetFooterText(const wxString& footerText);
|
|
|
|
/**
|
|
Retrieves the footer text.
|
|
|
|
@return
|
|
The footer text or empty if footer text is not used.
|
|
|
|
@since 3.1.1
|
|
*/
|
|
wxString GetFooterText() const;
|
|
|
|
/**
|
|
Specify the footer icon set together with the footer text.
|
|
|
|
Valid values are @c wxICON_INFORMATION, @c wxICON_WARNING,
|
|
@c wxICON_AUTH_NEEDED and @c wxICON_ERROR (notice that
|
|
@c wxICON_QUESTION is not allowed here).
|
|
|
|
@see GetFooterIcon(), SetFooterText()
|
|
|
|
@since 3.1.1
|
|
*/
|
|
void SetFooterIcon(int icon);
|
|
|
|
/**
|
|
Retrieves the footer icon.
|
|
|
|
@return
|
|
The footer icon or 0 if footer icon is not used.
|
|
|
|
@see SetFooterIcon()
|
|
|
|
@since 3.1.1
|
|
*/
|
|
int GetFooterIcon() const;
|
|
|
|
/**
|
|
Retrieves the state of the checkbox.
|
|
|
|
If this method is called before showing the dialog, the initial value
|
|
of the checkbox, as set by ShowCheckBox() is used. If it is called
|
|
after calling wxDialog::ShowModal(), the value set by the user is
|
|
returned.
|
|
|
|
@return @true if the checkbox is checked or @false if not.
|
|
*/
|
|
bool IsCheckBoxChecked() const;
|
|
|
|
/**
|
|
Shows the dialog, returning one of wxID_OK, wxID_CANCEL, wxID_YES, wxID_NO.
|
|
|
|
IsCheckBoxChecked() can be called afterwards to retrieve the value of the
|
|
check box if one was used.
|
|
*/
|
|
virtual int ShowModal();
|
|
};
|