X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/47d67540a017101b3e46abe9ef0f55914d8de37e..8d7dafc91ad68448a481b78df798a7bc85a92a60:/src/common/utilscmn.cpp diff --git a/src/common/utilscmn.cpp b/src/common/utilscmn.cpp index 14b9bae187..d845ed71da 100644 --- a/src/common/utilscmn.cpp +++ b/src/common/utilscmn.cpp @@ -26,15 +26,21 @@ #include "wx/window.h" #include "wx/menu.h" #include "wx/frame.h" +#include "wx/msgdlg.h" +#include "wx/textdlg.h" #endif #if wxUSE_IOSTREAMH #include +#include #else #include +#include +# ifdef _MSC_VER + using namespace std; +# endif #endif -#include #include #include #include @@ -238,19 +244,19 @@ static char hexArray[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A' 'C', 'D', 'E', 'F' }; // Convert 2-digit hex number to decimal -int wxHexToDec(char *buf) +int wxHexToDec(const wxString& buf) { int firstDigit, secondDigit; - if (buf[0] >= 'A') - firstDigit = buf[0] - 'A' + 10; + if (buf.GetChar(0) >= 'A') + firstDigit = buf.GetChar(0) - 'A' + 10; else - firstDigit = buf[0] - '0'; + firstDigit = buf.GetChar(0) - '0'; - if (buf[1] >= 'A') - secondDigit = buf[1] - 'A' + 10; + if (buf.GetChar(1) >= 'A') + secondDigit = buf.GetChar(1) - 'A' + 10; else - secondDigit = buf[1] - '0'; + secondDigit = buf.GetChar(1) - '0'; return firstDigit * 16 + secondDigit; } @@ -265,6 +271,14 @@ void wxDecToHex(int dec, char *buf) buf[2] = 0; } +// Convert decimal integer to 2-character hex string +wxString wxDecToHex(int dec) +{ + char buf[3]; + wxDecToHex(dec, buf); + return wxString(buf); +} + // Match a string INDEPENDENT OF CASE bool StringMatch (char *str1, char *str2, bool subString, bool exact) @@ -376,6 +390,14 @@ char *wxStripMenuCodes (char *in, char *out) return tmpOut; } +wxString wxStripMenuCodes(const wxString& str) +{ + char *buf = new char[str.Length() + 1]; + wxStripMenuCodes((char*) (const char*) str, buf); + wxString str1(buf); + delete[] buf; + return str1; +} /* * Window search functions @@ -510,7 +532,11 @@ wxFindMenuItemId (wxFrame * frame, const wxString& menuString, const wxString& i wxDebugStreamBuf::wxDebugStreamBuf(void) { - if (allocate()) setp(base(),ebuf()); + // usage doesn't need this, and i have no idea how to simulate it. +#if wxUSE_IOSTREAMH + if (allocate()) + setp(base(),ebuf()); +#endif } int wxDebugStreamBuf::overflow(int WXUNUSED(i)) @@ -740,3 +766,44 @@ whereami(name) #endif +/* + * N.B. these convenience functions must be separate from msgdlgg.cpp, textdlgg.cpp + * since otherwise the generic code may be pulled in unnecessarily. + */ + +int wxMessageBox(const wxString& message, const wxString& caption, long style, + wxWindow *parent, int WXUNUSED(x), int WXUNUSED(y) ) +{ + wxMessageDialog dialog(parent, message, caption, style); + + int ans = dialog.ShowModal(); + switch ( ans ) + { + case wxID_OK: + return wxOK; + break; + case wxID_YES: + return wxYES; + break; + case wxID_NO: + return wxNO; + break; + default: + case wxID_CANCEL: + return wxCANCEL; + break; + } + return ans; +} + +wxString wxGetTextFromUser(const wxString& message, const wxString& caption, + const wxString& defaultValue, wxWindow *parent, + int x, int y, bool WXUNUSED(centre) ) +{ + wxTextEntryDialog dialog(parent, message, caption, defaultValue, wxOK|wxCANCEL, wxPoint(x, y)); + if (dialog.ShowModal() == wxID_OK) + return dialog.GetValue(); + else + return wxString(""); +} +