cleanup for 10.5

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42009 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2006-10-14 15:30:02 +00:00
parent fb743cab53
commit e6c3d3e655
4 changed files with 134 additions and 152 deletions

View File

@@ -87,6 +87,8 @@ wxRegion::wxRegion(size_t n, const wxPoint *points, int WXUNUSED(fillStyle))
{
m_refData = new wxRegionRefData;
#ifndef __LP64__
// TODO : any APIs ?
// OS X somehow does not collect the region invisibly as before, so sometimes things
// get drawn on screen instead of just being combined into a region, therefore we allocate a temp gworld now
@@ -124,6 +126,7 @@ wxRegion::wxRegion(size_t n, const wxPoint *points, int WXUNUSED(fillStyle))
::SetGWorld( oldWorld, oldGDHandle );
}
#endif
}
wxRegion::~wxRegion()
@@ -406,14 +409,26 @@ void wxRegionIterator::Reset(const wxRegion& region)
}
else
{
RegionToRectsUPP proc = NewRegionToRectsUPP( wxMacRegionToRectsCounterCallback );
RegionToRectsUPP proc =
#ifdef __MACH__
(RegionToRectsUPP) wxMacRegionToRectsCounterCallback;
#else
NewRegionToRectsUPP( wxMacRegionToRectsCounterCallback );
#endif
OSStatus err = noErr;
err = QDRegionToRects (OTHER_M_REGION( region ) , kQDParseRegionFromTopLeft, proc, (void*)&m_numRects);
if (err == noErr)
{
#ifndef __MACH__
DisposeRegionToRectsUPP (proc);
proc = NewRegionToRectsUPP (wxMacRegionToRectsSetterCallback);
#endif
proc =
#ifdef __MACH__
(RegionToRectsUPP) wxMacRegionToRectsSetterCallback;
#else
NewRegionToRectsUPP (wxMacRegionToRectsSetterCallback);
#endif
m_rects = new wxRect[m_numRects];
RegionToRectsCallbackData data ;
data.m_rects = m_rects ;
@@ -425,7 +440,9 @@ void wxRegionIterator::Reset(const wxRegion& region)
m_numRects = 0;
}
#ifndef __MACH__
DisposeRegionToRectsUPP( proc );
#endif
}
}

View File

