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
102 lines
3.1 KiB
C++
102 lines
3.1 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/richmsgdlg.h
|
|
// Purpose: wxRichMessageDialogBase
|
|
// Author: Rickard Westerlund
|
|
// Created: 2010-07-03
|
|
// Copyright: (c) 2010 wxWidgets team
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_RICHMSGDLG_H_BASE_
|
|
#define _WX_RICHMSGDLG_H_BASE_
|
|
|
|
#include "wx/defs.h"
|
|
|
|
#if wxUSE_RICHMSGDLG
|
|
|
|
#include "wx/msgdlg.h"
|
|
|
|
// Extends a message dialog with an optional checkbox and user-expandable
|
|
// detailed text.
|
|
class WXDLLIMPEXP_CORE wxRichMessageDialogBase : public wxGenericMessageDialog
|
|
{
|
|
public:
|
|
wxRichMessageDialogBase( wxWindow *parent,
|
|
const wxString& message,
|
|
const wxString& caption,
|
|
long style )
|
|
: wxGenericMessageDialog( parent, message, caption, style ),
|
|
m_detailsExpanderCollapsedLabel( wxGetTranslation("&See details") ),
|
|
m_detailsExpanderExpandedLabel( wxGetTranslation("&Hide details") ),
|
|
m_checkBoxValue( false ),
|
|
m_footerIcon( 0 )
|
|
{ }
|
|
|
|
void ShowCheckBox(const wxString& checkBoxText, bool checked = false)
|
|
{
|
|
m_checkBoxText = checkBoxText;
|
|
m_checkBoxValue = checked;
|
|
}
|
|
|
|
wxString GetCheckBoxText() const { return m_checkBoxText; }
|
|
|
|
void ShowDetailedText(const wxString& detailedText)
|
|
{ m_detailedText = detailedText; }
|
|
|
|
wxString GetDetailedText() const { return m_detailedText; }
|
|
|
|
virtual bool IsCheckBoxChecked() const { return m_checkBoxValue; }
|
|
|
|
void SetFooterText(const wxString& footerText)
|
|
{ m_footerText = footerText; }
|
|
|
|
wxString GetFooterText() const { return m_footerText; }
|
|
|
|
void SetFooterIcon(int icon)
|
|
{ m_footerIcon = icon; }
|
|
|
|
int GetFooterIcon() const { return m_footerIcon; }
|
|
|
|
protected:
|
|
const wxString m_detailsExpanderCollapsedLabel;
|
|
const wxString m_detailsExpanderExpandedLabel;
|
|
|
|
wxString m_checkBoxText;
|
|
bool m_checkBoxValue;
|
|
wxString m_detailedText;
|
|
wxString m_footerText;
|
|
int m_footerIcon;
|
|
|
|
private:
|
|
void ShowDetails(bool shown);
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxRichMessageDialogBase);
|
|
};
|
|
|
|
// Always include the generic version as it's currently used as the base class
|
|
// by the MSW native implementation too.
|
|
#include "wx/generic/richmsgdlgg.h"
|
|
|
|
#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
|
|
#include "wx/msw/richmsgdlg.h"
|
|
#else
|
|
class WXDLLIMPEXP_CORE wxRichMessageDialog
|
|
: public wxGenericRichMessageDialog
|
|
{
|
|
public:
|
|
wxRichMessageDialog( wxWindow *parent,
|
|
const wxString& message,
|
|
const wxString& caption = wxMessageBoxCaptionStr,
|
|
long style = wxOK | wxCENTRE )
|
|
: wxGenericRichMessageDialog( parent, message, caption, style )
|
|
{ }
|
|
|
|
private:
|
|
wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxRichMessageDialog);
|
|
};
|
|
#endif
|
|
|
|
#endif // wxUSE_RICHMSGDLG
|
|
|
|
#endif // _WX_RICHMSGDLG_H_BASE_
|