You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ms...@apache.org on 2025/12/10 16:21:11 UTC

(openoffice) 01/01: New design for table selection

This is an automated email from the ASF dual-hosted git repository.

mseidel pushed a commit to branch Pilot-Pirx-table
in repository https://gitbox.apache.org/repos/asf/openoffice.git

commit a10835d34fc89dbc99d6c22cd8f009abcaf6d70a
Author: Matthias Seidel <ms...@apache.org>
AuthorDate: Wed Dec 10 17:21:04 2025 +0100

    New design for table selection
---
 main/vcl/aqua/source/app/saldata.cxx | 441 +++++++++++++++++------------------
 1 file changed, 220 insertions(+), 221 deletions(-)

diff --git a/main/vcl/aqua/source/app/saldata.cxx b/main/vcl/aqua/source/app/saldata.cxx
index 95db94022b..5f2fedc5f5 100644
--- a/main/vcl/aqua/source/app/saldata.cxx
+++ b/main/vcl/aqua/source/app/saldata.cxx
@@ -19,8 +19,6 @@
  *
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_vcl.hxx"
 
@@ -34,257 +32,258 @@ oslThreadKey SalData::s_aAutoReleaseKey = 0;
 
 static void SAL_CALL releasePool( void* pPool )
 {
-    if( pPool )
-        [(NSAutoreleasePool*)pPool release];
+	if( pPool )
+		[(NSAutoreleasePool*)pPool release];
 }
 
 SalData::SalData()
 :
