]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/filedlg.cpp
added conversion to mac native filenames from local filesystem handler
[wxWidgets.git] / src / mac / filedlg.cpp
index b0884be3478482ba6b2cd4a82246a7cf9dbab069..144cdee7963c5cf78b7710f47f71bbf7fae77562 100644 (file)
@@ -20,7 +20,7 @@
 #include "wx/filedlg.h"
 #include "wx/intl.h"
 
-#if !defined(__UNIX__)
+#ifndef __DARWIN__
   #include "PLStringFuncs.h"
 #endif
 
@@ -30,13 +30,11 @@ IMPLEMENT_CLASS(wxFileDialog, wxDialog)
 
 // begin wxmac
 
-#if defined(__UNIX__)
-  #include <Carbon/Carbon.h>
-#else
+#ifndef __DARWIN__
   #include <Navigation.h>
 #endif
 
-#ifndef __UNIX__
+#ifndef __DARWIN__
   #include "morefile.h"
   #include "moreextr.h"
   #include "fullpath.h"
@@ -416,13 +414,12 @@ static Boolean CheckFile( ConstStr255Param name , OSType type , OpenUserDataRecP
 {
          Str255                        filename ;
                PLstrcpy( filename , name ) ;
-
+    p2cstr( filename ) ;
+    wxString file(filename) ;
+    file.MakeUpper() ;
+    
                if ( data->numfilters > 0 )
                {
-               for( int j = 1 ; j <= filename[0] ; j++ )
-               {
-                       filename[j] = toupper( filename[j] ) ;
-               }
                //for ( int i = 0 ; i < data->numfilters ; ++i )
                int i = data->currentfilter ;
                if ( data->extensions[i].Right(2) == ".*" )
@@ -436,7 +433,7 @@ static Boolean CheckFile( ConstStr255Param name , OSType type , OpenUserDataRecP
         if ( extension.GetChar(0) == '*' )
           extension = extension.Mid(1) ;
 
-                       if ( filename[0] >= extension.Len() && extension == (char*) filename + 1 + filename[0] - extension.Len() )
+                       if ( file.Len() >= extension.Len() && extension == file.Right(extension.Len() ) )
                                        return true ;
                }
                return false ;
@@ -547,7 +544,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
 }
 
 
-Boolean CrossPlatformFilterCallback (
+pascal Boolean CrossPlatformFilterCallback (
     AEDesc *theItem, 
     void *info, 
     void *callBackUD, 
@@ -752,7 +749,7 @@ int wxFileDialog::ShowModal()
                  }
                }
 
-      mNavFilterUPP = NewNavObjectFilterProc( CrossPlatformFilterCallback ) ;
+      mNavFilterUPP = NewNavObjectFilterUPP( CrossPlatformFilterCallback ) ;
                        if ( m_dialogStyle & wxMULTIPLE )
                                mNavOptions.dialogOptionFlags |= kNavAllowMultipleFiles ;
                        else