]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/configtool/src/utils.cpp
Oops, I left an extra { in there.
[wxWidgets.git] / utils / configtool / src / utils.cpp
index 13826439a691d854f4fbbbd7b23f505aa48df9a3..389a8f26fbb4523970dfec3d7ce9066b379af79c 100644 (file)
@@ -27,6 +27,7 @@
 #include "wx/variant.h"
 #include "wx/cshelp.h"
 #include "wx/cmdline.h"
+#include "wx/imaglist.h"
 
 #include <math.h>
 
@@ -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;
+}