6 #include "Environment.h"
10 // Get user language description of error, if available
11 String GetSysError(int nerr /* =-1 */)
14 nerr = GetLastError();
18 FORMAT_MESSAGE_ALLOCATE_BUFFER |
19 FORMAT_MESSAGE_FROM_SYSTEM |
20 FORMAT_MESSAGE_IGNORE_INSERTS,
23 0, // Default language
29 str = (LPCTSTR)lpMsgBuf;
32 LocalFree( lpMsgBuf );
37 * @brief Get Options Manager.
38 * @return Pointer to OptionsMgr.
40 COptionsMgr * GetOptionsMgr()
42 CMergeApp *pApp = static_cast<CMergeApp *>(AfxGetApp());
43 return pApp->GetMergeOptionsMgr();
46 // Send message to log and debug window
47 void LogErrorString(const String& sz)
49 if (sz.empty()) return;
50 CString now = COleDateTime::GetCurrentTime().Format();
51 TRACE(_T("%s: %s\n"), (LPCTSTR)now, sz.c_str());
54 // Send message to log and debug window
55 void LogErrorStringUTF8(const std::string& sz)
57 if (sz.empty()) return;
58 String str = ucr::toTString(sz);
59 CString now = COleDateTime::GetCurrentTime().Format();
60 TRACE(_T("%s: %s\n"), (LPCTSTR)now, str.c_str());
64 * @brief Load string resource and return as CString.
65 * @param [in] id Resource string ID.
66 * @return Resource string as CString.
68 String LoadResString(unsigned id)
70 return theApp.LoadString(id);
73 String tr(const std::string &str)
75 String translated_str;
76 theApp.TranslateString(str, translated_str);
77 return translated_str;
80 void AppErrorMessageBox(const String& msg)
82 AppMsgBox::error(msg);
90 int convert_to_winflags(int flags)
94 if ((flags & (YES | NO | CANCEL)) == (YES | NO | CANCEL)) newflags |= MB_YESNOCANCEL;
95 else if ((flags & (YES | NO)) == (YES | NO)) newflags |= MB_YESNO;
96 else if ((flags & (OK | CANCEL)) == (OK | CANCEL)) newflags |= MB_OKCANCEL;
97 else if ((flags & OK) == OK) newflags |= MB_OK;
99 if (flags & YES_TO_ALL) newflags |= MB_YES_TO_ALL;
100 if (flags & DONT_DISPLAY_AGAIN) newflags |= MB_DONT_DISPLAY_AGAIN;
105 int convert_resp(int resp)
125 int error(const String& msg, int type)
127 return detail::convert_resp(AfxMessageBox(msg.c_str(), detail::convert_to_winflags(type) | MB_ICONSTOP));
130 int warning(const String& msg, int type)
132 return detail::convert_resp(AfxMessageBox(msg.c_str(), detail::convert_to_winflags(type) | MB_ICONWARNING));
135 int information(const String& msg, int type)
137 return detail::convert_resp(AfxMessageBox(msg.c_str(), detail::convert_to_winflags(type) | MB_ICONINFORMATION));
142 AboutInfo::AboutInfo()
144 CVersionInfo verinfo;
145 version = string_format_string1(_("Version %1"), verinfo.GetProductVersion());
149 version += _("Unicode");
153 version += _T(" x86");
154 #elif defined _M_IA64
155 version += _T(" IA64");
161 copyright = verinfo.GetLegalCopyright();
163 private_build = verinfo.GetPrivateBuild();
164 if (!private_build.empty())
166 private_build = string_format_string1(_("Private Build: %1"), private_build);
169 website = WinMergeURL;