X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c22ce32199e7c1fca23004ab346911ddc7e72ef0..8b23d3b067e126c3d595316bbe6cd113857303bf:/src/msw/msgdlg.cpp diff --git a/src/msw/msgdlg.cpp b/src/msw/msgdlg.cpp index 3a8ace4806..d2e06d4b79 100644 --- a/src/msw/msgdlg.cpp +++ b/src/msw/msgdlg.cpp @@ -54,6 +54,12 @@ #include "wx/msw/wince/missing.h" #endif +// Interestingly, this symbol currently seems to be absent from Platform SDK +// headers but it is documented at MSDN. +#ifndef TDF_SIZE_TO_CONTENT + #define TDF_SIZE_TO_CONTENT 0x1000000 +#endif + using namespace wxMSWMessageDialog; IMPLEMENT_CLASS(wxMessageDialog, wxDialog) @@ -265,7 +271,7 @@ void wxMessageDialog::ReplaceStaticWithEdit() HWND hwndEdit = ::CreateWindow ( wxT("EDIT"), - wxTextBuffer::Translate(text).wx_str(), + wxTextBuffer::Translate(text).t_str(), WS_CHILD | WS_VSCROLL | WS_VISIBLE | ES_MULTILINE | ES_READONLY | ES_AUTOVSCROLL, rc.left, rc.top, @@ -367,7 +373,7 @@ void wxMessageDialog::AdjustButtonLabels() if ( widthNeeded > wBtnNew ) wBtnNew = widthNeeded; - ::SetWindowText(hwndBtn, label.wx_str()); + ::SetWindowText(hwndBtn, label.t_str()); } if ( wBtnNew <= wBtnOld ) @@ -578,7 +584,7 @@ int wxMessageDialog::ShowMessageBox() #endif // wxUSE_MSGBOX_HOOK // do show the dialog - int msAns = MessageBox(hWnd, message.wx_str(), m_caption.wx_str(), msStyle); + int msAns = MessageBox(hWnd, message.t_str(), m_caption.t_str(), msStyle); return MSWTranslateReturnCode(msAns); } @@ -680,9 +686,17 @@ wxMSWTaskDialogConfig::wxMSWTaskDialogConfig(const wxMessageDialogBase& dlg) void wxMSWTaskDialogConfig::MSWCommonTaskDialogInit(TASKDIALOGCONFIG &tdc) { - tdc.dwFlags = TDF_EXPAND_FOOTER_AREA | TDF_POSITION_RELATIVE_TO_WINDOW; + // Use TDF_SIZE_TO_CONTENT to try to prevent Windows from truncating or + // ellipsizing the message text. This doesn't always work as Windows will + // still do it if the message contains too long "words" (i.e. runs of the + // text without spaces) but at least it ensures that the message text is + // fully shown for reasonably-sized words whereas without it using almost + // any file system path in a message box would result in truncation. + tdc.dwFlags = TDF_EXPAND_FOOTER_AREA | + TDF_POSITION_RELATIVE_TO_WINDOW | + TDF_SIZE_TO_CONTENT; tdc.hInstance = wxGetInstance(); - tdc.pszWindowTitle = caption.wx_str(); + tdc.pszWindowTitle = caption.t_str(); // use the top level window as parent if none specified tdc.hwndParent = parent ? GetHwndOf(parent) : NULL; @@ -699,12 +713,12 @@ void wxMSWTaskDialogConfig::MSWCommonTaskDialogInit(TASKDIALOGCONFIG &tdc) // message in our ctor, see comment there. if ( !extendedMessage.empty() ) { - tdc.pszMainInstruction = message.wx_str(); - tdc.pszContent = extendedMessage.wx_str(); + tdc.pszMainInstruction = message.t_str(); + tdc.pszContent = extendedMessage.t_str(); } else { - tdc.pszContent = message.wx_str(); + tdc.pszContent = message.t_str(); } // set an icon to be used, if possible @@ -788,7 +802,7 @@ void wxMSWTaskDialogConfig::AddTaskDialogButton(TASKDIALOGCONFIG &tdc, TASKDIALOG_BUTTON &tdBtn = buttons[tdc.cButtons]; tdBtn.nButtonID = btnCustomId; - tdBtn.pszButtonText = customLabel.wx_str(); + tdBtn.pszButtonText = customLabel.t_str(); tdc.cButtons++; // We should never have more than 4 buttons currently as this is the