-    mpTimerProc( NULL ),
-    mpFirstInstance( NULL ),
-    mpFirstObject( NULL ),
-    mpFirstVD( NULL ),
-    mpFirstPrinter( NULL ),
-    mpFontList( NULL ),
-    mpStatusItem( nil ),
-    mxRGBSpace( CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB) ),
-    mxGraySpace( CGColorSpaceCreateWithName(kCGColorSpaceGenericGray) ),
-    mxP50Space( NULL ),
-    mxP50Pattern( NULL ),
-    maCursors( POINTER_COUNT, INVALID_CURSOR_PTR ),
-    mbIsScrollbarDoubleMax( false ),
-    mnSystemVersion( OSX_VER_LION ),
-    mpAppleRemoteMainController( NULL ),
-    mpDockIconClickHandler( nil ),
-    mnDPIX( 0 ),
-    mnDPIY( 0 )
+	mpTimerProc( NULL ),
+	mpFirstInstance( NULL ),
+	mpFirstObject( NULL ),
+	mpFirstVD( NULL ),
+	mpFirstPrinter( NULL ),
+	mpFontList( NULL ),
+	mpStatusItem( nil ),
+	mxRGBSpace( CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB) ),
+	mxGraySpace( CGColorSpaceCreateWithName(kCGColorSpaceGenericGray) ),
+	mxP50Space( NULL ),
+	mxP50Pattern( NULL ),
+	maCursors( POINTER_COUNT, INVALID_CURSOR_PTR ),
+	mbIsScrollbarDoubleMax( false ),
+	mnSystemVersion( OSX_VER_LION ),
+	mpAppleRemoteMainController( NULL ),
+	mpDockIconClickHandler( nil ),
+	mnDPIX( 0 ),
+	mnDPIY( 0 )
 {
-    if( s_aAutoReleaseKey == 0 )
-        s_aAutoReleaseKey = osl_createThreadKey( releasePool );
+	if( s_aAutoReleaseKey == 0 )
+		s_aAutoReleaseKey = osl_createThreadKey( releasePool );
 }
 
 SalData::~SalData()
 {
-    CGPatternRelease( mxP50Pattern );
-    CGColorSpaceRelease( mxP50Space );
-    CGColorSpaceRelease( mxRGBSpace );
-    CGColorSpaceRelease( mxGraySpace );
-    for( unsigned int i = 0; i < maCursors.size(); i++ )
-    {
-        NSCursor* pCurs = maCursors[i];
-        if( pCurs && pCurs != INVALID_CURSOR_PTR )
-            [pCurs release];
-    }
-    if( s_aAutoReleaseKey )
-    {
-        // release the last pool
-        NSAutoreleasePool* pPool = nil;
-        pPool = reinterpret_cast<NSAutoreleasePool*>( osl_getThreadKeyData( s_aAutoReleaseKey ) );
-        if( pPool )
-        {
-            osl_setThreadKeyData( s_aAutoReleaseKey, NULL );
-            [pPool release];
-        }
+	CGPatternRelease( mxP50Pattern );
+	CGColorSpaceRelease( mxP50Space );
+	CGColorSpaceRelease( mxRGBSpace );
+	CGColorSpaceRelease( mxGraySpace );
+	for( unsigned int i = 0; i < maCursors.size(); i++ )
+	{
+		NSCursor* pCurs = maCursors[i];
+		if( pCurs && pCurs != INVALID_CURSOR_PTR )
+			[pCurs release];
+	}
+	if( s_aAutoReleaseKey )
+	{
+		// release the last pool
+		NSAutoreleasePool* pPool = nil;
+		pPool = reinterpret_cast<NSAutoreleasePool*>( osl_getThreadKeyData( s_aAutoReleaseKey ) );
+		if( pPool )
+		{
+			osl_setThreadKeyData( s_aAutoReleaseKey, NULL );
+			[pPool release];
+		}
 
-        osl_destroyThreadKey( s_aAutoReleaseKey );
-        s_aAutoReleaseKey = 0;
-    }
-    if ( mpAppleRemoteMainController )
-        [mpAppleRemoteMainController release];
+		osl_destroyThreadKey( s_aAutoReleaseKey );
+		s_aAutoReleaseKey = 0;
+	}
+	if ( mpAppleRemoteMainController )
+		[mpAppleRemoteMainController release];
 }
 
 void SalData::ensureThreadAutoreleasePool()
 {
-    NSAutoreleasePool* pPool = nil;
-    if( s_aAutoReleaseKey )
-    {
-        pPool = reinterpret_cast<NSAutoreleasePool*>( osl_getThreadKeyData( s_aAutoReleaseKey ) );
-        if( ! pPool )
-        {
-            pPool = [[NSAutoreleasePool alloc] init];
-            osl_setThreadKeyData( s_aAutoReleaseKey, pPool );
-        }
-    }
-    else
-    {
-        DBG_ERROR( "no autorelease key" );
-    }
+	NSAutoreleasePool* pPool = nil;
+	if( s_aAutoReleaseKey )
+	{
+		pPool = reinterpret_cast<NSAutoreleasePool*>( osl_getThreadKeyData( s_aAutoReleaseKey ) );
+		if( ! pPool )
+		{
+			pPool = [[NSAutoreleasePool alloc] init];
+			osl_setThreadKeyData( s_aAutoReleaseKey, pPool );
+		}
+	}
+	else
+	{
+		DBG_ERROR( "no autorelease key" );
+	}
 }
 
 void SalData::drainThreadAutoreleasePool()
 {
-    NSAutoreleasePool* pPool = nil;
-    if( s_aAutoReleaseKey )
-    {
-        pPool = reinterpret_cast<NSAutoreleasePool*>( osl_getThreadKeyData( s_aAutoReleaseKey ) );
-        if( pPool )
-        {
-            // osl_setThreadKeyData( s_aAutoReleaseKey, NULL );
-            // [pPool release];
-            [pPool drain];
-        }
-        else
-        {
-            pPool = [[NSAutoreleasePool alloc] init];
-            osl_setThreadKeyData( s_aAutoReleaseKey, pPool );
-        }
-    }
-    else
-    {
-        DBG_ERROR( "no autorelease key" );
-    }
+	NSAutoreleasePool* pPool = nil;
+	if( s_aAutoReleaseKey )
+	{
+		pPool = reinterpret_cast<NSAutoreleasePool*>( osl_getThreadKeyData( s_aAutoReleaseKey ) );
+		if( pPool )
+		{
+			// osl_setThreadKeyData( s_aAutoReleaseKey, NULL );
+			// [pPool release];
+			[pPool drain];
+		}
+		else
+		{
+			pPool = [[NSAutoreleasePool alloc] init];
+			osl_setThreadKeyData( s_aAutoReleaseKey, pPool );
+		}
+	}
+	else
+	{
+		DBG_ERROR( "no autorelease key" );
+	}
 }
 
