X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/02ae000a99c2ad7930e682cb531e05db7111ee1a..3684ade82ec6f5fb7ff72341e26060b6ea0793c8:/utils/configtool/src/utils.cpp diff --git a/utils/configtool/src/utils.cpp b/utils/configtool/src/utils.cpp index 13826439a6..389a8f26fb 100644 --- a/utils/configtool/src/utils.cpp +++ b/utils/configtool/src/utils.cpp @@ -27,6 +27,7 @@ #include "wx/variant.h" #include "wx/cshelp.h" #include "wx/cmdline.h" +#include "wx/imaglist.h" #include @@ -45,17 +46,17 @@ int apDetermineImageType(const wxString& filename) wxSplitPath(filename, & path, & name, & ext); ext.MakeLower(); - if (ext == "jpg" || ext == "jpeg") + if (ext == _T("jpg") || ext == _T("jpeg")) return wxBITMAP_TYPE_JPEG; - else if (ext == "gif") + else if (ext == _T("gif")) return wxBITMAP_TYPE_GIF; - else if (ext == "bmp") + else if (ext == _T("bmp")) return wxBITMAP_TYPE_BMP; - else if (ext == "png") + else if (ext == _T("png")) return wxBITMAP_TYPE_PNG; - else if (ext == "pcx") + else if (ext == _T("pcx")) return wxBITMAP_TYPE_PCX; - else if (ext == "tif" || ext == "tiff") + else if (ext == _T("tif") || ext == _T("tiff")) return wxBITMAP_TYPE_TIF; else return -1; @@ -97,6 +98,14 @@ wxString apFontToString(const wxFont& font) return str; } +static inline int StringToInt(const wxString& s) +{ + long tmp; + s.ToLong(&tmp); + + return int(tmp); +} + // Convert a string to a wxFont wxFont apStringToFont(const wxString& str) { @@ -115,7 +124,7 @@ wxFont apStringToFont(const wxString& str) if (i == 0) { - StringToInt(token, & pointSize); + pointSize = StringToInt(token); #if defined(__WXGTK__) || defined(__WXMAC__) if (pointSize < 8) pointSize = 8; @@ -124,13 +133,13 @@ wxFont apStringToFont(const wxString& str) #endif } else if (i == 1) - StringToInt(token, & family); + family = StringToInt(token); else if (i == 2) - StringToInt(token, & style); + style = StringToInt(token); else if (i == 3) - StringToInt(token, & weight); + weight = StringToInt(token); else if (i == 4) - StringToInt(token, & underlined); + underlined = StringToInt(token); else if (i == 5) { facename = token; @@ -150,7 +159,7 @@ wxFont apStringToFont(const wxString& str) int apFindNotebookPage(wxNotebook* notebook, const wxString& name) { int i; - for (i = 0; i < notebook->GetPageCount(); i++) + for (i = 0; i < (int)notebook->GetPageCount(); i++) if (name == notebook->GetPageText(i)) return i; return -1; @@ -167,11 +176,11 @@ void apViewHTMLFile(const wxString& url) TCHAR szCmdName[1024]; DWORD dwType, dw = sizeof(szCmdName); LONG lRes; - lRes = RegOpenKey(HKEY_CLASSES_ROOT, "htmlfile\\shell\\open\\command", &hKey); + lRes = RegOpenKey(HKEY_CLASSES_ROOT, _T("htmlfile\\shell\\open\\command"), &hKey); if(lRes == ERROR_SUCCESS && RegQueryValueEx(hKey,(LPTSTR)NULL, NULL, &dwType, (LPBYTE)szCmdName, &dw) == ERROR_SUCCESS) { - strcat(szCmdName, (const char*) url); + wxStrcat(szCmdName, (const wxChar*) url); PROCESS_INFORMATION piProcInfo; STARTUPINFO siStartInfo; memset(&siStartInfo, 0, sizeof(STARTUPINFO)); @@ -304,7 +313,31 @@ wxString apFindAppPath(const wxString& argv0, const wxString& cwd, const wxStrin } // Adds a context-sensitive help button, for non-Windows platforms -void apAddContextHelpButton(wxWindow* parent, wxSizer* sizer, int sizerFlags, int sizerBorder) +void apAddContextHelpButton(wxWindow* + #if defined(__WXGTK__) || defined(__WXMAC__) + parent + #else + WXUNUSED(parent) + #endif + , wxSizer* + #if defined(__WXGTK__) || defined(__WXMAC__) + sizer + #else + WXUNUSED(sizer) + #endif + , int + #if defined(__WXGTK__) || defined(__WXMAC__) + sizerFlags + #else + WXUNUSED(sizerFlags) + #endif + , int + #if defined(__WXGTK__) || defined(__WXMAC__) + sizerBorder + #else + WXUNUSED(sizerBorder) + #endif + ) { #if defined(__WXGTK__) || defined(__WXMAC__) #ifdef __WXMAC__ @@ -450,7 +483,7 @@ wxOutputStream& operator <<(wxOutputStream& stream, long l) return stream << str; } -wxOutputStream& operator <<(wxOutputStream& stream, const char c) +wxOutputStream& operator <<(wxOutputStream& stream, const wxChar c) { wxString str; str.Printf(_T("%c"), c); @@ -477,3 +510,37 @@ wxString ctEscapeHTMLCharacters(const wxString& str) } return s; } + +// Match 'matchText' against 'matchAgainst', optionally constraining to +// whole-word only. +bool ctMatchString(const wxString& matchAgainst, const wxString& matchText, bool wholeWordOnly) +{ + // Fast operation if not matching against whole words only + if (!wholeWordOnly) + return (matchAgainst.Find(matchText) != -1); + + wxString left(matchAgainst); + bool success = FALSE; + int pos = 0; + int matchTextLen = (int) matchText.Length(); + while (!success && !matchAgainst.IsEmpty()) + { + pos = left.Find(matchText); + if (pos == -1) + return FALSE; + + bool firstCharOK = FALSE; + bool lastCharOK = FALSE; + if (pos == 0 || !wxIsalnum(left[(size_t) (pos-1)])) + firstCharOK = TRUE; + + if (((pos + matchTextLen) == (int) left.Length()) || !wxIsalnum(left[(size_t) (pos + matchTextLen)])) + lastCharOK = TRUE; + + if (firstCharOK && lastCharOK) + success = TRUE; + + left = left.Mid(pos+1); + } + return success; +}