]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/filename.h
don't define comparison operators taking wxStrings when wxUSE_STL == 1
[wxWidgets.git] / include / wx / filename.h
index 3d549d2b361e8f350389440e0b0359d9d625eddd..954f4f349f216e7f168bf09006c42fb903f7c2fd 100644 (file)
@@ -72,7 +72,8 @@ enum wxPathNormalize
     wxPATH_NORM_CASE     = 0x0008,  // if case insensitive => tolower
     wxPATH_NORM_ABSOLUTE = 0x0010,  // make the path absolute
     wxPATH_NORM_LONG =     0x0020,  // make the path the long form
-    wxPATH_NORM_ALL      = 0x003f
+    wxPATH_NORM_SHORTCUT = 0x0040,  // resolve the shortcut, if it is a shortcut
+    wxPATH_NORM_ALL      = 0x00ff & ~wxPATH_NORM_CASE
 };
 
 // what exactly should GetPath() return?
@@ -148,11 +149,7 @@ public:
     void Assign(const wxString& path,
                 const wxString& name,
                 const wxString& ext,
-                wxPathFormat format = wxPATH_NATIVE)
-    {
-        // empty volume
-        Assign(wxEmptyString, path, name, ext, format);
-    }
+                wxPathFormat format = wxPATH_NATIVE);
 
     void AssignDir(const wxString& dir, wxPathFormat format = wxPATH_NATIVE);
 
@@ -176,7 +173,11 @@ public:
     // file tests
 
         // is the filename valid at all?
-    bool IsOk() const { return m_dirs.size() != 0 || !m_name.IsEmpty(); }
+    bool IsOk() const
+    {
+        // we're fine if we have the path or the name or if we're a root dir
+        return m_dirs.size() != 0 || !m_name.IsEmpty() || !m_relative;
+    }
 
         // does the file with this name exists?
     bool FileExists() const;
@@ -283,6 +284,14 @@ public:
         { return Normalize(wxPATH_NORM_DOTS | wxPATH_NORM_ABSOLUTE |
                            wxPATH_NORM_TILDE, cwd, format); }
 
+#if defined(__WIN32__) && !defined(__WXWINCE__) && wxUSE_OLE
+        // if the path is a shortcut, return the target and optionally,
+        // the arguments
+    bool GetShortcutTarget(const wxString& shortcutPath,
+                           wxString& targetFilename,
+                           wxString* arguments = NULL);
+#endif
+
     // Comparison
 
         // compares with the rules of the given platforms format
@@ -325,6 +334,10 @@ public:
     // get the string of path separators for this format
     static wxString GetPathSeparators(wxPathFormat format = wxPATH_NATIVE);
 
+    // get the string of path terminators, i.e. characters which terminate the
+    // path
+    static wxString GetPathTerminators(wxPathFormat format = wxPATH_NATIVE);
+
     // get the canonical path separator for this format
     static wxChar GetPathSeparator(wxPathFormat format = wxPATH_NATIVE)
         { return GetPathSeparators(format)[0u]; }
@@ -398,6 +411,11 @@ public:
                           wxString *ext,
                           wxPathFormat format = wxPATH_NATIVE);
 
+        // split a path into volume and pure path part
+    static void SplitVolume(const wxString& fullpathWithVolume,
+                            wxString *volume,
+                            wxString *path,
+                            wxPathFormat format = wxPATH_NATIVE);
 
     // deprecated methods, don't use any more
     // --------------------------------------
@@ -410,6 +428,9 @@ public:
         { return GetPath(wxPATH_GET_SEPARATOR, format); }
 
 private:
+    // check whether this dir is valid for Append/Prepend/InsertDir()
+    static bool IsValidDirComponent(const wxString& dir);
+
     // the drive/volume/device specification (always empty for Unix)
     wxString        m_volume;