1
/////////////////////////////////////////////////////////////////////////////
2
// Name: src/msw/richmsgdlg.cpp
3
// Purpose: wxRichMessageDialog
4
// Author: Rickard Westerlund
6
// RCS-ID: $Id: richmsgdlg.cpp 71640 2012-06-03 19:16:59Z VZ $
7
// Copyright: (c) 2010 wxWidgets team
8
// Licence: wxWindows licence
9
/////////////////////////////////////////////////////////////////////////////
11
// For compilers that support precompilation, includes "wx.h".
12
#include "wx/wxprec.h"
20
#include "wx/richmsgdlg.h"
23
#include "wx/msw/private.h"
26
// This will define wxHAS_MSW_TASKDIALOG if we have support for it in the
28
#include "wx/msw/private/msgdlg.h"
30
// ----------------------------------------------------------------------------
31
// wxRichMessageDialog
32
// ----------------------------------------------------------------------------
34
int wxRichMessageDialog::ShowModal()
36
#ifdef wxHAS_MSW_TASKDIALOG
37
using namespace wxMSWMessageDialog;
39
if ( HasNativeTaskDialog() )
41
// create a task dialog
42
WinStruct<TASKDIALOGCONFIG> tdc;
43
wxMSWTaskDialogConfig wxTdc(*this);
45
wxTdc.MSWCommonTaskDialogInit( tdc );
48
if ( !m_checkBoxText.empty() )
50
tdc.pszVerificationText = m_checkBoxText.t_str();
51
if ( m_checkBoxValue )
52
tdc.dwFlags |= TDF_VERIFICATION_FLAG_CHECKED;
55
// add collapsible footer
56
if ( !m_detailedText.empty() )
57
tdc.pszExpandedInformation = m_detailedText.t_str();
59
TaskDialogIndirect_t taskDialogIndirect = GetTaskDialogIndirectFunc();
60
if ( !taskDialogIndirect )
63
// create the task dialog, process the answer and return it.
66
HRESULT hr = taskDialogIndirect( &tdc, &msAns, NULL, &checkBoxChecked );
69
wxLogApiError( "TaskDialogIndirect", hr );
72
m_checkBoxValue = checkBoxChecked != FALSE;
74
return MSWTranslateReturnCode( msAns );
76
#endif // wxHAS_MSW_TASKDIALOG
78
// use the generic version when task dialog is't available at either
79
// compile or run-time.
80
return wxGenericRichMessageDialog::ShowModal();
83
#endif // wxUSE_RICHMSGDLG