@@ -1640,7 +1640,12 @@ IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule)
bool wxThreadModule::OnInit()
{
bool hasThreadManager = MPLibraryIsLoaded();
bool hasThreadManager =
#ifdef __LP64__
true ; // TODO VERIFY IN NEXT BUILD
#else
MPLibraryIsLoaded();
#endif
if ( !hasThreadManager )
{

View File

@@ -41,109 +41,22 @@
// windows manager, control manager, navigation services etc. are
// present
static bool sUMAHasAppearance = false ;
static long sUMAAppearanceVersion = 0 ;
static long sUMASystemVersion = 0 ;
static bool sUMAHasAquaLayout = false ;
static SInt32 sUMASystemVersion = 0 ;
static bool sUMAHasInittedAppearance = false;
bool UMAHasAppearance() { return sUMAHasAppearance ; }
long UMAGetAppearanceVersion() { return sUMAAppearanceVersion ; }
long UMAGetSystemVersion() { return sUMASystemVersion ; }
static bool sUMAHasWindowManager = false ;
static long sUMAWindowManagerAttr = 0 ;
bool UMAHasWindowManager() { return sUMAHasWindowManager ; }
long UMAGetWindowManagerAttr() { return sUMAWindowManagerAttr ; }
bool UMAHasAquaLayout() { return sUMAHasAquaLayout ; }
void UMACleanupToolbox()
{
if (sUMAHasInittedAppearance)
UnregisterAppearanceClient() ;
if ( NavServicesAvailable() )
NavUnload() ;
if ( TXNTerminateTextension != (void*) kUnresolvedCFragSymbolAddress )
TXNTerminateTextension( ) ;
}
void UMAInitToolbox( UInt16 inMoreMastersCalls, bool isEmbedded )
{
#if !TARGET_CARBON
::MaxApplZone();
for (long i = 1; i <= inMoreMastersCalls; i++)
::MoreMasters();
if (!isEmbedded)
{
::InitGraf(&qd.thePort);
::InitFonts();
::InitMenus();
::TEInit();
::InitDialogs(0L);
::FlushEvents(everyEvent, 0);
}
long total,contig;
PurgeSpace(&total, &contig);
#endif
::InitCursor();
if ( Gestalt(gestaltSystemVersion, &sUMASystemVersion) != noErr)
sUMASystemVersion = 0x0000 ;
long theAppearance ;
if ( Gestalt( gestaltAppearanceAttr, &theAppearance ) == noErr )
{
// If status equals appearanceProcessRegisteredErr it means the
// appearance client already was registered (For example if we run
// embedded, the host might have registered it). In such a case
// we don't unregister it later on.
sUMAHasAppearance = true ;
OSStatus status = RegisterAppearanceClient();
if (status != appearanceProcessRegisteredErr)
{
// Appearance client wasn't registered yet.
sUMAHasInittedAppearance = true;
}
if ( Gestalt( gestaltAppearanceVersion, &theAppearance ) == noErr )
sUMAAppearanceVersion = theAppearance ;
else
sUMAAppearanceVersion = 0x0100 ;
}
if ( Gestalt( gestaltWindowMgrAttr, &sUMAWindowManagerAttr ) == noErr )
sUMAHasWindowManager = sUMAWindowManagerAttr & gestaltWindowMgrPresent ;
#if TARGET_CARBON
// Call currently implicitely done : InitFloatingWindows() ;
#else
if (!isEmbedded)
{
if ( sUMAHasWindowManager )
InitFloatingWindows() ;
else
InitWindows();
}
#endif
if ( NavServicesAvailable() )
NavLoad() ;
long menuMgrAttr ;
Gestalt( gestaltMenuMgrAttr , &menuMgrAttr ) ;
if ( menuMgrAttr & gestaltMenuMgrAquaLayoutMask )
sUMAHasAquaLayout = true ;
if ( TXNInitTextension != (void*) kUnresolvedCFragSymbolAddress )
#ifndef __LP64__
{
FontFamilyID fontId ;
Str255 fontName ;
@@ -166,19 +79,11 @@ void UMAInitToolbox( UInt16 inMoreMastersCalls, bool isEmbedded )
TXNInitTextension( fontDescriptions, noOfFontDescriptions, options );
}
#endif
UMASetSystemIsInitialized( true );
}
#if 0
Boolean CanUseATSUI()
{
long result;
OSErr err = Gestalt(gestaltATSUVersion, &result);
return (err == noErr);
}
#endif
// process manager
long UMAGetProcessMode()
{
@@ -190,7 +95,9 @@ long UMAGetProcessMode()
procno.lowLongOfPSN = kCurrentProcess ;
processinfo.processInfoLength = sizeof(ProcessInfoRec);
processinfo.processName = NULL;
#ifndef __LP64__
processinfo.processAppSpec = NULL;
#endif
err = ::GetProcessInformation( &procno , &processinfo ) ;
wxASSERT( err == noErr ) ;
@@ -266,14 +173,17 @@ void UMAEnableMenuItem( MenuRef inMenu , MenuItemIndex inItem , bool enable)
void UMAAppendSubMenuItem( MenuRef menu , const wxString& title, wxFontEncoding encoding , SInt16 id )
{
MacAppendMenu( menu, "\pA" );
AppendMenuItemTextWithCFString( menu,
CFSTR("A"), 0, 0,NULL);
UMASetMenuItemText( menu, (SInt16) ::CountMenuItems(menu), title , encoding );
SetMenuItemHierarchicalID( menu , CountMenuItems( menu ) , id ) ;
}
void UMAInsertSubMenuItem( MenuRef menu , const wxString& title, wxFontEncoding encoding , MenuItemIndex item , SInt16 id )
{
MacInsertMenuItem( menu, "\pA" , item );
InsertMenuItemTextWithCFString( menu,
CFSTR("A"), item, 0, 0);
UMASetMenuItemText( menu, item+1, title , encoding );
SetMenuItemHierarchicalID( menu , item+1 , id ) ;
}
@@ -418,8 +328,8 @@ void UMASetMenuItemShortcut( MenuRef menu , MenuItemIndex item , wxAcceleratorEn
void UMAAppendMenuItem( MenuRef menu , const wxString& title, wxFontEncoding encoding , wxAcceleratorEntry *entry )
{
MacAppendMenu(menu, "\pA");
AppendMenuItemTextWithCFString( menu,
CFSTR("A"), 0, 0,NULL);
// don't attempt to interpret metacharacters like a '-' at the beginning (would become a separator otherwise)
ChangeMenuItemAttributes( menu , ::CountMenuItems(menu), kMenuItemAttrIgnoreMeta , 0 ) ;
UMASetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), title , encoding );
@@ -428,7 +338,8 @@ void UMAAppendMenuItem( MenuRef menu , const wxString& title, wxFontEncoding enc
void UMAInsertMenuItem( MenuRef menu , const wxString& title, wxFontEncoding encoding , MenuItemIndex item , wxAcceleratorEntry *entry )
{
MacInsertMenuItem( menu , "\pA" , item) ;
InsertMenuItemTextWithCFString( menu,
CFSTR("A"), item, 0, 0);
// don't attempt to interpret metacharacters like a '-' at the beginning (would become a separator otherwise)
ChangeMenuItemAttributes( menu , item+1, kMenuItemAttrIgnoreMeta , 0 ) ;
@@ -486,37 +397,12 @@ pascal QDGlobalsPtr GetQDGlobalsPtr()
void UMAShowWatchCursor()
{
OSErr err = noErr;
CursHandle watchFob = GetCursor(watchCursor);
if (watchFob == NULL)
{
err = nilHandleErr;
}
else
{
#if TARGET_CARBON
// Cursor preservedArrow;
// GetQDGlobalsArrow(&preservedArrow);
// SetQDGlobalsArrow(*watchFob);
// InitCursor();
// SetQDGlobalsArrow(&preservedArrow);
SetCursor(*watchFob);
#else
SetCursor(*watchFob);
#endif
}
SetThemeCursor(kThemeWatchCursor);
}
void UMAShowArrowCursor()
{
#if TARGET_CARBON
Cursor arrow;
SetCursor( GetQDGlobalsArrow(&arrow) );
#else
SetCursor (&(qd.arrow));
#endif
SetThemeCursor(kThemeArrowCursor);
}
// window manager
@@ -669,16 +555,14 @@ void UMADeactivateControl( ControlRef inControl )
void UMAShowControl( ControlRef inControl )
{
SetControlVisibility( inControl , true , false ) ;
Rect ctrlBounds ;
InvalWindowRect( GetControlOwner(inControl), UMAGetControlBoundsInWindowCoords(inControl, &ctrlBounds) ) ;
HIViewSetNeedsDisplay( inControl, true );
}
// hides the control and adds the region to the update region
void UMAHideControl( ControlRef inControl )
{
SetControlVisibility( inControl , false , false ) ;
Rect ctrlBounds ;
InvalWindowRect( GetControlOwner(inControl), UMAGetControlBoundsInWindowCoords(inControl, &ctrlBounds) ) ;
HIViewSetNeedsDisplay( inControl, true );
}
// keyboard focus
@@ -687,13 +571,17 @@ OSErr UMASetKeyboardFocus( WindowPtr inWindow,
ControlFocusPart inPart )
{
OSErr err = noErr;
#ifndef __LP64__
GrafPtr port ;
GetPort( &port ) ;
SetPortWindowPort( inWindow ) ;
#endif
err = SetKeyboardFocus( inWindow , inControl , inPart ) ;
#ifndef __LP64__
SetPort( port ) ;
#endif
return err ;
}
@@ -722,10 +610,11 @@ void UMAHighlightAndActivateWindow( WindowRef inWindowRef , bool inActivate )
{
// bool isHighlighted = IsWindowHighlited( inWindowRef ) ;
// if ( inActivate != isHighlighted )
#ifndef __LP64__
GrafPtr port ;
GetPort( &port ) ;
SetPortWindowPort( inWindowRef ) ;
#endif
HiliteWindow( inWindowRef , inActivate ) ;
ControlRef control = NULL ;
::GetRootControl( inWindowRef , &control ) ;
@@ -736,14 +625,19 @@ void UMAHighlightAndActivateWindow( WindowRef inWindowRef , bool inActivate )
else
UMADeactivateControl( control ) ;
}
#ifndef __LP64__
SetPort( port ) ;
#endif
}
}
OSStatus UMADrawThemePlacard( const Rect *inRect , ThemeDrawState inState )
{
#ifndef __LP64__
return ::DrawThemePlacard( inRect , inState ) ;
#else
return noErr;
#endif
}
#if !TARGET_CARBON
@@ -774,6 +668,8 @@ OSStatus UMAGetHelpMenu(
#endif
}
#ifndef __LP64__
wxMacPortStateHelper::wxMacPortStateHelper( GrafPtr newport )
{
m_clip = NULL ;
@@ -828,6 +724,8 @@ wxMacPortStateHelper::~wxMacPortStateHelper()
}
}
#endif
OSStatus UMAPutScrap( Size size , OSType type , void *data )
{
OSStatus err = noErr ;

View File

@@ -72,7 +72,7 @@
// our OS version is the same in non GUI and GUI cases
wxOperatingSystemId wxGetOsVersion(int *majorVsn, int *minorVsn)
{
long theSystem;
SInt32 theSystem;
Gestalt(gestaltSystemVersion, &theSystem);
if ( majorVsn != NULL )
@@ -360,7 +360,9 @@ void wxFlushEvents()
// Emit a beeeeeep
void wxBell()
{
#ifndef __LP64__
SysBeep(30);
#endif
}
@@ -529,9 +531,12 @@ bool wxCheckForInterrupt(wxWindow *wnd)
void wxGetMousePosition( int* x, int* y )
{
Point pt;
#if wxMAC_USE_CORE_GRAPHICS
GetGlobalMouse(&pt);
#else
GetMouse( &pt );
LocalToGlobal( &pt );
#endif
*x = pt.h;
*y = pt.v;
};
@@ -545,21 +550,33 @@ bool wxColourDisplay()
// Returns depth of screen
int wxDisplayDepth()
{
int theDepth = 8;
#if wxMAC_USE_CORE_GRAPHICS
theDepth = (int) CGDisplayBitsPerPixel(CGMainDisplayID());
#else
Rect globRect;
SetRect(&globRect, -32760, -32760, 32760, 32760);
GDHandle theMaxDevice;
int theDepth = 8;
theMaxDevice = GetMaxDevice(&globRect);
if (theMaxDevice != NULL)
theDepth = (**(**theMaxDevice).gdPMap).pixelSize;
#endif
return theDepth;
}
// Get size of display
void wxDisplaySize(int *width, int *height)
{
#if wxMAC_USE_CORE_GRAPHICS
CGRect bounds ;
// TODO adapt for multi-displays
bounds = CGDisplayBounds(CGMainDisplayID());
if ( width )
*width = bounds.size.width ;
if ( height )
*height = bounds.size.height;
#else
BitMap screenBits;
GetQDGlobalsScreenBits( &screenBits );
@@ -568,6 +585,7 @@ void wxDisplaySize(int *width, int *height)
if (height != NULL)
*height = screenBits.bounds.bottom - screenBits.bounds.top;
#endif
}
void wxDisplaySizeMM(int *width, int *height)
@@ -585,8 +603,20 @@ void wxDisplaySizeMM(int *width, int *height)
void wxClientDisplayRect(int *x, int *y, int *width, int *height)
{
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
HIRect bounds ;
HIWindowGetAvailablePositioningBounds(kCGNullDirectDisplay,kHICoordSpace72DPIGlobal,
&bounds);
if ( x )
*x = bounds.origin.x;
if ( y )
*y = bounds.origin.y;
if ( width )
*width = bounds.size.width;
if ( height )
*height = bounds.size.height;
#else
Rect r;
GetAvailableWindowPositioningBounds( GetMainDevice() , &r );
if ( x )
*x = r.left;
@@ -596,6 +626,7 @@ void wxClientDisplayRect(int *x, int *y, int *width, int *height)
*width = r.right - r.left;
if ( height )
*height = r.bottom - r.top;
#endif
}
wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
@@ -835,7 +866,7 @@ void wxMacControl::Dispose()
m_controlRef = NULL;
}
void wxMacControl::SetReference( SInt32 data )
void wxMacControl::SetReference( URefCon data )
{
SetControlReference( m_controlRef , data );
}
@@ -1029,7 +1060,11 @@ void wxMacControl::SetRange( SInt32 minimum , SInt32 maximum )
short wxMacControl::HandleKey( SInt16 keyCode, SInt16 charCode, EventModifiers modifiers )
{
#ifndef __LP64__
return HandleControlKey( m_controlRef , keyCode , charCode , modifiers );
#else
return 0;
#endif
}
void wxMacControl::SetActionProc( ControlActionUPP actionProc )
@@ -1237,7 +1272,7 @@ void wxMacControl::SetReferenceInNativeControl()
wxMacControl* wxMacControl::GetReferenceFromNativeControl(ControlRef control)
{
wxMacControl* ctl = NULL;
UInt32 actualSize;
ByteCount actualSize;
if ( GetControlProperty( control ,wxMacCreator,wxMacControlProperty, sizeof(ctl) ,
&actualSize , &ctl ) == noErr )
{
@@ -1335,7 +1370,7 @@ wxMacDataBrowserControl::wxMacDataBrowserControl( wxWindow* peer, const wxPoint&
OSStatus wxMacDataBrowserControl::GetItemCount( DataBrowserItemID container,
Boolean recurse,
DataBrowserItemState state,
UInt32 *numItems) const
ItemCount *numItems) const
{
return GetDataBrowserItemCount( m_controlRef, container, recurse, state, numItems );
}
@@ -1510,12 +1545,12 @@ OSStatus wxMacDataBrowserControl::GetColumnCount(UInt32* numColumns) const
}
OSStatus wxMacDataBrowserControl::GetColumnPosition( DataBrowserPropertyID column,
UInt32 *position) const
DataBrowserTableViewColumnIndex *position) const
{
return GetDataBrowserTableViewColumnPosition( m_controlRef , column , position);
}
OSStatus wxMacDataBrowserControl::SetColumnPosition( DataBrowserPropertyID column, UInt32 position)
OSStatus wxMacDataBrowserControl::SetColumnPosition( DataBrowserPropertyID column, DataBrowserTableViewColumnIndex position)
{
return SetDataBrowserTableViewColumnPosition( m_controlRef , column , position);
}
@@ -1802,7 +1837,7 @@ void wxMacDataItemBrowserControl::ItemNotification(
unsigned int wxMacDataItemBrowserControl::GetItemCount(const wxMacDataItem* container,
bool recurse , DataBrowserItemState state) const
{
UInt32 numItems = 0;
ItemCount numItems = 0;
verify_noerr( wxMacDataBrowserControl::GetItemCount( (DataBrowserItemID)container,
recurse, state, &numItems ) );
return numItems;
@@ -1950,7 +1985,7 @@ void wxMacDataItemBrowserControl::AddItems(wxMacDataItem *container, wxArrayMacD
void wxMacDataItemBrowserControl::RemoveItem(wxMacDataItem *container, wxMacDataItem* item)
{
OSStatus err = wxMacDataBrowserControl::RemoveItems( (DataBrowserItemID)container, 1,
(UInt32*) &item, kDataBrowserItemNoProperty );
(DataBrowserItemID*) &item, kDataBrowserItemNoProperty );
verify_noerr( err );
}
@@ -1962,7 +1997,7 @@ void wxMacDataItemBrowserControl::RemoveItems(wxMacDataItem *container, wxArrayM
items[i] = (DataBrowserItemID) itemArray[i];
OSStatus err = wxMacDataBrowserControl::RemoveItems( (DataBrowserItemID)container, noItems,
(UInt32*) items, kDataBrowserItemNoProperty );
(DataBrowserItemID*) items, kDataBrowserItemNoProperty );
verify_noerr( err );
delete [] items;
}
@@ -2303,6 +2338,8 @@ CGColorSpaceRef wxMacGetGenericRGBColorSpace()
}
#endif
#ifndef __LP64__
wxMacPortSaver::wxMacPortSaver( GrafPtr port )
{
::GetPort( &m_port );
@@ -2313,5 +2350,30 @@ wxMacPortSaver::~wxMacPortSaver()
{
::SetPort( m_port );
}
#endif
void wxMacGlobalToLocal( WindowRef window , Point*pt )
{
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
HIPoint p = CGPointMake( pt->h, pt->v );
HIPointConvert( &p, kHICoordSpace72DPIGlobal, NULL, kHICoordSpaceWindow, window );
pt->h = p.x;
pt->v = p.y;
#else
QDGlobalToLocalPoint( GetWindowPort(window), pt ) ;
#endif
}
void wxMacLocalToGlobal( WindowRef window , Point*pt )
{
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
HIPoint p = CGPointMake( pt->h, pt->v );
HIPointConvert( &p, kHICoordSpaceWindow, window, kHICoordSpace72DPIGlobal, NULL );
pt->h = p.x;
pt->v = p.y;
#else
QDLocalToGlobalPoint( GetWindowPort(window), pt ) ;
#endif
}
#endif // wxUSE_GUI