git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36576
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
#include "MoreFilesX.h"
#ifndef __DARWIN__
#include "MoreFilesX.h"
#ifndef __DARWIN__
-#include <Threads.h>
-#include <Sound.h>
+ #include <Threads.h>
+ #include <Sound.h>
#endif
#if wxUSE_GUI
#if TARGET_API_MAC_OSX
#endif
#if wxUSE_GUI
#if TARGET_API_MAC_OSX
-#include <CoreServices/CoreServices.h>
+ #include <CoreServices/CoreServices.h>
-#include <DriverServices.h>
-#include <Multiprocessing.h>
+ #include <DriverServices.h>
+ #include <Multiprocessing.h>
-#include <Carbon/Carbon.h>
+ #include <Carbon/Carbon.h>
-#include <ATSUnicode.h>
-#include <TextCommon.h>
-#include <TextEncodingConverter.h>
+ #include <ATSUnicode.h>
+ #include <TextCommon.h>
+ #include <TextEncodingConverter.h>
#endif
#endif // wxUSE_GUI
#endif
#endif // wxUSE_GUI
-#include "wx/mac/private.h" // includes mac headers
+#include "wx/mac/private.h"
#if defined(__MWERKS__) && wxUSE_UNICODE
#include <wtime.h>
#if defined(__MWERKS__) && wxUSE_UNICODE
#include <wtime.h>
// are there x-platform conventions ?
Gestalt(gestaltSystemVersion, &theSystem) ;
// are there x-platform conventions ?
Gestalt(gestaltSystemVersion, &theSystem) ;
- if (minorVsn != NULL) {
- *minorVsn = (theSystem & 0xFF ) ;
- }
- if (majorVsn != NULL) {
- *majorVsn = (theSystem >> 8 ) ;
- }
+ if (minorVsn != NULL)
+ *minorVsn = (theSystem & 0xFF) ;
+
+ if (majorVsn != NULL)
+ *majorVsn = (theSystem >> 8) ;
+
#ifdef __DARWIN__
return wxMAC_DARWIN;
#else
#ifdef __DARWIN__
return wxMAC_DARWIN;
#else
#if TARGET_API_MAC_CARBON
#if TARGET_API_MAC_CARBON
- #include <CodeFragments.h>
+#include <CodeFragments.h>
- extern "C" long CallUniversalProc(UniversalProcPtr theProcPtr, ProcInfoType procInfo, ...);
+extern "C" long CallUniversalProc(UniversalProcPtr theProcPtr, ProcInfoType procInfo, ...);
- ProcPtr gCallUniversalProc_Proc = NULL;
+ProcPtr gCallUniversalProc_Proc = NULL;
static long fRunOnce = false;
static long fRunOnce = false;
-/* ---------------------------------------------------------------------------
- IsMetroNubInstalled
- --------------------------------------------------------------------------- */
Boolean IsMetroNubInstalled()
{
Boolean IsMetroNubInstalled()
{
if (Gestalt(gestaltSystemVersion, &value) == noErr && value < 0x1000)
{
if (Gestalt(gestaltSystemVersion, &value) == noErr && value < 0x1000)
{
- /* look for MetroNub's Gestalt selector */
+ // look for MetroNub's Gestalt selector
if (Gestalt(kMetroNubUserSignature, &result) == noErr)
{
if (Gestalt(kMetroNubUserSignature, &result) == noErr)
{
-
- #if TARGET_API_MAC_CARBON
+#if TARGET_API_MAC_CARBON
if (gCallUniversalProc_Proc == NULL)
{
CFragConnectionID connectionID;
if (gCallUniversalProc_Proc == NULL)
{
CFragConnectionID connectionID;
{
MetroNubUserEntryBlock* block = (MetroNubUserEntryBlock *)result;
{
MetroNubUserEntryBlock* block = (MetroNubUserEntryBlock *)result;
- /* make sure the version of the API is compatible */
+ // make sure the version of the API is compatible
if (block->apiLowVersion <= kMetroNubUserAPIVersion &&
kMetroNubUserAPIVersion <= block->apiHiVersion)
if (block->apiLowVersion <= kMetroNubUserAPIVersion &&
kMetroNubUserAPIVersion <= block->apiHiVersion)
- gMetroNubEntry = block; /* success! */
+ {
+ // success!
+ gMetroNubEntry = block;
+ }
-/* ---------------------------------------------------------------------------
- IsMWDebuggerRunning [v1 API]
- --------------------------------------------------------------------------- */
-
Boolean IsMWDebuggerRunning()
{
if (IsMetroNubInstalled())
return CallIsDebuggerRunningProc(gMetroNubEntry->isDebuggerRunning);
Boolean IsMWDebuggerRunning()
{
if (IsMetroNubInstalled())
return CallIsDebuggerRunningProc(gMetroNubEntry->isDebuggerRunning);
- else
- return false;
-}
-/* ---------------------------------------------------------------------------
- AmIBeingMWDebugged [v1 API]
- --------------------------------------------------------------------------- */
Boolean AmIBeingMWDebugged()
{
if (IsMetroNubInstalled())
return CallAmIBeingDebuggedProc(gMetroNubEntry->amIBeingDebugged);
Boolean AmIBeingMWDebugged()
{
if (IsMetroNubInstalled())
return CallAmIBeingDebuggedProc(gMetroNubEntry->amIBeingDebugged);
}
extern bool WXDLLEXPORT wxIsDebuggerRunning()
}
extern bool WXDLLEXPORT wxIsDebuggerRunning()
return wxGetHostName(buf, maxSize);
}
return wxGetHostName(buf, maxSize);
}
+// Get user ID e.g. jacs
+bool wxGetUserId(wxChar *buf, int maxSize)
+{
+ return wxGetUserName( buf , maxSize ) ;
+}
+
+const wxChar* wxGetHomeDir(wxString *pstr)
+{
+ *pstr = wxMacFindFolder( (short) kOnSystemDisk, kPreferencesFolderType, kDontCreateFolder ) ;
+ return pstr->c_str() ;
+}
+
// Get hostname only (without domain name)
bool wxGetHostName(wxChar *buf, int maxSize)
{
// Gets Chooser name of user by examining a System resource.
// Get hostname only (without domain name)
bool wxGetHostName(wxChar *buf, int maxSize)
{
// Gets Chooser name of user by examining a System resource.
const short kComputerNameID = -16413;
const short kComputerNameID = -16413;
ReleaseResource( (Handle) chooserName ) ;
wxStrncpy( buf , name , maxSize - 1 ) ;
}
ReleaseResource( (Handle) chooserName ) ;
wxStrncpy( buf , name , maxSize - 1 ) ;
}
-// Get user ID e.g. jacs
-bool wxGetUserId(wxChar *buf, int maxSize)
-{
- return wxGetUserName( buf , maxSize ) ;
-}
-
-const wxChar* wxGetHomeDir(wxString *pstr)
-{
- *pstr = wxMacFindFolder( (short) kOnSystemDisk, kPreferencesFolderType, kDontCreateFolder ) ;
- return pstr->c_str() ;
-}
-
// Get user name e.g. Stefan Csomor
bool wxGetUserName(wxChar *buf, int maxSize)
{
// Gets Chooser name of user by examining a System resource.
// Get user name e.g. Stefan Csomor
bool wxGetUserName(wxChar *buf, int maxSize)
{
// Gets Chooser name of user by examining a System resource.
const short kChooserNameID = -16096;
const short kChooserNameID = -16096;
ReleaseResource( (Handle) chooserName ) ;
wxStrncpy( buf , name , maxSize - 1 ) ;
}
ReleaseResource( (Handle) chooserName ) ;
wxStrncpy( buf , name , maxSize - 1 ) ;
}
// Execute a program in an Interactive Shell
// Execute a program in an Interactive Shell
bool wxShell(const wxString& command)
{
// TODO
bool wxShell(const wxString& command)
{
// TODO
wxToolkitInfo& wxConsoleAppTraits::GetToolkitInfo()
{
static wxToolkitInfo info;
wxToolkitInfo& wxConsoleAppTraits::GetToolkitInfo()
{
static wxToolkitInfo info;
info.os = DoGetOSVersion(&info.versionMajor, &info.versionMinor);
info.name = _T("wxBase");
info.os = DoGetOSVersion(&info.versionMajor, &info.versionMinor);
info.name = _T("wxBase");
wxToolkitInfo& wxGUIAppTraits::GetToolkitInfo()
{
static wxToolkitInfo info;
wxToolkitInfo& wxGUIAppTraits::GetToolkitInfo()
{
static wxToolkitInfo info;
info.os = DoGetOSVersion(&info.versionMajor, &info.versionMinor);
info.shortName = _T("mac");
info.name = _T("wxMac");
info.os = DoGetOSVersion(&info.versionMajor, &info.versionMinor);
info.shortName = _T("mac");
info.name = _T("wxMac");
#ifdef __WXUNIVERSAL__
info.shortName << _T("univ");
info.name << _T("/wxUniversal");
#endif
#ifdef __WXUNIVERSAL__
info.shortName << _T("univ");
info.name << _T("/wxUniversal");
#endif
{
*value = (float)strtod(s, NULL);
delete[] s;
{
*value = (float)strtod(s, NULL);
delete[] s;
}
bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file)
}
bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file)
{
*value = strtol(s, NULL, 10);
delete[] s;
{
*value = strtol(s, NULL, 10);
delete[] s;
}
bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file)
}
bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file)
{
*value = (int)strtol(s, NULL, 10);
delete[] s;
{
*value = (int)strtol(s, NULL, 10);
delete[] s;
}
#endif // wxUSE_RESOURCES
}
#endif // wxUSE_RESOURCES
int theDepth = 8;
theMaxDevice = GetMaxDevice(&globRect);
int theDepth = 8;
theMaxDevice = GetMaxDevice(&globRect);
- if (theMaxDevice != nil)
+ if (theMaxDevice != NULL)
theDepth = (**(**theMaxDevice).gdPMap).pixelSize;
return theDepth ;
theDepth = (**(**theMaxDevice).gdPMap).pixelSize;
return theDepth ;
BitMap screenBits;
GetQDGlobalsScreenBits( &screenBits );
BitMap screenBits;
GetQDGlobalsScreenBits( &screenBits );
- if (width != NULL) {
- *width = screenBits.bounds.right - screenBits.bounds.left ;
- }
- if (height != NULL) {
+ if (width != NULL)
+ *width = screenBits.bounds.right - screenBits.bounds.left ;
+
+ if (height != NULL)
*height = screenBits.bounds.bottom - screenBits.bounds.top ;
*height = screenBits.bounds.bottom - screenBits.bounds.top ;
}
void wxDisplaySizeMM(int *width, int *height)
}
void wxDisplaySizeMM(int *width, int *height)
// on mac 72 is fixed (at least now ;-)
float cvPt2Mm = 25.4 / 72;
// on mac 72 is fixed (at least now ;-)
float cvPt2Mm = 25.4 / 72;
*width = int( *width * cvPt2Mm );
*width = int( *width * cvPt2Mm );
- }
- if (height != NULL) {
*height = int( *height * cvPt2Mm );
*height = int( *height * cvPt2Mm );
}
void wxClientDisplayRect(int *x, int *y, int *width, int *height)
{
Rect r ;
}
void wxClientDisplayRect(int *x, int *y, int *width, int *height)
{
Rect r ;
GetAvailableWindowPositioningBounds( GetMainDevice() , &r ) ;
if ( x )
*x = r.left ;
GetAvailableWindowPositioningBounds( GetMainDevice() , &r ) ;
if ( x )
*x = r.left ;
return false;
wxString p = path ;
return false;
wxString p = path ;
- if ( pos != wxNOT_FOUND ) {
+ if ( pos != wxNOT_FOUND )
return wxString( (char*) &from[1] , wxConvLocal , from[0] ) ;
}
return wxString( (char*) &from[1] , wxConvLocal , from[0] ) ;
}
// ----------------------------------------------------------------------------
// Common Event Support
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// Common Event Support
// ----------------------------------------------------------------------------
extern ProcessSerialNumber gAppProcess ;
void wxMacWakeUp()
extern ProcessSerialNumber gAppProcess ;
void wxMacWakeUp()
{
#if TARGET_CARBON
OSStatus err = noErr ;
{
#if TARGET_CARBON
OSStatus err = noErr ;
#if 0
// lead sometimes to race conditions, although all calls used should be thread safe ...
static wxMacCarbonEvent s_wakeupEvent ;
#if 0
// lead sometimes to race conditions, although all calls used should be thread safe ...
static wxMacCarbonEvent s_wakeupEvent ;
// Native Struct Conversions
// ----------------------------------------------------------------------------
// Native Struct Conversions
// ----------------------------------------------------------------------------
void wxMacRectToNative( const wxRect *wx , Rect *n )
{
n->left = wx->x ;
void wxMacRectToNative( const wxRect *wx , Rect *n )
{
n->left = wx->x ;
// Carbon Event Support
// ----------------------------------------------------------------------------
// Carbon Event Support
// ----------------------------------------------------------------------------
OSStatus wxMacCarbonEvent::GetParameter(EventParamName inName, EventParamType inDesiredType, UInt32 inBufferSize, void * outData)
{
return ::GetEventParameter( m_eventRef , inName , inDesiredType , NULL , inBufferSize , NULL , outData ) ;
OSStatus wxMacCarbonEvent::GetParameter(EventParamName inName, EventParamType inDesiredType, UInt32 inBufferSize, void * outData)
{
return ::GetEventParameter( m_eventRef , inName , inDesiredType , NULL , inBufferSize , NULL , outData ) ;
return ::SetControlData( m_controlRef , inPartCode , inTag , inSize , inData ) ;
}
return ::SetControlData( m_controlRef , inPartCode , inTag , inSize , inData ) ;
}
-OSStatus wxMacControl::SendEvent( EventRef event , OptionBits inOptions )
+OSStatus wxMacControl::SendEvent( EventRef event , OptionBits inOptions )
{
#if TARGET_API_MAC_OSX
return SendEventToEventTargetWithOptions( event,
{
#if TARGET_API_MAC_OSX
return SendEventToEventTargetWithOptions( event,
- HIObjectGetEventTarget( (HIObjectRef) m_controlRef ), inOptions );
+ HIObjectGetEventTarget( (HIObjectRef) m_controlRef ), inOptions );
#else
#pragma unused(inOptions)
return SendEventToEventTarget(event,GetControlEventTarget( m_controlRef ) ) ;
#else
#pragma unused(inOptions)
return SendEventToEventTarget(event,GetControlEventTarget( m_controlRef ) ) ;
OSStatus wxMacControl::SendHICommand( HICommand &command , OptionBits inOptions )
{
wxMacCarbonEvent event( kEventClassCommand , kEventCommandProcess ) ;
OSStatus wxMacControl::SendHICommand( HICommand &command , OptionBits inOptions )
{
wxMacCarbonEvent event( kEventClassCommand , kEventCommandProcess ) ;
event.SetParameter<HICommand>(kEventParamDirectObject,command) ;
event.SetParameter<HICommand>(kEventParamDirectObject,command) ;
return SendEvent( event , inOptions ) ;
}
OSStatus wxMacControl::SendHICommand( UInt32 commandID , OptionBits inOptions )
{
HICommand command ;
return SendEvent( event , inOptions ) ;
}
OSStatus wxMacControl::SendHICommand( UInt32 commandID , OptionBits inOptions )
{
HICommand command ;
memset( &command, 0 , sizeof(command) ) ;
command.commandID = commandID ;
return SendHICommand( command , inOptions ) ;
memset( &command, 0 , sizeof(command) ) ;
command.commandID = commandID ;
return SendHICommand( command , inOptions ) ;
void wxMacControl::Flash( ControlPartCode part , UInt32 ticks )
{
void wxMacControl::Flash( ControlPartCode part , UInt32 ticks )
{
- HiliteControl( m_controlRef , part ) ;
unsigned long finalTicks ;
unsigned long finalTicks ;
+
+ HiliteControl( m_controlRef , part ) ;
Delay( ticks , &finalTicks ) ;
HiliteControl( m_controlRef , kControlNoPart ) ;
}
Delay( ticks , &finalTicks ) ;
HiliteControl( m_controlRef , kControlNoPart ) ;
}
OSStatus wxMacControl::SetFocus( ControlFocusPart focusPart )
{
OSStatus wxMacControl::SetFocus( ControlFocusPart focusPart )
{
- return SetKeyboardFocus( GetControlOwner( m_controlRef ) ,
- m_controlRef , focusPart ) ;
+ return SetKeyboardFocus( GetControlOwner( m_controlRef ), m_controlRef, focusPart ) ;
}
bool wxMacControl::HasFocus() const
}
bool wxMacControl::HasFocus() const
ControlFontStyleRec fontStyle;
if ( font.MacGetThemeFontID() != kThemeCurrentPortFont )
{
ControlFontStyleRec fontStyle;
if ( font.MacGetThemeFontID() != kThemeCurrentPortFont )
{
- switch( font.MacGetThemeFontID() )
+ switch ( font.MacGetThemeFontID() )
- case kThemeSmallSystemFont : fontStyle.font = kControlFontSmallSystemFont ; break ;
- case 109 /*mini font */ : fontStyle.font = -5 ; break ;
- case kThemeSystemFont : fontStyle.font = kControlFontBigSystemFont ; break ;
- default : fontStyle.font = kControlFontBigSystemFont ; break ;
+ case kThemeSmallSystemFont :
+ fontStyle.font = kControlFontSmallSystemFont ;
+ break ;
+
+ case 109 : // mini font
+ fontStyle.font = -5 ;
+ break ;
+
+ case kThemeSystemFont :
+ fontStyle.font = kControlFontBigSystemFont ;
+ break ;
+
+ default :
+ fontStyle.font = kControlFontBigSystemFont ;
+ break ;
fontStyle.flags = kControlUseFontMask ;
}
else
fontStyle.flags = kControlUseFontMask ;
}
else
if ( foreground != *wxBLACK )
{
if ( foreground != *wxBLACK )
{
- fontStyle.foreColor = MAC_WXCOLORREF(foreground.GetPixel() ) ;
+ fontStyle.foreColor = MAC_WXCOLORREF( foreground.GetPixel() ) ;
fontStyle.flags |= kControlUseForeColorMask ;
}
fontStyle.flags |= kControlUseForeColorMask ;
}
::SetControl32BitMaximum( m_controlRef , maximum ) ;
}
::SetControl32BitMaximum( m_controlRef , maximum ) ;
}
-short wxMacControl::HandleKey( SInt16 keyCode, SInt16 charCode, EventModifiers modifiers )
+short wxMacControl::HandleKey( SInt16 keyCode, SInt16 charCode, EventModifiers modifiers )
{
return HandleControlKey( m_controlRef , keyCode , charCode , modifiers ) ;
}
{
return HandleControlKey( m_controlRef , keyCode , charCode , modifiers ) ;
}
GetWindowRegion ( GetControlOwner( m_controlRef ) , kWindowUpdateRgn , rgn ) ;
Boolean intersect = RectInRgn ( &controlBounds , rgn ) ;
DisposeRgn( rgn ) ;
GetWindowRegion ( GetControlOwner( m_controlRef ) , kWindowUpdateRgn , rgn ) ;
Boolean intersect = RectInRgn ( &controlBounds , rgn ) ;
DisposeRgn( rgn ) ;
#endif
{
Rect controlBounds ;
#endif
{
Rect controlBounds ;
GetControlBounds( m_controlRef, &controlBounds ) ;
if ( where )
{
GetControlBounds( m_controlRef, &controlBounds ) ;
if ( where )
{
OffsetRect( &whereLocal , controlBounds.left , controlBounds.top ) ;
SectRect( &controlBounds , &whereLocal, &controlBounds ) ;
}
OffsetRect( &whereLocal , controlBounds.left , controlBounds.top ) ;
SectRect( &controlBounds , &whereLocal, &controlBounds ) ;
}
InvalWindowRect( GetControlOwner( m_controlRef) , &controlBounds ) ;
}
}
InvalWindowRect( GetControlOwner( m_controlRef) , &controlBounds ) ;
}
}
if ( from->m_peer->MacGetTopLevelWindow()->MacUsesCompositing() )
{
HIPoint hiPoint ;
if ( from->m_peer->MacGetTopLevelWindow()->MacUsesCompositing() )
{
HIPoint hiPoint ;
hiPoint.x = pt->x ;
hiPoint.y = pt->y ;
HIViewConvertPoint( &hiPoint , from->m_controlRef , to->m_controlRef ) ;
hiPoint.x = pt->x ;
hiPoint.y = pt->y ;
HIViewConvertPoint( &hiPoint , from->m_controlRef , to->m_controlRef ) ;
- Rect fromRect ;
- Rect toRect ;
+ Rect fromRect, toRect ;
+
GetControlBounds( from->m_controlRef , &fromRect ) ;
GetControlBounds( to->m_controlRef , &toRect ) ;
if ( from->m_isRootControl )
GetControlBounds( from->m_controlRef , &fromRect ) ;
GetControlBounds( to->m_controlRef , &toRect ) ;
if ( from->m_isRootControl )
// since the rect passed in is always (even in non-compositing) relative
// to the (native) parent, we have to adjust to window relative here
wxMacControl* parent = m_peer->GetParent()->GetPeer() ;
// since the rect passed in is always (even in non-compositing) relative
// to the (native) parent, we have to adjust to window relative here
wxMacControl* parent = m_peer->GetParent()->GetPeer() ;
- if( parent->m_isRootControl == false )
+ if ( !parent->m_isRootControl )
{
Rect superRect ;
GetControlBounds( parent->m_controlRef , &superRect ) ;
{
Rect superRect ;
GetControlBounds( parent->m_controlRef , &superRect ) ;
SetControlBounds( m_controlRef , &controlBounds ) ;
if ( vis )
SetControlBounds( m_controlRef , &controlBounds ) ;
if ( vis )
InvalWindowRect( GetControlOwner( m_controlRef ) , &controlBounds ) ;
InvalWindowRect( GetControlOwner( m_controlRef ) , &controlBounds ) ;
}
}
void wxMacControl::GetRect( Rect *r )
{
GetControlBounds( m_controlRef , r ) ;
}
}
void wxMacControl::GetRect( Rect *r )
{
GetControlBounds( m_controlRef , r ) ;
- if ( m_isCompositing == false )
+ if ( !m_isCompositing )
{
// correct the case of the root control
if ( m_isRootControl )
{
// correct the case of the root control
if ( m_isRootControl )
else
{
wxMacControl* parent = m_peer->GetParent()->GetPeer() ;
else
{
wxMacControl* parent = m_peer->GetParent()->GetPeer() ;
- if( parent->m_isRootControl == false )
+ if ( !parent->m_isRootControl )
{
Rect superRect ;
GetControlBounds( parent->m_controlRef , &superRect ) ;
{
Rect superRect ;
GetControlBounds( parent->m_controlRef , &superRect ) ;
void wxMacControl::GetBestRect( Rect *r )
{
short baselineoffset ;
void wxMacControl::GetBestRect( Rect *r )
{
short baselineoffset ;
GetBestControlRect( m_controlRef , r , &baselineoffset ) ;
}
GetBestControlRect( m_controlRef , r , &baselineoffset ) ;
}
else
encoding = wxFont::GetDefaultEncoding();
else
encoding = wxFont::GetDefaultEncoding();
- UMASetControlTitle( m_controlRef , title , encoding ) ;
+ UMASetControlTitle( m_controlRef , title , encoding ) ;
}
void wxMacControl::GetFeatures( UInt32 * features )
}
void wxMacControl::GetFeatures( UInt32 * features )
OSStatus wxMacControl::GetRegion( ControlPartCode partCode , RgnHandle region )
{
OSStatus err = GetControlRegion( m_controlRef , partCode , region ) ;
OSStatus wxMacControl::GetRegion( ControlPartCode partCode , RgnHandle region )
{
OSStatus err = GetControlRegion( m_controlRef , partCode , region ) ;
- if ( m_isCompositing == false )
+ if ( !m_isCompositing )
{
if ( !m_isRootControl )
{
Rect r ;
{
if ( !m_isRootControl )
{
Rect r ;
GetControlBounds(m_controlRef, &r ) ;
if ( !EmptyRgn( region ) )
OffsetRgn( region , -r.left , -r.top ) ;
}
}
GetControlBounds(m_controlRef, &r ) ;
if ( !EmptyRgn( region ) )
OffsetRgn( region , -r.left , -r.top ) ;
}
}
#if TARGET_API_MAC_OSX
// SetNeedsDisplay would not invalidate the children
static void InvalidateControlAndChildren( HIViewRef control )
#if TARGET_API_MAC_OSX
// SetNeedsDisplay would not invalidate the children
static void InvalidateControlAndChildren( HIViewRef control )
OSStatus err = CountSubControls( control , &childrenCount ) ;
if ( err == errControlIsNotEmbedder )
return ;
OSStatus err = CountSubControls( control , &childrenCount ) ;
if ( err == errControlIsNotEmbedder )
return ;
wxASSERT_MSG( err == noErr , wxT("Unexpected error when accessing subcontrols") ) ;
wxASSERT_MSG( err == noErr , wxT("Unexpected error when accessing subcontrols") ) ;
- for ( UInt16 i = childrenCount ; i >=1 ; --i )
+ for ( UInt16 i = childrenCount ; i >=1 ; --i )
err = GetIndexedSubControl( control , i , & child ) ;
if ( err == errControlIsNotEmbedder )
return ;
err = GetIndexedSubControl( control , i , & child ) ;
if ( err == errControlIsNotEmbedder )
return ;
InvalidateControlAndChildren( child ) ;
}
}
InvalidateControlAndChildren( child ) ;
}
}
void wxMacControl::ScrollRect( wxRect *r , int dx , int dy )
{
wxASSERT( r != NULL ) ;
void wxMacControl::ScrollRect( wxRect *r , int dx , int dy )
{
wxASSERT( r != NULL ) ;
#if TARGET_API_MAC_OSX
if ( m_isCompositing )
{
#if TARGET_API_MAC_OSX
if ( m_isCompositing )
{
GetControlBounds( m_controlRef , &bounds ) ;
bounds.left += r->x ;
bounds.top += r->y ;
GetControlBounds( m_controlRef , &bounds ) ;
bounds.left += r->x ;
bounds.top += r->y ;
wxMacWindowClipper clip( m_peer ) ;
RgnHandle updateRgn = NewRgn() ;
::ScrollRect( &bounds , dx , dy , updateRgn ) ;
wxMacWindowClipper clip( m_peer ) ;
RgnHandle updateRgn = NewRgn() ;
::ScrollRect( &bounds , dx , dy , updateRgn ) ;
- InvalWindowRgn( GetControlOwner( m_controlRef ) , updateRgn ) ;
+ InvalWindowRgn( GetControlOwner( m_controlRef ) , updateRgn ) ;
+ DisposeRgn( updateRgn );
// SetNeedsDisplay would not invalidate the children
//
// SetNeedsDisplay would not invalidate the children
//
#ifdef __WXMAC_OSX__
// snippets from Sketch Sample from Apple :
#ifdef __WXMAC_OSX__
// snippets from Sketch Sample from Apple :
-#define kGenericRGBProfilePathStr "/System/Library/ColorSync/Profiles/Generic RGB Profile.icc"
+#define kGenericRGBProfilePathStr "/System/Library/ColorSync/Profiles/Generic RGB Profile.icc"
+
/*
This function locates, opens, and returns the profile reference for the calibrated
Generic RGB color space. It is up to the caller to call CMCloseProfile when done
with the profile reference this function returns.
*/
/*
This function locates, opens, and returns the profile reference for the calibrated
Generic RGB color space. It is up to the caller to call CMCloseProfile when done
with the profile reference this function returns.
*/
-CMProfileRef wxMacOpenGenericProfile(void)
+CMProfileRef wxMacOpenGenericProfile()
{
static CMProfileRef cachedRGBProfileRef = NULL;
{
static CMProfileRef cachedRGBProfileRef = NULL;
verify_noerr( CMOpenProfile(&cachedRGBProfileRef, &loc) );
}
verify_noerr( CMOpenProfile(&cachedRGBProfileRef, &loc) );
}
+ // clone the profile reference so that the caller has their own reference, not our cached one
- {
- // clone the profile reference so that the caller has their own reference, not our cached one
CMCloneProfileRef(cachedRGBProfileRef);
CMCloneProfileRef(cachedRGBProfileRef);
return cachedRGBProfileRef;
}
return cachedRGBProfileRef;
}
{
static wxMacCFRefHolder<CGColorSpaceRef> genericRGBColorSpace ;
{
static wxMacCFRefHolder<CGColorSpaceRef> genericRGBColorSpace ;
- if (genericRGBColorSpace == NULL)
- {
+ if (genericRGBColorSpace == NULL)
+ {
if ( UMAGetSystemVersion() >= 0x1040 )
{
genericRGBColorSpace.Set( CGColorSpaceCreateWithName( kCGColorSpaceGenericRGB ) ) ;
if ( UMAGetSystemVersion() >= 0x1040 )
{
genericRGBColorSpace.Set( CGColorSpaceCreateWithName( kCGColorSpaceGenericRGB ) ) ;
else
{
CMProfileRef genericRGBProfile = wxMacOpenGenericProfile();
else
{
CMProfileRef genericRGBProfile = wxMacOpenGenericProfile();
if (genericRGBProfile)
{
genericRGBColorSpace.Set( CGColorSpaceCreateWithPlatformColorSpace(genericRGBProfile) ) ;
if (genericRGBProfile)
{
genericRGBColorSpace.Set( CGColorSpaceCreateWithPlatformColorSpace(genericRGBProfile) ) ;
wxASSERT_MSG( genericRGBColorSpace != NULL, wxT("couldn't create the generic RGB color space") ) ;
wxASSERT_MSG( genericRGBColorSpace != NULL, wxT("couldn't create the generic RGB color space") ) ;
// we opened the profile so it is up to us to close it
CMCloseProfile(genericRGBProfile);
}
}
// we opened the profile so it is up to us to close it
CMCloseProfile(genericRGBProfile);
}
}
return genericRGBColorSpace;
}
#endif
return genericRGBColorSpace;
}
#endif