extensions management unified

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25370 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2004-01-25 15:12:02 +00:00
parent 66b7ea46c7
commit 5974c3cf06
3 changed files with 49 additions and 69 deletions

View File

@@ -1990,22 +1990,22 @@ WX_DEFINE_EXPORTED_OBJARRAY(MacDefaultExtensionArray) ;
MacDefaultExtensionArray gMacDefaultExtensions ;
// load the default extensions
MacDefaultExtensionRecord gDefaults[] =
{
MacDefaultExtensionRecord( wxT("txt") , 'TEXT' , 'ttxt' ) ,
MacDefaultExtensionRecord( wxT("tif") , 'TIFF' , '****' ) ,
MacDefaultExtensionRecord( wxT("jpg") , 'JPEG' , '****' ) ,
} ;
static void MacEnsureDefaultExtensionsLoaded()
{
if ( !gMacDefaultExtensionsInited )
{
// load the default extensions
MacDefaultExtensionRecord defaults[1] =
{
MacDefaultExtensionRecord( wxT("txt") , 'TEXT' , 'ttxt' ) ,
} ;
// we could load the pc exchange prefs here too
for ( size_t i = 0 ; i < WXSIZEOF( defaults ) ; ++i )
for ( size_t i = 0 ; i < WXSIZEOF( gDefaults ) ; ++i )
{
gMacDefaultExtensions.Add( defaults[i] ) ;
gMacDefaultExtensions.Add( gDefaults[i] ) ;
}
gMacDefaultExtensionsInited = true ;
}

View File

@@ -20,6 +20,7 @@
#include "wx/filedlg.h"
#include "wx/intl.h"
#include "wx/tokenzr.h"
#include "wx/filename.h"
#ifndef __DARWIN__
#include "PLStringFuncs.h"
@@ -152,24 +153,6 @@ NavEventProc(
}
}
const wxChar * gfilters[] =
{
wxT("*.TXT") ,
wxT("*.TIF") ,
wxT("*.JPG") ,
NULL
} ;
OSType gfiltersmac[] =
{
'TEXT' ,
'TIFF' ,
'JPEG' ,
'****'
} ;
void MakeUserDataRec(OpenUserDataRec *myData , const wxString& filter )
{
@@ -218,18 +201,25 @@ void MakeUserDataRec(OpenUserDataRec *myData , const wxString& filter )
const size_t extCount = myData->extensions.GetCount();
for ( size_t i = 0 ; i < extCount; i++ )
{
int j ;
for ( j = 0 ; gfilters[j] ; j++ )
wxUint32 fileType;
wxUint32 creator;
wxString extension = myData->extensions[i];
if (extension.GetChar(0) == '*')
extension = extension.Mid(1); // Remove leading *
if (extension.GetChar(0) == '.')
{
if ( myData->extensions[i] == gfilters[j] )
{
myData->filtermactypes.Add( gfiltersmac[j] ) ;
break ;
extension = extension.Mid(1); // Remove leading .
}
}
if( gfilters[j] == NULL )
if (wxFileName::MacFindDefaultTypeAndCreator( extension, &fileType, &creator ))
{
myData->filtermactypes.Add( '****' ) ;
myData->filtermactypes.Add( (OSType)fileType );
}
else
{
myData->filtermactypes.Add( '****' ) ; // We'll fail safe if it's not recognized
}
}
}

View File

@@ -20,6 +20,7 @@
#include "wx/filedlg.h"
#include "wx/intl.h"
#include "wx/tokenzr.h"
#include "wx/filename.h"
#ifndef __DARWIN__
#include "PLStringFuncs.h"
@@ -152,24 +153,6 @@ NavEventProc(
}
}
const wxChar * gfilters[] =
{
wxT("*.TXT") ,
wxT("*.TIF") ,
wxT("*.JPG") ,
NULL
} ;
OSType gfiltersmac[] =
{
'TEXT' ,
'TIFF' ,
'JPEG' ,
'****'
} ;
void MakeUserDataRec(OpenUserDataRec *myData , const wxString& filter )
{
@@ -218,18 +201,25 @@ void MakeUserDataRec(OpenUserDataRec *myData , const wxString& filter )
const size_t extCount = myData->extensions.GetCount();
for ( size_t i = 0 ; i < extCount; i++ )
{
int j ;
for ( j = 0 ; gfilters[j] ; j++ )
wxUint32 fileType;
wxUint32 creator;
wxString extension = myData->extensions[i];
if (extension.GetChar(0) == '*')
extension = extension.Mid(1); // Remove leading *
if (extension.GetChar(0) == '.')
{
if ( myData->extensions[i] == gfilters[j] )
{
myData->filtermactypes.Add( gfiltersmac[j] ) ;
break ;
extension = extension.Mid(1); // Remove leading .
}
}
if( gfilters[j] == NULL )
if (wxFileName::MacFindDefaultTypeAndCreator( extension, &fileType, &creator ))
{
myData->filtermactypes.Add( '****' ) ;
myData->filtermactypes.Add( (OSType)fileType );
}
else
{
myData->filtermactypes.Add( '****' ) ; // We'll fail safe if it's not recognized
}
}
}