]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/filefn.h
Correct the drawing of check tools with a drop down button in wxAuiToolBar.
[wxWidgets.git] / include / wx / filefn.h
index c5bdf72ef441ea63f6fc91b22efc7cd8eafc5ff3..79d20a0d1b8a357f026fa4ffacb9effb46efdedf 100644 (file)
@@ -134,6 +134,51 @@ enum wxFileKind
   wxFILE_KIND_PIPE      // a pipe
 };
 
+// we redefine these constants here because S_IREAD &c are _not_ standard
+// however, we do assume that the values correspond to the Unix umask bits
+enum wxPosixPermissions
+{
+    // standard Posix names for these permission flags:
+    wxS_IRUSR = 00400,
+    wxS_IWUSR = 00200,
+    wxS_IXUSR = 00100,
+
+    wxS_IRGRP = 00040,
+    wxS_IWGRP = 00020,
+    wxS_IXGRP = 00010,
+
+    wxS_IROTH = 00004,
+    wxS_IWOTH = 00002,
+    wxS_IXOTH = 00001,
+
+    // longer but more readable synonyms for the constants above:
+    wxPOSIX_USER_READ = wxS_IRUSR,
+    wxPOSIX_USER_WRITE = wxS_IWUSR,
+    wxPOSIX_USER_EXECUTE = wxS_IXUSR,
+
+    wxPOSIX_GROUP_READ = wxS_IRGRP,
+    wxPOSIX_GROUP_WRITE = wxS_IWGRP,
+    wxPOSIX_GROUP_EXECUTE = wxS_IXGRP,
+
+    wxPOSIX_OTHERS_READ = wxS_IROTH,
+    wxPOSIX_OTHERS_WRITE = wxS_IWOTH,
+    wxPOSIX_OTHERS_EXECUTE = wxS_IXOTH,
+
+    // default mode for the new files: allow reading/writing them to everybody but
+    // the effective file mode will be set after anding this value with umask and
+    // so won't include wxS_IW{GRP,OTH} for the default 022 umask value
+    wxS_DEFAULT = (wxPOSIX_USER_READ | wxPOSIX_USER_WRITE | \
+                   wxPOSIX_GROUP_READ | wxPOSIX_GROUP_WRITE | \
+                   wxPOSIX_OTHERS_READ | wxPOSIX_OTHERS_WRITE),
+
+    // default mode for the new directories (see wxFileName::Mkdir): allow
+    // reading/writing/executing them to everybody, but just like wxS_DEFAULT
+    // the effective directory mode will be set after anding this value with umask
+    wxS_DIR_DEFAULT = (wxPOSIX_USER_READ | wxPOSIX_USER_WRITE | wxPOSIX_USER_EXECUTE | \
+                       wxPOSIX_GROUP_READ | wxPOSIX_GROUP_WRITE | wxPOSIX_GROUP_EXECUTE | \
+                       wxPOSIX_OTHERS_READ | wxPOSIX_OTHERS_WRITE | wxPOSIX_OTHERS_EXECUTE)
+};
+
 // ----------------------------------------------------------------------------
 // declare our versions of low level file functions: some compilers prepend
 // underscores to the usual names, some also have Unicode versions of them
@@ -143,7 +188,7 @@ enum wxFileKind
 // Implemented in filefnwce.cpp
 #if defined( __WXWINCE__)
     typedef __int64 wxFileOffset;
-    #define wxFileOffsetFmtSpec _("I64")
+    #define wxFileOffsetFmtSpec wxT("I64")
     WXDLLIMPEXP_BASE int wxCRT_Open(const wxChar *filename, int oflag, int WXUNUSED(pmode));
     WXDLLIMPEXP_BASE int wxCRT_Access(const wxChar *name, int WXUNUSED(how));
     WXDLLIMPEXP_BASE int wxClose(int fd);
@@ -190,6 +235,10 @@ enum wxFileKind
         #define wxHAS_HUGE_STDIO_FILES
         #define wxFseek _fseeki64
         #define wxFtell _ftelli64
+    #elif wxCHECK_MINGW32_VERSION(3, 5) // mingw-runtime version (not gcc)
+        #define wxHAS_HUGE_STDIO_FILES
+        #define wxFseek fseeko64
+        #define wxFtell ftello64
     #endif
 
     // other Windows compilers (DMC, Watcom, Metrowerks and Borland) don't have
@@ -353,7 +402,7 @@ enum wxFileKind
 
     // finally the default char-type versions
     #if wxUSE_UNICODE
-        #if wxUSE_UNICODE_MSLU || defined(__STRICT_ANSI__)
+        #if wxUSE_UNICODE_MSLU || defined(__WX_STRICT_ANSI_GCC__)
             // implement the missing file functions in Win9x ourselves
             WXDLLIMPEXP_BASE int wxMSLU__wopen(const wxChar *name,
                                                int flags, int mode);
@@ -529,7 +578,8 @@ inline int wxLstat(const wxString& path, wxStructStat *buf)
     { return wxCRT_Lstat(path.fn_str(), buf); }
 inline int wxRmDir(const wxString& path)
     { return wxCRT_RmDir(path.fn_str()); }
-#if defined(__WINDOWS__) || (defined(__OS2__) && defined(__WATCOMC__))
+#if (defined(__WINDOWS__) && !defined(__CYGWIN__)) \
+        || (defined(__OS2__) && defined(__WATCOMC__))
 inline int wxMkDir(const wxString& path, mode_t WXUNUSED(mode) = 0)
     { return wxCRT_MkDir(path.fn_str()); }
 #else
@@ -662,7 +712,7 @@ WXDLLIMPEXP_BASE wxString wxGetCwd();
 WXDLLIMPEXP_BASE bool wxSetWorkingDirectory(const wxString& d);
 
 // Make directory
-WXDLLIMPEXP_BASE bool wxMkdir(const wxString& dir, int perm = 0777);
+WXDLLIMPEXP_BASE bool wxMkdir(const wxString& dir, int perm = wxS_DIR_DEFAULT);
 
 // Remove directory. Flags reserved for future use.
 WXDLLIMPEXP_BASE bool wxRmdir(const wxString& dir, int flags = 0);