Index: unx/inc/dtint.hxx =================================================================== RCS file: /cvs/gsl/vcl/unx/inc/dtint.hxx,v retrieving revision 1.3 diff -u -r1.3 dtint.hxx --- unx/inc/dtint.hxx 20 Aug 2001 11:05:08 -0000 1.3 +++ unx/inc/dtint.hxx 22 Nov 2002 08:57:09 -0000 @@ -62,7 +62,11 @@ #define _SV_DTINT_HXX #include +#ifdef MACOSX +#include +#else #include +#endif #ifndef _LIST_HXX #include @@ -208,6 +212,20 @@ inline void* _LoadSymbol( void* pLibrary, char* pSymbolname ) { +#ifdef MACOSX + rtl_uString *pUniFuncName = NULL; + char sFuncName[ 200 ]; + void *pRet; + + rtl_string2UString( &pUniFuncName, pSymbolname, strlen(pSymbolname), RTL_TEXTENCODING_ASCII_US, OSTRING_TO_OUSTRING_CVTFLAGS ); + pRet = osl_getSymbol( pLibrary, pUniFuncName ); + rtl_uString_release( pUniFuncName ); + if( !pRet ) + { + fprintf( stderr, "dtint.hxx/_LoadSymbol(): Could not load symbol %s\n", pSymbolname ); + bSymbolLoadFailed = TRUE; + } +#else void *pRet = dlsym( pLibrary, pSymbolname ); if( ! pRet ) { @@ -215,20 +233,36 @@ pSymbolname, dlerror() ); bSymbolLoadFailed = TRUE; } +#endif return pRet; } inline void* _LoadLibrary( char* pLibname ) { +#ifdef MACOSX + rtl_uString *pLibPath = NULL; + void *pRet; + + bSymbolLoadFailed = FALSE; + rtl_string2UString( &pLibPath, pLibname, strlen(pLibname), RTL_TEXTENCODING_ASCII_US, OSTRING_TO_OUSTRING_CVTFLAGS ); + pRet = (void *)osl_loadModule( pLibPath, SAL_LOADMODULE_DEFAULT ); + rtl_uString_release( pLibPath ); + if( !pRet ) + { + fprintf( stderr, "dtint.hxx/_LoadLibrary(): Could not load %s\n", pLibname ); + bSymbolLoadFailed = TRUE; + } +#else bSymbolLoadFailed = FALSE; void *pRet = dlopen( pLibname, DLOPEN_MODE ); if( ! pRet ) { -#ifdef DEBUG + #ifdef DEBUG fprintf( stderr, "%s could not be opened: %s\n", pLibname, dlerror() ); -#endif + #endif bSymbolLoadFailed = TRUE; } +#endif return pRet; } Index: unx/inc/salogl.hxx =================================================================== RCS file: /cvs/gsl/vcl/unx/inc/salogl.hxx,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 salogl.hxx --- unx/inc/salogl.hxx 18 Sep 2000 17:05:41 -0000 1.1.1.1 +++ unx/inc/salogl.hxx 22 Nov 2002 08:57:09 -0000 @@ -90,7 +90,11 @@ #define GLX_DOUBLEBUFFER 5 #endif +#ifdef MACOSX +#include +#else #include +#endif // ----------------- // - State defines - @@ -110,7 +114,11 @@ class SalOpenGL { private: +#ifdef MACOSX + static oslModule mpGLLib; +#else static void* mpGLLib; +#endif static GLXContext maGLXContext; static ULONG mnOGLState; static Display* mpDisplay; Index: unx/source/app/soicon.cxx =================================================================== RCS file: /cvs/gsl/vcl/unx/source/app/soicon.cxx,v retrieving revision 1.7 diff -u -r1.7 soicon.cxx --- unx/source/app/soicon.cxx 18 Oct 2001 09:22:27 -0000 1.7 +++ unx/source/app/soicon.cxx 22 Nov 2002 08:57:09 -0000 @@ -61,7 +61,9 @@ #define _SV_SOICON_CXX +#ifndef MACOSX #include +#endif #include #include #include @@ -300,6 +302,7 @@ char customIconFn[256]; sprintf( customIconFn, "%s%d", VCL_CUSTOM_ICON_BASE, nIcon ); +#ifndef MACOSX static void* pAppHdl = dlopen( NULL, RTLD_LAZY ); if ( ( pCustomIcon = ( VCL_CUSTOM_ICON_FN* ) dlsym( pAppHdl, customIconFn ) ) != NULL ) @@ -309,6 +312,7 @@ pIcon->id = nIcon; pCustomIcon( pIcon->xpmdata[0], pIcon->xpmdata[1], pIcon->xpmdata[2], pIcon->xpmdata[3] ); } +#endif } DBG_ASSERT( pIcon->id, "SelectAppIconPixmap: Icon not found!"); Index: unx/source/gdi/salogl.cxx =================================================================== RCS file: /cvs/gsl/vcl/unx/source/gdi/salogl.cxx,v retrieving revision 1.5.8.1 diff -u -r1.5.8.1 salogl.cxx --- unx/source/gdi/salogl.cxx 22 Aug 2002 06:33:15 -0000 1.5.8.1 +++ unx/source/gdi/salogl.cxx 22 Nov 2002 08:57:10 -0000 @@ -115,7 +115,12 @@ XVisualInfo* SalOpenGL::mpVisualInfo = 0; BOOL SalOpenGL::mbHaveGLVisual = FALSE; +#ifdef MACOSX +oslModule SalOpenGL::mpGLLib = 0; +#else void * SalOpenGL::mpGLLib = 0; +#endif + ULONG SalOpenGL::mnOGLState = OGL_STATE_UNLOADED; GLXContext (*SalOpenGL::pCreateContext)( Display *, XVisualInfo *, GLXContext, Bool ) = 0; @@ -253,19 +258,55 @@ void* SalOpenGL::GetOGLFnc( const String& rFncName ) { +#ifdef MACOSX + rtl_uString *pUniFuncName = NULL; + void *pRet; + + if( mpGLLib ) + { + rtl_string2UString( &pUniFuncName, ByteString(rFncName, RTL_TEXTENCODING_ASCII_US).GetBuffer(), ByteString(rFncName, RTL_TEXTENCODING_ASCII_US).Len(), RTL_TEXTENCODING_ASCII_US, OSTRING_TO_OUSTRING_CVTFLAGS ); + pRet = osl_getSymbol( mpGLLib, pUniFuncName ); + rtl_uString_release( pUniFuncName ); + if( !pRet ) + { + fprintf( stderr, "salogl.cxx/GetOGLFnc(): Could not load symbol %s\n", ByteString( rFncName, RTL_TEXTENCODING_ASCII_US ).GetBuffer() ); + } + else + return( pRet ); + } +#else if( mpGLLib ) { return dlsym( mpGLLib, ByteString( rFncName, RTL_TEXTENCODING_ASCII_US ).GetBuffer() ); } +#endif return NULL; } void* SalOpenGL::GetOGLFnc( char *pFncName ) { +#ifdef MACOSX + rtl_uString *pUniFuncName = NULL; + void *pRet; + + if( mpGLLib ) + { + rtl_string2UString( &pUniFuncName, pFncName, strlen(pFncName), RTL_TEXTENCODING_ASCII_US, OSTRING_TO_OUSTRING_CVTFLAGS ); + pRet = osl_getSymbol( mpGLLib, pUniFuncName ); + rtl_uString_release( pUniFuncName ); + if( !pRet ) + { + fprintf( stderr, "salogl.cxx/GetOGLFnc(): Could not load symbol %s\n", pFncName ); + } + else + return( pRet ); + } +#else if( mpGLLib ) { return dlsym( mpGLLib, pFncName ); } +#endif return NULL; } @@ -295,7 +336,12 @@ { if( maGLXContext && pDestroyContext ) pDestroyContext( mpDisplay, maGLXContext ); + #ifdef MACOSX + // Even though MacOS X can't unload dylibs we'll call this here + osl_unloadModule( mpGLLib ); + #else dlclose( mpGLLib ); + #endif mpGLLib = 0; pCreateContext = 0; @@ -313,9 +359,19 @@ { if( ! mpGLLib ) { +#ifdef MACOSX + rtl_uString *pLibPath = NULL; +#endif + ByteString sNoGL( getenv( "SAL_NOOPENGL" ) ); if( sNoGL.ToLowerAscii() == "true" ) return FALSE; +#ifdef MACOSX + rtl_string2UString( &pLibPath, OGL_LIBNAME, strlen(OGL_LIBNAME), RTL_TEXTENCODING_ASCII_US, OSTRING_TO_OUSTRING_CVTFLAGS ); + mpGLLib = osl_loadModule( pLibPath, SAL_LOADMODULE_DEFAULT ); + rtl_uString_release( pLibPath ); +#else mpGLLib = dlopen( OGL_LIBNAME, DLOPEN_MODE ); +#endif } if( ! mpGLLib ) { Index: unx/source/gdi/salprn.cxx =================================================================== RCS file: /cvs/gsl/vcl/unx/source/gdi/Attic/salprn.cxx,v retrieving revision 1.9.16.1.2.2 diff -u -r1.9.16.1.2.2 salprn.cxx --- unx/source/gdi/salprn.cxx 1 Sep 2002 20:09:02 -0000 1.9.16.1.2.2 +++ unx/source/gdi/salprn.cxx 22 Nov 2002 08:57:11 -0000 @@ -1049,7 +1049,9 @@ } // ----------------------------------------------------------------------- +#ifndef MACOSX #include +#endif #define DLOPEN_MODE (RTLD_GLOBAL | RTLD_LAZY) #include BOOL SalInfoPrinter::Setup( SalFrame* pFrame, ImplJobSetup* pJobSetup ) Index: unx/source/gdi/salprnpsp.cxx =================================================================== RCS file: /cvs/gsl/vcl/unx/source/gdi/salprnpsp.cxx,v retrieving revision 1.15.2.1.2.2 diff -u -r1.15.2.1.2.2 salprnpsp.cxx --- unx/source/gdi/salprnpsp.cxx 1 Sep 2002 20:09:06 -0000 1.15.2.1.2.2 +++ unx/source/gdi/salprnpsp.cxx 22 Nov 2002 08:57:11 -0000 @@ -123,7 +123,9 @@ #else #define DLOPEN_MODE (RTLD_GLOBAL | RTLD_LAZY) #endif +#ifndef MACOSX #include +#endif #include static void* driverLib = NULL; Index: util/makefile.mk =================================================================== RCS file: /cvs/gsl/vcl/util/makefile.mk,v retrieving revision 1.33.6.1.2.1 diff -u -r1.33.6.1.2.1 makefile.mk --- util/makefile.mk 22 Aug 2002 06:33:21 -0000 1.33.6.1.2.1 +++ util/makefile.mk 22 Nov 2002 08:57:12 -0000 @@ -269,7 +269,7 @@ .IF "$(GUI)"=="UNX" .IF "$(OS)"=="MACOSX" -SHL1STDLIBS += -ldl -lstdc++ -lstlport_gcc +SHL1STDLIBS += -lstdc++ -lstlport_gcc .ENDIF .IF "$(GUIBASE)"=="aqua"