#ifdef __DARWIN__
# include <CoreServices/CoreServices.h>
-# if defined(WXMAKINGDLL)
+# if defined(WXMAKINGDLL_CORE)
# include <mach-o/dyld.h>
# endif
#else
#endif
-#if defined(WXMAKINGDLL) && !defined(__DARWIN__)
+#if defined(WXMAKINGDLL_CORE) && !defined(__DARWIN__)
// we know it's there ;-)
WXIMPORT char std::__throws_bad_alloc ;
#endif
SetEventMask( everyEvent ) ;
UMAShowWatchCursor() ;
-#if defined(WXMAKINGDLL) && defined(__DARWIN__)
+#if defined(WXMAKINGDLL_CORE) && defined(__DARWIN__)
// open shared library resources from here since we don't have
// __wxinitialize in Mach-O shared libraries
wxStAppResource::OpenSharedLibraryResource(NULL);
# endif
#endif
-#if defined(WXMAKINGDLL) && defined(__DARWIN__)
+#if defined(WXMAKINGDLL_CORE) && defined(__DARWIN__)
// close shared library resources from here since we don't have
// __wxterminate in Mach-O shared libraries
wxStAppResource::CloseSharedLibraryResource();
// need to be able to find it with NSLookupAndBindSymbol
short gSharedLibraryResource = kResFileNotOpened ;
-#if defined(WXMAKINGDLL) && defined(__DARWIN__)
+#if defined(WXMAKINGDLL_CORE) && defined(__DARWIN__)
CFBundleRef gSharedLibraryBundle = NULL;
-#endif /* WXMAKINGDLL && __DARWIN__ */
+#endif /* WXMAKINGDLL_CORE && __DARWIN__ */
wxStAppResource::wxStAppResource()
{
{
gSharedLibraryResource = kResFileNotOpened;
-#ifdef WXMAKINGDLL
+#ifdef WXMAKINGDLL_CORE
if ( initBlock != NULL ) {
const CFragInitBlock *theInitBlock = (const CFragInitBlock *)initBlock;
FSSpec *fileSpec = NULL;
else {
// wxWindows is a simple dynamic shared library
// load the resources from the data fork of a separate resource file
- char *theResPath;
- char *theName;
- char *theExt;
+ wxString theResPath;
+ wxString theName;
FSRef theResRef;
OSErr theErr = noErr;
#endif
// allocate copy to replace .dylib.* extension with .rsrc
- theResPath = strdup(theLibPath);
- if (theResPath != NULL) {
- theName = strrchr(theResPath, '/');
- if (theName == NULL) {
- // no directory elements in path
- theName = theResPath;
- }
- // find ".dylib" shared library extension
- theExt = strstr(theName, ".dylib");
- // overwrite extension with ".rsrc"
- strcpy(theExt, ".rsrc");
+ if (theLibPath != NULL) {
+ theResPath = theLibPath;
+ // replace '_core' with '' in case of multi-lib build
+ theResPath.Replace(wxT("_core"), wxEmptyString);
+ // replace ".dylib" shared library extension with ".rsrc"
+ theResPath.Replace(wxT(".dylib"), wxT(".rsrc"));
+ // Find the begining of the filename
+ theName = theResPath.AfterLast('/');
#if 0
wxLogDebug( wxT("wxMac resources file name is '%s'"),
- theResPath );
+ theResPath.mb_str() );
#endif
- theErr = FSPathMakeRef((UInt8 *) theResPath, &theResRef, false);
+ theErr = FSPathMakeRef((UInt8 *) theResPath.mb_str(), &theResRef, false);
if (theErr != noErr) {
// try in current directory (using name only)
- theErr = FSPathMakeRef((UInt8 *) theName, &theResRef, false);
+ theErr = FSPathMakeRef((UInt8 *) theName.mb_str(), &theResRef, false);
}
// open the resource file
#ifdef __WXDEBUG__
fprintf(stderr,
wxT("unable to open wxMac resource file '%s'\n"),
- theResPath );
+ theResPath.mb_str() );
#endif // __WXDEBUG__
}
- // free duplicated resource file path
- free(theResPath);
}
}
#endif /* __DARWIN__ */
}
-#endif /* WXMAKINGDLL */
+#endif /* WXMAKINGDLL_CORE */
}
void wxStAppResource::CloseSharedLibraryResource()
{
-#ifdef WXMAKINGDLL
+#ifdef WXMAKINGDLL_CORE
// Close the shared library resource file
if (gSharedLibraryResource != kResFileNotOpened) {
#ifdef __DARWIN__
}
gSharedLibraryResource = kResFileNotOpened;
}
-#endif /* WXMAKINGDLL */
+#endif /* WXMAKINGDLL_CORE */
}
-#if defined(WXMAKINGDLL) && !defined(__DARWIN__)
+#if defined(WXMAKINGDLL_CORE) && !defined(__DARWIN__)
// for shared libraries we have to manually get the correct resource
// ref num upon initializing and releasing when terminating, therefore
__terminate() ;
}
-#endif /* WXMAKINGDLL && !__DARWIN__ */
+#endif /* WXMAKINGDLL_CORE && !__DARWIN__ */
#if TARGET_CARBON
void wxApp::OnIdle(wxIdleEvent& event)
{
wxAppBase::OnIdle(event);
-
+
// If they are pending events, we must process them: pending events are
// either events to the threads other than main or events posted with
// wxPostEvent() functions
#if TARGET_CARBON
#if 0 // having problems right now with that
if (!win->HasFlag(wxSTAY_ON_TOP))
-#endif
+#endif
#endif
win->MacActivate( ((EventRecord*) MacGetCurrentEvent())->when , false ) ;
#ifdef __DARWIN__
# include <CoreServices/CoreServices.h>
-# if defined(WXMAKINGDLL)
+# if defined(WXMAKINGDLL_CORE)
# include <mach-o/dyld.h>
# endif
#else
#endif
-#if defined(WXMAKINGDLL) && !defined(__DARWIN__)
+#if defined(WXMAKINGDLL_CORE) && !defined(__DARWIN__)
// we know it's there ;-)
WXIMPORT char std::__throws_bad_alloc ;
#endif
SetEventMask( everyEvent ) ;
UMAShowWatchCursor() ;
-#if defined(WXMAKINGDLL) && defined(__DARWIN__)
+#if defined(WXMAKINGDLL_CORE) && defined(__DARWIN__)
// open shared library resources from here since we don't have
// __wxinitialize in Mach-O shared libraries
wxStAppResource::OpenSharedLibraryResource(NULL);
# endif
#endif
-#if defined(WXMAKINGDLL) && defined(__DARWIN__)
+#if defined(WXMAKINGDLL_CORE) && defined(__DARWIN__)
// close shared library resources from here since we don't have
// __wxterminate in Mach-O shared libraries
wxStAppResource::CloseSharedLibraryResource();
// need to be able to find it with NSLookupAndBindSymbol
short gSharedLibraryResource = kResFileNotOpened ;
-#if defined(WXMAKINGDLL) && defined(__DARWIN__)
+#if defined(WXMAKINGDLL_CORE) && defined(__DARWIN__)
CFBundleRef gSharedLibraryBundle = NULL;
-#endif /* WXMAKINGDLL && __DARWIN__ */
+#endif /* WXMAKINGDLL_CORE && __DARWIN__ */
wxStAppResource::wxStAppResource()
{
{
gSharedLibraryResource = kResFileNotOpened;
-#ifdef WXMAKINGDLL
+#ifdef WXMAKINGDLL_CORE
if ( initBlock != NULL ) {
const CFragInitBlock *theInitBlock = (const CFragInitBlock *)initBlock;
FSSpec *fileSpec = NULL;
else {
// wxWindows is a simple dynamic shared library
// load the resources from the data fork of a separate resource file
- char *theResPath;
- char *theName;
- char *theExt;
+ wxString theResPath;
+ wxString theName;
FSRef theResRef;
OSErr theErr = noErr;
#endif
// allocate copy to replace .dylib.* extension with .rsrc
- theResPath = strdup(theLibPath);
- if (theResPath != NULL) {
- theName = strrchr(theResPath, '/');
- if (theName == NULL) {
- // no directory elements in path
- theName = theResPath;
- }
- // find ".dylib" shared library extension
- theExt = strstr(theName, ".dylib");
- // overwrite extension with ".rsrc"
- strcpy(theExt, ".rsrc");
+ if (theLibPath != NULL) {
+ theResPath = theLibPath;
+ // replace '_core' with '' in case of multi-lib build
+ theResPath.Replace(wxT("_core"), wxEmptyString);
+ // replace ".dylib" shared library extension with ".rsrc"
+ theResPath.Replace(wxT(".dylib"), wxT(".rsrc"));
+ // Find the begining of the filename
+ theName = theResPath.AfterLast('/');
#if 0
wxLogDebug( wxT("wxMac resources file name is '%s'"),
- theResPath );
+ theResPath.mb_str() );
#endif
- theErr = FSPathMakeRef((UInt8 *) theResPath, &theResRef, false);
+ theErr = FSPathMakeRef((UInt8 *) theResPath.mb_str(), &theResRef, false);
if (theErr != noErr) {
// try in current directory (using name only)
- theErr = FSPathMakeRef((UInt8 *) theName, &theResRef, false);
+ theErr = FSPathMakeRef((UInt8 *) theName.mb_str(), &theResRef, false);
}
// open the resource file
#ifdef __WXDEBUG__
fprintf(stderr,
wxT("unable to open wxMac resource file '%s'\n"),
- theResPath );
+ theResPath.mb_str() );
#endif // __WXDEBUG__
}
- // free duplicated resource file path
- free(theResPath);
}
}
#endif /* __DARWIN__ */
}
-#endif /* WXMAKINGDLL */
+#endif /* WXMAKINGDLL_CORE */
}
void wxStAppResource::CloseSharedLibraryResource()
{
-#ifdef WXMAKINGDLL
+#ifdef WXMAKINGDLL_CORE
// Close the shared library resource file
if (gSharedLibraryResource != kResFileNotOpened) {
#ifdef __DARWIN__
}
gSharedLibraryResource = kResFileNotOpened;
}
-#endif /* WXMAKINGDLL */
+#endif /* WXMAKINGDLL_CORE */
}
-#if defined(WXMAKINGDLL) && !defined(__DARWIN__)
+#if defined(WXMAKINGDLL_CORE) && !defined(__DARWIN__)
// for shared libraries we have to manually get the correct resource
// ref num upon initializing and releasing when terminating, therefore
__terminate() ;
}
-#endif /* WXMAKINGDLL && !__DARWIN__ */
+#endif /* WXMAKINGDLL_CORE && !__DARWIN__ */
#if TARGET_CARBON
void wxApp::OnIdle(wxIdleEvent& event)
{
wxAppBase::OnIdle(event);
-
+
// If they are pending events, we must process them: pending events are
// either events to the threads other than main or events posted with
// wxPostEvent() functions
#if TARGET_CARBON
#if 0 // having problems right now with that
if (!win->HasFlag(wxSTAY_ON_TOP))
-#endif
+#endif
#endif
win->MacActivate( ((EventRecord*) MacGetCurrentEvent())->when , false ) ;