X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d7463f75f9c170c29b4965d27dccf535ac32cfde..f9133b32002a600cb48dd05fbcce1ab3ed684dba:/utils/configtool/src/utils.cpp diff --git a/utils/configtool/src/utils.cpp b/utils/configtool/src/utils.cpp index d1bdefb514..05849af70c 100644 --- a/utils/configtool/src/utils.cpp +++ b/utils/configtool/src/utils.cpp @@ -323,11 +323,13 @@ void apAddContextHelpButton(wxWindow* parent, wxSizer* sizer, int sizerFlags, in #endif contextButton->SetHelpText(_("Invokes context-sensitive help for the clicked-on window.")); +#if 0 if (wxGetApp().UsingTooltips()) { contextButton->SetToolTip(_("Invokes context-sensitive help for the clicked-on window.")); } #endif +#endif } // Get selected wxNotebook page @@ -405,13 +407,13 @@ bool wxIconTable::AddInfo(const wxString& name, const wxIcon& icon, int state, b wxIconInfo* wxIconTable::FindInfo(const wxString& name) const { - wxNode* node = First(); + wxNode* node = GetFirst(); while (node) { - wxIconInfo* info = (wxIconInfo*) node->Data(); + wxIconInfo* info = (wxIconInfo*) node->GetData(); if (info->GetName() == name) return info; - node = node->Next(); + node = node->GetNext(); } return NULL; } @@ -474,4 +476,38 @@ wxString ctEscapeHTMLCharacters(const wxString& str) s += c; } return s; -} \ No newline at end of file +} + +// 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; +}