]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/filename.h
fix ifdef - its libpng not pnglib :)
[wxWidgets.git] / include / wx / filename.h
index 401162c336c112e28a3f73eaed7eed5826f50e9f..e43d0b3acbb480bc3af1e2af3e2f4fafa2fcf1b0 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef   _WX_FILENAME_H_
 #define   _WX_FILENAME_H_
 
-#if defined(__GNUG__) && !defined(__APPLE__)
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma interface "filename.h"
 #endif
 
@@ -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?
@@ -176,7 +177,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 +288,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 +338,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]; }
@@ -359,7 +376,8 @@ public:
     const wxArrayString& GetDirs() const        { return m_dirs; }
 
     // flags are combination of wxPATH_GET_XXX flags
-    wxString GetPath(int flags = 0, wxPathFormat format = wxPATH_NATIVE) const;
+    wxString GetPath(int flags = wxPATH_GET_VOLUME,
+                     wxPathFormat format = wxPATH_NATIVE) const;
 
     // Replace current path with this one
     void SetPath( const wxString &path, wxPathFormat format = wxPATH_NATIVE );
@@ -397,6 +415,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
     // --------------------------------------
@@ -409,6 +432,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;