]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/utilscmn.cpp
toplevel code transferred to wxTopLevelWindow
[wxWidgets.git] / src / common / utilscmn.cpp
index 1e70d44ab96482c394c02d1579b06e0bec8e542c..a5e42a0eb1048b756a77ccd791b3b80cd32f924d 100644 (file)
     #include "wx/log.h"
 
     #if wxUSE_GUI
+        #include "wx/app.h"
         #include "wx/window.h"
         #include "wx/frame.h"
         #include "wx/menu.h"
         #include "wx/msgdlg.h"
         #include "wx/textdlg.h"
+        #include "wx/textctrl.h"    // for wxTE_PASSWORD
         #if wxUSE_ACCEL
             #include "wx/menuitem.h"
             #include "wx/accel.h"
 // string functions
 // ----------------------------------------------------------------------------
 
-#ifdef __WXMAC__
+#if defined(__WXMAC__) && !defined(__DARWIN__)
 int strcasecmp(const char *str_1, const char *str_2)
 {
   register char c1, c2;
@@ -133,7 +135,7 @@ int strncasecmp(const char *str_1, const char *str_2, size_t maxchar)
   return 0 ;
 
 }
-#endif // wxMAC
+#endif // __WXMAC__ && !__DARWIN__
 
 #if defined( __VMS__ ) && ( __VMS_VER < 70000000 )
 // we have no strI functions under VMS, therefore I have implemented
@@ -215,6 +217,11 @@ extern "C"
 #define strncasecmp strnicmp
 #endif
 
+#ifdef __WATCOMC__
+#define strcasecmp stricmp
+#define strncasecmp strnicmp
+#endif
+
 wxChar *
 copystring (const wxChar *s)
 {
@@ -247,14 +254,14 @@ wxRegisterId (long id)
 }
 
 void
-StringToFloat (wxChar *s, float *number)
+StringToFloat (const wxChar *s, float *number)
 {
   if (s && *s && number)
     *number = (float) wxStrtod (s, (wxChar **) NULL);
 }
 
 void
-StringToDouble (wxChar *s, double *number)
+StringToDouble (const wxChar *s, double *number)
 {
   if (s && *s && number)
     *number = wxStrtod (s, (wxChar **) NULL);
@@ -279,14 +286,14 @@ DoubleToString (double number, const wxChar *fmt)
 }
 
 void
-StringToInt (wxChar *s, int *number)
+StringToInt (const wxChar *s, int *number)
 {
   if (s && *s && number)
     *number = (int) wxStrtol (s, (wxChar **) NULL, 10);
 }
 
 void
-StringToLong (wxChar *s, long *number)
+StringToLong (const wxChar *s, long *number)
 {
   if (s && *s && number)
     *number = wxStrtol (s, (wxChar **) NULL, 10);
@@ -351,7 +358,7 @@ wxString wxDecToHex(int dec)
 
 // Match a string INDEPENDENT OF CASE
 bool
-StringMatch (char *str1, char *str2, bool subString, bool exact)
+StringMatch (const char *str1, const char *str2, bool subString, bool exact)
 {
   if (str1 == NULL || str2 == NULL)
     return FALSE;
@@ -407,7 +414,7 @@ wxString wxNow()
 // Menu accelerators related functions
 // ----------------------------------------------------------------------------
 
-wxChar *wxStripMenuCodes(wxChar *in, wxChar *out)
+wxChar *wxStripMenuCodes(const wxChar *in, wxChar *out)
 {
     wxString s = wxMenuItem::GetLabelFromText(in);
     if ( out )
@@ -604,6 +611,7 @@ wxWindow* wxFindWindowAtPoint(wxWindow* win, const wxPoint& pt)
 
     // Hack for wxNotebook case: at least in wxGTK, all pages
     // claim to be shown, so we must only deal with the selected one.
+#if wxUSE_NOTEBOOK
     if (win->IsKindOf(CLASSINFO(wxNotebook)))
     {
       wxNotebook* nb = (wxNotebook*) win;
@@ -616,6 +624,8 @@ wxWindow* wxFindWindowAtPoint(wxWindow* win, const wxPoint& pt)
            return foundWin;
       }
     }
+#endif
+
     /* Doesn't work
     // Frame case
     else if (win->IsKindOf(CLASSINFO(wxFrame)))
@@ -737,7 +747,7 @@ whereami(name)
 
         t = imagedir;
         if (!absolute_pathname(name)) {
-#if defined(DOS) || defined(__WIN32__)
+#if defined(__DOS__) || defined(__WIN32__)
             int   drive;
             char *newrbuf;
 
@@ -1071,6 +1081,33 @@ bool wxSetDetectableAutoRepeat( bool WXUNUSED(flag) )
 
 #endif // wxUSE_GUI
 
+const wxChar *wxGetInstallPrefix()
+{
+    wxString prefix;
+    
+    if ( wxGetEnv(wxT("WX_PREFIX"), &prefix) )
+        return prefix.c_str();
+    
+#ifdef wxINSTALL_PREFIX
+    return wxT(wxINSTALL_PREFIX);
+#else 
+    return wxT("");
+#endif
+}
+
+wxString wxGetDataDir()
+{
+    wxString format = wxGetInstallPrefix();
+    format <<  wxFILE_SEP_PATH
+           << wxT("share") << wxFILE_SEP_PATH
+           << wxT("wx") << wxFILE_SEP_PATH
+           << wxT("%i.%i");
+    wxString dir;
+    dir.Printf(format.c_str(), wxMAJOR_VERSION, wxMINOR_VERSION);
+    return dir;
+}
+
+
 // ----------------------------------------------------------------------------
 // network and user id functions
 // ----------------------------------------------------------------------------
@@ -1295,3 +1332,26 @@ long wxExecute(const wxString& command,
 {
     return wxDoExecuteWithCapture(command, output, &error);
 }
+
+// ----------------------------------------------------------------------------
+// wxApp::Yield() wrappers for backwards compatibility
+// ----------------------------------------------------------------------------
+
+bool wxYield()
+{
+#if wxUSE_GUI
+    return wxTheApp && wxTheApp->Yield();
+#else
+    return FALSE;
+#endif
+}
+
+bool wxYieldIfNeeded()
+{
+#if wxUSE_GUI
+    return wxTheApp && wxTheApp->Yield(TRUE);
+#else
+    return FALSE;
+#endif
+}
+