Add wxRichMessageDialog class.

This is a generalization of wxMessageDialog based on the native task dialog
under recent (Vista and later) Windows versions and implemented generically
for the other ports for now.

It provides the possibility to use additional controls in the message boxes
(checkbox useful for the "Don't ask me again" kind of dialogs and collapsible
detailed explanations field) and better look and feel under Windows.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2010-08-18 22:48:41 +00:00
parent ede7b01760
commit a1bdd4ab9b
31 changed files with 1227 additions and 213 deletions

View File

@@ -191,12 +191,23 @@ class TestMessageBoxDialog : public wxDialog
public:
TestMessageBoxDialog(wxWindow *parent);
private:
bool Create();
protected:
wxString GetMessage() { return m_textMsg->GetValue(); }
long GetStyle();
void PrepareMessageDialog(wxMessageDialogBase &dlg);
virtual void AddAdditionalTextOptions(wxSizer *WXUNUSED(sizer)) { }
virtual void AddAdditionalFlags(wxSizer *WXUNUSED(sizer)) { }
void OnApply(wxCommandEvent& event);
void OnClose(wxCommandEvent& event);
void OnUpdateLabelUI(wxUpdateUIEvent& event);
void OnUpdateNoDefaultUI(wxUpdateUIEvent& event);
private:
enum
{
Btn_Yes,
@@ -240,6 +251,28 @@ private:
wxDECLARE_NO_COPY_CLASS(TestMessageBoxDialog);
};
#if wxUSE_RICHMSGDLG
class TestRichMessageDialog : public TestMessageBoxDialog
{
public:
TestRichMessageDialog(wxWindow *parent);
protected:
// overrides method in base class
virtual void AddAdditionalTextOptions(wxSizer *sizer);
virtual void AddAdditionalFlags(wxSizer *sizer);
void OnApply(wxCommandEvent& event);
private:
wxTextCtrl *m_textCheckBox;
wxCheckBox *m_initialValueCheckBox;
wxTextCtrl *m_textDetailed;
DECLARE_EVENT_TABLE()
};
#endif // wxUSE_RICHMSGDLG
class TestDefaultActionDialog: public wxDialog
{
public:
@@ -302,6 +335,9 @@ public:
void MessageBoxWindowModal(wxCommandEvent& event);
void MessageBoxWindowModalClosed(wxWindowModalDialogEvent& event);
#endif // wxUSE_MSGDLG
#if wxUSE_RICHMSGDLG
void RichMessageDialog(wxCommandEvent& event);
#endif // wxUSE_RICHMSGDLG
#if wxUSE_COLOURDLG
void ChooseColour(wxCommandEvent& event);
@@ -480,6 +516,7 @@ enum
DIALOGS_MESSAGE_BOX_WINDOW_MODAL,
DIALOGS_MESSAGE_DIALOG,
DIALOGS_MESSAGE_BOX_WXINFO,
DIALOGS_RICH_MESSAGE_DIALOG,
DIALOGS_SINGLE_CHOICE,
DIALOGS_MULTI_CHOICE,
DIALOGS_REARRANGE,