X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7d9d1fd7088fb2d9f27da3d4c232029807c4eeb7..12cd5f34e72ba5e6e295936d2a74b9080552a331:/src/mac/carbon/uma.cpp diff --git a/src/mac/carbon/uma.cpp b/src/mac/carbon/uma.cpp index 91203d7176..2e50863903 100644 --- a/src/mac/carbon/uma.cpp +++ b/src/mac/carbon/uma.cpp @@ -15,8 +15,12 @@ #define wxUSE_MLTE 0 + static bool sUMAHasAppearance = false ; static long sUMAAppearanceVersion = 0 ; +static bool sUMAHasAquaLayout = false ; +static bool sUMASystemInitialized = false ; + extern int gAGABackgroundColor ; bool UMAHasAppearance() { return sUMAHasAppearance ; } long UMAGetAppearanceVersion() { return sUMAAppearanceVersion ; } @@ -26,6 +30,8 @@ static long sUMAWindowManagerAttr = 0 ; bool UMAHasWindowManager() { return sUMAHasWindowManager ; } long UMAGetWindowManagerAttr() { return sUMAWindowManagerAttr ; } +bool UMAHasAquaLayout() { return sUMAHasAquaLayout ; } +bool UMASystemIsInitialized() { return sUMASystemInitialized ; } void UMACleanupToolbox() { @@ -104,6 +110,11 @@ void UMAInitToolbox( UInt16 inMoreMastersCalls ) defaults.encoding = kTXNSystemDefaultEncoding; TXNInitTextension(&defaults, 1, (kTXNAlwaysUseQuickDrawTextMask | kTXNWantMoviesMask | kTXNWantSoundMask | kTXNWantGraphicsMask)); #endif + long menuMgrAttr ; + Gestalt( gestaltMenuMgrAttr , &menuMgrAttr ) ; + if ( menuMgrAttr & gestaltMenuMgrAquaLayoutMask ) + sUMAHasAquaLayout = true ; + sUMASystemInitialized = true ; } // process manager @@ -133,6 +144,7 @@ bool UMAGetProcessModeDoesActivateOnFGSwitch() void UMASetMenuTitle( MenuRef menu , StringPtr title ) { +/* #if !TARGET_CARBON long size = GetHandleSize( (Handle) menu ) ; const long headersize = 14 ; @@ -155,8 +167,9 @@ void UMASetMenuTitle( MenuRef menu , StringPtr title ) SetHandleSize( (Handle) menu , size + (newlen - oldlen ) ) ; } #else +*/ SetMenuTitle( menu , title ) ; -#endif +//#endif } UInt32 UMAMenuEvent( EventRecord *inEvent ) @@ -593,3 +606,55 @@ OSStatus UMAGetHelpMenu( return helpMenuStatus ; #endif } + +wxMacPortStateHelper::wxMacPortStateHelper( GrafPtr newport) +{ + m_clip = NULL ; + Setup( newport ) ; +} + +wxMacPortStateHelper::wxMacPortStateHelper() +{ + m_clip = NULL ; +} + +void wxMacPortStateHelper::Setup( GrafPtr newport ) +{ + GetPort( &m_oldPort ) ; + SetPort( newport ) ; + wxASSERT_MSG( m_clip == NULL , "Cannot call setup twice" ) ; + m_clip = NewRgn() ; + GetClip( m_clip ); + m_textFont = GetPortTextFont( (CGrafPtr) newport); + m_textSize = GetPortTextSize( (CGrafPtr) newport); + m_textStyle = GetPortTextFace( (CGrafPtr) newport); + m_textMode = GetPortTextMode( (CGrafPtr) newport); + GetThemeDrawingState( &m_drawingState ) ; + m_currentPort = newport ; +} +void wxMacPortStateHelper::Clear() +{ + if ( m_clip ) + { + DisposeRgn( m_clip ) ; + DisposeThemeDrawingState( m_drawingState ) ; + m_clip = NULL ; + } +} + +wxMacPortStateHelper::~wxMacPortStateHelper() +{ + if ( m_clip ) + { + SetPort( m_currentPort ) ; + SetClip( m_clip ) ; + DisposeRgn( m_clip ) ; + TextFont( m_textFont ); + TextSize( m_textSize ); + TextFace( m_textStyle ); + TextMode( m_textMode ); + SetThemeDrawingState( m_drawingState , true ) ; + SetPort( m_oldPort ) ; + } +} +