-
 struct curs_ent
 {
-    const char*         pBaseName;
-    const NSPoint       aHotSpot;
+	const char*			pBaseName;
+	const NSPoint		aHotSpot;
 }
 const aCursorTab[ POINTER_COUNT ] =
 {
-{ NULL, { 0, 0 } }, //POINTER_ARROW
-{ "nullptr", { 16, 16 } }, //POINTER_NULL
-{ "hourglass", { 15, 15 } }, //POINTER_WAIT
-{ NULL, { 0, 0 } }, //POINTER_TEXT
-{ "help", { 0, 0 } }, //POINTER_HELP
-{ NULL, { 0, 0 } }, //POINTER_CROSS
-{ NULL, { 0, 0 } }, //POINTER_MOVE
-{ NULL, { 0, 0 } }, //POINTER_NSIZE
-{ NULL, { 0, 0 } }, //POINTER_SSIZE
-{ NULL, { 0, 0 } }, //POINTER_WSIZE
-{ NULL, { 0, 0 } }, //POINTER_ESIZE
-{ "nwsesize", { 15, 15 } }, //POINTER_NWSIZE
-{ "neswsize", { 15, 15 } }, //POINTER_NESIZE
-{ "neswsize", { 15, 15 } }, //POINTER_SWSIZE
-{ "nwsesize", { 15, 15 } }, //POINTER_SESIZE
-{ NULL, { 0, 0 } }, //POINTER_WINDOW_NSIZE
-{ NULL, { 0, 0 } }, //POINTER_WINDOW_SSIZE
-{ NULL, { 0, 0 } }, //POINTER_WINDOW_WSIZE
-{ NULL, { 0, 0 } }, //POINTER_WINDOW_ESIZE
-{ "nwsesize", { 15, 15 } }, //POINTER_WINDOW_NWSIZE
-{ "neswsize", { 15, 15 } }, //POINTER_WINDOW_NESIZE
-{ "neswsize", { 15, 15 } }, //POINTER_WINDOW_SWSIZE
-{ "nwsesize", { 15, 15 } }, //POINTER_WINDOW_SESIZE
-{ NULL, { 0, 0 } }, //POINTER_HSPLIT
-{ NULL, { 0, 0 } }, //POINTER_VSPLIT
-{ NULL, { 0, 0 } }, //POINTER_HSIZEBAR
-{ NULL, { 0, 0 } }, //POINTER_VSIZEBAR
-{ NULL, { 0, 0 } }, //POINTER_HAND
-{ NULL, { 0, 0 } }, //POINTER_REFHAND
-{ "pen", { 3, 27 } }, //POINTER_PEN
-{ "magnify", { 12, 13 } }, //POINTER_MAGNIFY
-{ "fill", { 10, 22 } }, //POINTER_FILL
-{ "rotate", { 15, 15 } }, //POINTER_ROTATE
-{ "hshear", { 15, 15 } }, //POINTER_HSHEAR
-{ "vshear", { 15, 15 } }, //POINTER_VSHEAR
-{ "mirror", { 14, 12 } }, //POINTER_MIRROR
-{ "crook", { 15, 14 } }, //POINTER_CROOK
-{ "crop", { 9, 9 } }, //POINTER_CROP
-{ "movept", { 0, 0 } }, //POINTER_MOVEPOINT
-{ "movebw", { 0, 0 } }, //POINTER_MOVEBEZIERWEIGHT
-{ "movedata", { 0, 0 } }, //POINTER_MOVEDATA
-{ "copydata", { 0, 0 } }, //POINTER_COPYDATA
-{ "linkdata", { 0, 0 } }, //POINTER_LINKDATA
-{ "movedlnk", { 0, 0 } }, //POINTER_MOVEDATALINK
-{ "copydlnk", { 0, 0 } }, //POINTER_COPYDATALINK
-{ "movef", { 8, 8 } }, //POINTER_MOVEFILE
-{ "copyf", { 8, 8 } }, //POINTER_COPYFILE
-{ "linkf", { 8, 8 } }, //POINTER_LINKFILE
-{ "moveflnk", { 8, 8 } }, //POINTER_MOVEFILELINK
-{ "copyflnk", { 8, 8 } }, //POINTER_COPYFILELINK
-{ "movef2", { 7, 8 } }, //POINTER_MOVEFILES
-{ "copyf2", { 7, 8 } }, //POINTER_COPYFILES
-{ "notallow", { 15, 15 } }, //POINTER_NOTALLOWED
-{ "dline", { 8, 8 } }, //POINTER_DRAW_LINE
-{ "drect", { 8, 8 } }, //POINTER_DRAW_RECT
-{ "dpolygon", { 8, 8 } }, //POINTER_DRAW_POLYGON
-{ "dbezier", { 8, 8 } }, //POINTER_DRAW_BEZIER
-{ "darc", { 8, 8 } }, //POINTER_DRAW_ARC
-{ "dpie", { 8, 8 } }, //POINTER_DRAW_PIE
-{ "dcirccut", { 8, 8 } }, //POINTER_DRAW_CIRCLECUT
-{ "dellipse", { 8, 8 } }, //POINTER_DRAW_ELLIPSE
-{ "dfree", { 8, 8 } }, //POINTER_DRAW_FREEHAND
-{ "dconnect", { 8, 8 } }, //POINTER_DRAW_CONNECT
-{ "dtext", { 8, 8 } }, //POINTER_DRAW_TEXT
-{ "dcapt", { 8, 8 } }, //POINTER_DRAW_CAPTION
-{ "chart", { 15, 16 } }, //POINTER_CHART
-{ "detectiv", { 12, 13 } }, //POINTER_DETECTIVE
-{ "pivotcol", { 7, 5 } }, //POINTER_PIVOT_COL
-{ "pivotrow", { 8, 7 } }, //POINTER_PIVOT_ROW
-{ "pivotfld", { 8, 7 } }, //POINTER_PIVOT_FIELD
-{ "chain", { 0, 2 } }, //POINTER_CHAIN
-{ "chainnot", { 2, 2 } }, //POINTER_CHAIN_NOTALLOWED
-{ "timemove", { 16, 16 } }, //POINTER_TIMEEVENT_MOVE
-{ "timesize", { 16, 17 } }, //POINTER_TIMEEVENT_SIZE
-{ "asn", { 16, 12 } }, //POINTER_AUTOSCROLL_N
-{ "ass", { 15, 19 } }, //POINTER_AUTOSCROLL_S
-{ "asw", { 12, 15 } }, //POINTER_AUTOSCROLL_W
-{ "ase", { 19, 16 } }, //POINTER_AUTOSCROLL_E
-{ "asnw", { 10, 10 } }, //POINTER_AUTOSCROLL_NW
-{ "asne", { 21, 10 } }, //POINTER_AUTOSCROLL_NE
-{ "assw", { 21, 21 } }, //POINTER_AUTOSCROLL_SW
-{ "asse", { 21, 21 } }, //POINTER_AUTOSCROLL_SE
-{ "asns", { 15, 15 } }, //POINTER_AUTOSCROLL_NS
-{ "aswe", { 15, 15 } }, //POINTER_AUTOSCROLL_WE
-{ "asnswe", { 15, 15 } }, //POINTER_AUTOSCROLL_NSWE
-{ "airbrush", { 5, 22 } }, //POINTER_AIRBRUSH
-{ "vtext", { 15, 15 } }, //POINTER_TEXT_VERTICAL
-{ "pivotdel", { 18, 15 } }, //POINTER_PIVOT_DELETE
-{ "tblsels", { 15, 30 } }, //POINTER_TAB_SELECT_S
-{ "tblsele", { 30, 16 } }, //POINTER_TAB_SELECT_E
-{ "tblselse", { 30, 30 } }, //POINTER_TAB_SELECT_SE
-{ "tblselw", { 1, 16 } }, //POINTER_TAB_SELECT_W
-{ "tblselsw", { 1, 30 } }, //POINTER_TAB_SELECT_SW
-{ "pntbrsh", { 9, 16 } }  //POINTER_PAINTBRUSH
+{ NULL, { 0, 0 } }, // POINTER_ARROW
+{ "nullptr", { 16, 16 } }, // POINTER_NULL
+{ "hourglass", { 15, 15 } }, // POINTER_WAIT
+{ NULL, { 0, 0 } }, // POINTER_TEXT
+{ "help", { 0, 0 } }, // POINTER_HELP
+{ NULL, { 0, 0 } }, // POINTER_CROSS
+{ NULL, { 0, 0 } }, // POINTER_MOVE
+{ NULL, { 0, 0 } }, // POINTER_NSIZE
+{ NULL, { 0, 0 } }, // POINTER_SSIZE
+{ NULL, { 0, 0 } }, // POINTER_WSIZE
+{ NULL, { 0, 0 } }, // POINTER_ESIZE
+{ "nwsesize", { 15, 15 } }, // POINTER_NWSIZE
+{ "neswsize", { 15, 15 } }, // POINTER_NESIZE
+{ "neswsize", { 15, 15 } }, // POINTER_SWSIZE
+{ "nwsesize", { 15, 15 } }, // POINTER_SESIZE
+{ NULL, { 0, 0 } }, // POINTER_WINDOW_NSIZE
+{ NULL, { 0, 0 } }, // POINTER_WINDOW_SSIZE
+{ NULL, { 0, 0 } }, // POINTER_WINDOW_WSIZE
+{ NULL, { 0, 0 } }, // POINTER_WINDOW_ESIZE
+{ "nwsesize", { 15, 15 } }, // POINTER_WINDOW_NWSIZE
+{ "neswsize", { 15, 15 } }, // POINTER_WINDOW_NESIZE
+{ "neswsize", { 15, 15 } }, // POINTER_WINDOW_SWSIZE
+{ "nwsesize", { 15, 15 } }, // POINTER_WINDOW_SESIZE
+{ NULL, { 0, 0 } }, // POINTER_HSPLIT
+{ NULL, { 0, 0 } }, // POINTER_VSPLIT
+{ NULL, { 0, 0 } }, // POINTER_HSIZEBAR
+{ NULL, { 0, 0 } }, // POINTER_VSIZEBAR
+{ NULL, { 0, 0 } }, // POINTER_HAND
+{ NULL, { 0, 0 } }, // POINTER_REFHAND
+{ "pen", { 3, 27 } }, // POINTER_PEN
+{ "magnify", { 12, 13 } }, // POINTER_MAGNIFY
+{ "fill", { 10, 22 } }, // POINTER_FILL
+{ "rotate", { 15, 15 } }, // POINTER_ROTATE
+{ "hshear", { 15, 15 } }, // POINTER_HSHEAR
+{ "vshear", { 15, 15 } }, // POINTER_VSHEAR
+{ "mirror", { 14, 12 } }, // POINTER_MIRROR
+{ "crook", { 15, 14 } }, // POINTER_CROOK
+{ "crop", { 9, 9 } }, // POINTER_CROP
+{ "movept", { 0, 0 } }, // POINTER_MOVEPOINT
+{ "movebw", { 0, 0 } }, // POINTER_MOVEBEZIERWEIGHT
+{ "movedata", { 0, 0 } }, // POINTER_MOVEDATA
+{ "copydata", { 0, 0 } }, // POINTER_COPYDATA
+{ "linkdata", { 0, 0 } }, // POINTER_LINKDATA
+{ "movedlnk", { 0, 0 } }, // POINTER_MOVEDATALINK
+{ "copydlnk", { 0, 0 } }, // POINTER_COPYDATALINK
+{ "movef", { 8, 8 } }, // POINTER_MOVEFILE
+{ "copyf", { 8, 8 } }, // POINTER_COPYFILE
+{ "linkf", { 8, 8 } }, // POINTER_LINKFILE
+{ "moveflnk", { 8, 8 } }, // POINTER_MOVEFILELINK
+{ "copyflnk", { 8, 8 } }, // POINTER_COPYFILELINK
+{ "movef2", { 7, 8 } }, // POINTER_MOVEFILES
+{ "copyf2", { 7, 8 } }, // POINTER_COPYFILES
+{ "notallow", { 15, 15 } }, // POINTER_NOTALLOWED
+{ "dline", { 8, 8 } }, // POINTER_DRAW_LINE
+{ "drect", { 8, 8 } }, // POINTER_DRAW_RECT
+{ "dpolygon", { 8, 8 } }, // POINTER_DRAW_POLYGON
+{ "dbezier", { 8, 8 } }, // POINTER_DRAW_BEZIER
+{ "darc", { 8, 8 } }, // POINTER_DRAW_ARC
+{ "dpie", { 8, 8 } }, // POINTER_DRAW_PIE
+{ "dcirccut", { 8, 8 } }, // POINTER_DRAW_CIRCLECUT
+{ "dellipse", { 8, 8 } }, // POINTER_DRAW_ELLIPSE
+{ "dfree", { 8, 8 } }, // POINTER_DRAW_FREEHAND
+{ "dconnect", { 8, 8 } }, // POINTER_DRAW_CONNECT
+{ "dtext", { 8, 8 } }, // POINTER_DRAW_TEXT
+{ "dcapt", { 8, 8 } }, // POINTER_DRAW_CAPTION
+{ "chart", { 15, 16 } }, // POINTER_CHART
+{ "detectiv", { 12, 13 } }, // POINTER_DETECTIVE
+{ "pivotcol", { 7, 5 } }, // POINTER_PIVOT_COL
+{ "pivotrow", { 8, 7 } }, // POINTER_PIVOT_ROW
+{ "pivotfld", { 8, 7 } }, // POINTER_PIVOT_FIELD
+{ "chain", { 0, 2 } }, // POINTER_CHAIN
+{ "chainnot", { 2, 2 } }, // POINTER_CHAIN_NOTALLOWED
+{ "timemove", { 16, 16 } }, // POINTER_TIMEEVENT_MOVE
+{ "timesize", { 16, 17 } }, // POINTER_TIMEEVENT_SIZE
+{ "asn", { 16, 12 } }, // POINTER_AUTOSCROLL_N
+{ "ass", { 15, 19 } }, // POINTER_AUTOSCROLL_S
+{ "asw", { 12, 15 } }, // POINTER_AUTOSCROLL_W
+{ "ase", { 19, 16 } }, // POINTER_AUTOSCROLL_E
+{ "asnw", { 10, 10 } }, // POINTER_AUTOSCROLL_NW
+{ "asne", { 21, 10 } }, // POINTER_AUTOSCROLL_NE
+{ "assw", { 21, 21 } }, // POINTER_AUTOSCROLL_SW
+{ "asse", { 21, 21 } }, // POINTER_AUTOSCROLL_SE
+{ "asns", { 15, 15 } }, // POINTER_AUTOSCROLL_NS
+{ "aswe", { 15, 15 } }, // POINTER_AUTOSCROLL_WE
+{ "asnswe", { 15, 15 } }, // POINTER_AUTOSCROLL_NSWE
+{ "airbrush", { 5, 22 } }, // POINTER_AIRBRUSH
+{ "vtext", { 15, 15 } }, // POINTER_TEXT_VERTICAL
+{ "pivotdel", { 18, 15 } }, // POINTER_PIVOT_DELETE
+{ "tblsels", { 15, 30 } }, // POINTER_TAB_SELECT_S
+{ "tblsele", { 30, 16 } }, // POINTER_TAB_SELECT_E
+{ "tblselse", { 30, 30 } }, // POINTER_TAB_SELECT_SE
+{ "tblselw", { 1, 16 } }, // POINTER_TAB_SELECT_W
+{ "tblselsw", { 1, 30 } }, // POINTER_TAB_SELECT_SW
+{ "pntbrsh", { 9, 16 } } // POINTER_PAINTBRUSH
 };
 
 NSCursor* SalData::getCursor( PointerStyle i_eStyle )
 {
-    if( i_eStyle >= POINTER_COUNT )
-        return nil;
+	if( i_eStyle >= POINTER_COUNT )
+		return nil;
 
-    NSCursor* pCurs = maCursors[ i_eStyle ];
-    if( pCurs == INVALID_CURSOR_PTR )
-    {
-        pCurs = nil;
-        if( aCursorTab[ i_eStyle ].pBaseName )
-        {
-            NSPoint aHotSpot = aCursorTab[ i_eStyle ].aHotSpot;
-            CFStringRef pCursorName =
-                CFStringCreateWithCStringNoCopy(
-                    kCFAllocatorDefault,
-                    aCursorTab[ i_eStyle ].pBaseName,
-                    kCFStringEncodingASCII,
-                    kCFAllocatorNull );
-            CFBundleRef hMain = CFBundleGetMainBundle();
-            CFURLRef hURL = CFBundleCopyResourceURL( hMain, pCursorName, CFSTR("png"), CFSTR("cursors") );
-            if( hURL )
-            {
-                pCurs = [[NSCursor alloc] initWithImage: [[NSImage alloc] initWithContentsOfURL: (NSURL*)hURL] hotSpot: aHotSpot];
-                CFRelease( hURL );
-            }
-            CFRelease( pCursorName );
-        }
-        maCursors[ i_eStyle ] = pCurs;
-    }
-    return pCurs;
+	NSCursor* pCurs = maCursors[ i_eStyle ];
+	if( pCurs == INVALID_CURSOR_PTR )
+	{
+		pCurs = nil;
+		if( aCursorTab[ i_eStyle ].pBaseName )
+		{
+			NSPoint aHotSpot = aCursorTab[ i_eStyle ].aHotSpot;
+			CFStringRef pCursorName =
+				CFStringCreateWithCStringNoCopy(
+					kCFAllocatorDefault,
+					aCursorTab[ i_eStyle ].pBaseName,
+					kCFStringEncodingASCII,
+					kCFAllocatorNull );
+			CFBundleRef hMain = CFBundleGetMainBundle();
+			CFURLRef hURL = CFBundleCopyResourceURL( hMain, pCursorName, CFSTR("png"), CFSTR("cursors") );
+			if( hURL )
+			{
+				pCurs = [[NSCursor alloc] initWithImage: [[NSImage alloc] initWithContentsOfURL: (NSURL*)hURL] hotSpot: aHotSpot];
+				CFRelease( hURL );
+			}
+			CFRelease( pCursorName );
+		}
+		maCursors[ i_eStyle ] = pCurs;
+	}
+	return pCurs;
 }
 
 NSStatusItem* SalData::getStatusItem()
 {
-    SalData* pData = GetSalData();
-    if( ! pData->mpStatusItem )
-    {
-        NSStatusBar* pStatBar =[NSStatusBar systemStatusBar];
-        if( pStatBar )
-        {
-            pData->mpStatusItem = [pStatBar statusItemWithLength: NSVariableStatusItemLength];
-            [pData->mpStatusItem retain];
-            OOStatusItemView* pView = [[OOStatusItemView alloc] init];
-            [pData->mpStatusItem setView: pView ];
-            [pView display];
-        }
-    }
-    return pData->mpStatusItem;
+	SalData* pData = GetSalData();
+	if( ! pData->mpStatusItem )
+	{
+		NSStatusBar* pStatBar =[NSStatusBar systemStatusBar];
+		if( pStatBar )
+		{
+			pData->mpStatusItem = [pStatBar statusItemWithLength: NSVariableStatusItemLength];
+			[pData->mpStatusItem retain];
+			OOStatusItemView* pView = [[OOStatusItemView alloc] init];
+			[pData->mpStatusItem setView: pView ];
+			[pView display];
+		}
+	}
+	return pData->mpStatusItem;
 }
+
+/* vim: set noet sw=4 ts=4: */