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:
@@ -1990,22 +1990,22 @@ WX_DEFINE_EXPORTED_OBJARRAY(MacDefaultExtensionArray) ;
|
|||||||
|
|
||||||
MacDefaultExtensionArray gMacDefaultExtensions ;
|
MacDefaultExtensionArray gMacDefaultExtensions ;
|
||||||
|
|
||||||
|
// load the default extensions
|
||||||
|
MacDefaultExtensionRecord gDefaults[] =
|
||||||
|
{
|
||||||
|
MacDefaultExtensionRecord( wxT("txt") , 'TEXT' , 'ttxt' ) ,
|
||||||
|
MacDefaultExtensionRecord( wxT("tif") , 'TIFF' , '****' ) ,
|
||||||
|
MacDefaultExtensionRecord( wxT("jpg") , 'JPEG' , '****' ) ,
|
||||||
|
} ;
|
||||||
|
|
||||||
static void MacEnsureDefaultExtensionsLoaded()
|
static void MacEnsureDefaultExtensionsLoaded()
|
||||||
{
|
{
|
||||||
if ( !gMacDefaultExtensionsInited )
|
if ( !gMacDefaultExtensionsInited )
|
||||||
{
|
{
|
||||||
|
|
||||||
// load the default extensions
|
|
||||||
MacDefaultExtensionRecord defaults[1] =
|
|
||||||
{
|
|
||||||
MacDefaultExtensionRecord( wxT("txt") , 'TEXT' , 'ttxt' ) ,
|
|
||||||
|
|
||||||
} ;
|
|
||||||
// we could load the pc exchange prefs here too
|
// we could load the pc exchange prefs here too
|
||||||
|
for ( size_t i = 0 ; i < WXSIZEOF( gDefaults ) ; ++i )
|
||||||
for ( size_t i = 0 ; i < WXSIZEOF( defaults ) ; ++i )
|
|
||||||
{
|
{
|
||||||
gMacDefaultExtensions.Add( defaults[i] ) ;
|
gMacDefaultExtensions.Add( gDefaults[i] ) ;
|
||||||
}
|
}
|
||||||
gMacDefaultExtensionsInited = true ;
|
gMacDefaultExtensionsInited = true ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
#include "wx/filedlg.h"
|
#include "wx/filedlg.h"
|
||||||
#include "wx/intl.h"
|
#include "wx/intl.h"
|
||||||
#include "wx/tokenzr.h"
|
#include "wx/tokenzr.h"
|
||||||
|
#include "wx/filename.h"
|
||||||
|
|
||||||
#ifndef __DARWIN__
|
#ifndef __DARWIN__
|
||||||
#include "PLStringFuncs.h"
|
#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 )
|
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();
|
const size_t extCount = myData->extensions.GetCount();
|
||||||
for ( size_t i = 0 ; i < extCount; i++ )
|
for ( size_t i = 0 ; i < extCount; i++ )
|
||||||
{
|
{
|
||||||
int j ;
|
wxUint32 fileType;
|
||||||
for ( j = 0 ; gfilters[j] ; j++ )
|
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] )
|
extension = extension.Mid(1); // Remove leading .
|
||||||
{
|
|
||||||
myData->filtermactypes.Add( gfiltersmac[j] ) ;
|
|
||||||
break ;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
#include "wx/filedlg.h"
|
#include "wx/filedlg.h"
|
||||||
#include "wx/intl.h"
|
#include "wx/intl.h"
|
||||||
#include "wx/tokenzr.h"
|
#include "wx/tokenzr.h"
|
||||||
|
#include "wx/filename.h"
|
||||||
|
|
||||||
#ifndef __DARWIN__
|
#ifndef __DARWIN__
|
||||||
#include "PLStringFuncs.h"
|
#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 )
|
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();
|
const size_t extCount = myData->extensions.GetCount();
|
||||||
for ( size_t i = 0 ; i < extCount; i++ )
|
for ( size_t i = 0 ; i < extCount; i++ )
|
||||||
{
|
{
|
||||||
int j ;
|
wxUint32 fileType;
|
||||||
for ( j = 0 ; gfilters[j] ; j++ )
|
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] )
|
extension = extension.Mid(1); // Remove leading .
|
||||||
{
|
|
||||||
myData->filtermactypes.Add( gfiltersmac[j] ) ;
|
|
||||||
break ;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user