X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d2bc87252ae509ad755ee1d631ab994bcdb6c5be..96c9640205933ad0673d5af2c96af0816c50160c:/src/msw/progdlg.cpp diff --git a/src/msw/progdlg.cpp b/src/msw/progdlg.cpp index 254fa00679..8191f6b084 100644 --- a/src/msw/progdlg.cpp +++ b/src/msw/progdlg.cpp @@ -236,6 +236,11 @@ void PerformNotificationUpdates(HWND hwnd, body.assign(title, posNL + numNLs, wxString::npos); title.erase(posNL); } + else // A single line + { + // Don't use title without the body, this doesn't make sense. + title.swap(body); + } ::SendMessage( hwnd, TDM_SET_ELEMENT_TEXT, @@ -302,7 +307,7 @@ wxProgressDialog::wxProgressDialog( const wxString& title, int maximum, wxWindow *parent, int style ) - : wxGenericProgressDialog(parent, style), + : wxGenericProgressDialog(), m_taskDialogRunner(NULL), m_sharedData(NULL), m_message(message), @@ -311,6 +316,8 @@ wxProgressDialog::wxProgressDialog( const wxString& title, #ifdef wxHAS_MSW_TASKDIALOG if ( HasNativeTaskDialog() ) { + SetTopParent(parent); + SetPDStyle(style); SetMaximum(maximum); Show(); @@ -518,6 +525,23 @@ void wxProgressDialog::Resume() #endif // wxHAS_MSW_TASKDIALOG } +WXWidget wxProgressDialog::GetHandle() const +{ +#ifdef wxHAS_MSW_TASKDIALOG + if ( HasNativeTaskDialog() ) + { + HWND hwnd; + { + wxCriticalSectionLocker locker(m_sharedData->m_cs); + m_sharedData->m_state = m_state; + hwnd = m_sharedData->m_hwnd; + } + return hwnd; + } +#endif + return wxGenericProgressDialog::GetHandle(); +} + int wxProgressDialog::GetValue() const { #ifdef wxHAS_MSW_TASKDIALOG @@ -761,6 +785,11 @@ void* wxProgressDialogTaskRunner::Entry() wxTdc.caption = m_sharedData.m_title.wx_str(); wxTdc.message = m_sharedData.m_message.wx_str(); + // MSWCommonTaskDialogInit() will add an IDCANCEL button but we need to + // give it the correct label. + wxTdc.btnOKLabel = m_sharedData.m_labelCancel; + wxTdc.useCustomLabels = true; + wxTdc.MSWCommonTaskDialogInit( tdc ); tdc.pfCallback = TaskDialogCallbackProc; tdc.lpCallbackData = (LONG_PTR) &m_sharedData; @@ -769,16 +798,9 @@ void* wxProgressDialogTaskRunner::Entry() tdc.dwFlags &= ~TDF_EXPAND_FOOTER_AREA; // Expand in content area. tdc.dwCommonButtons = 0; // Don't use common buttons. - wxTdc.useCustomLabels = true; - if ( m_sharedData.m_style & wxPD_CAN_SKIP ) wxTdc.AddTaskDialogButton( tdc, Id_SkipBtn, 0, _("Skip") ); - // Use a Cancel button when requested or use a Close button when - // the dialog does not automatically hide. - wxTdc.AddTaskDialogButton( tdc, IDCANCEL, 0, - m_sharedData.m_labelCancel ); - tdc.dwFlags |= TDF_CALLBACK_TIMER | TDF_SHOW_PROGRESS_BAR; if ( !m_sharedData.m_expandedInformation.empty() )