#include "wx/defs.h"
+#include "wx/dc.h"
#include "wx/mac/uma.h"
#include "wx/mac/aga.h"
#ifdef __UNIX__
- #include <NavigationServices/Navigation.h>
+ #include <Carbon/Carbon.h>
#else
#include <Navigation.h>
#endif
// init
+#if !TARGET_CARBON
+#define GetControlOwner( control ) (**control).contrlOwner
+#endif
+
static bool sUMAHasAppearance = false ;
static long sUMAAppearanceVersion = 0 ;
extern int gAGABackgroundColor ;
void UMAActivateControl( ControlHandle inControl )
{
+ RgnHandle updateRgn = NewRgn() ;
+ GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ;
#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
{
}
#endif
+ InvalRgn( updateRgn ) ;
}
void UMADrawControl( ControlHandle inControl )
{
+ RgnHandle updateRgn = NewRgn() ;
+ GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ;
#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
{
}
#endif
+ InvalRgn( updateRgn ) ;
}
void UMAMoveControl( ControlHandle inControl , short x , short y )
{
+ RgnHandle updateRgn = NewRgn() ;
+ GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ;
#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
{
}
#endif
+ InvalRgn( updateRgn ) ;
}
void UMASizeControl( ControlHandle inControl , short x , short y )
{
+ RgnHandle updateRgn = NewRgn() ;
+ GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ;
#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
{
}
#endif
+ InvalRgn( updateRgn ) ;
}
void UMADeactivateControl( ControlHandle inControl )
{
+ RgnHandle updateRgn = NewRgn() ;
+ GetWindowUpdateRgn( GetControlOwner(inControl) , updateRgn ) ;
#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
{
}
#endif
+ InvalRgn( updateRgn ) ;
}
void UMASetThemeWindowBackground (WindowRef inWindow,
void UMAHiliteControl (ControlHandle theControl,
ControlPartCode hiliteState)
{
+ RgnHandle updateRgn = NewRgn() ;
+ GetWindowUpdateRgn( GetControlOwner(theControl) , updateRgn ) ;
if ( UMAHasAppearance() )
{
::HiliteControl( theControl , hiliteState ) ;
{
::HiliteControl( theControl , hiliteState ) ;
}
+ InvalRgn( updateRgn ) ;
}
void UMAShowControl (ControlHandle theControl)
{
+ RgnHandle updateRgn = NewRgn() ;
+ GetWindowUpdateRgn( GetControlOwner(theControl) , updateRgn ) ;
if ( UMAHasAppearance() )
{
::ShowControl( theControl ) ;
{
::ShowControl( theControl ) ;
}
+ InvalRgn( updateRgn ) ;
}
{
if ( UMAHasAppearance() )
{
- ::HideControl( theControl ) ;
+ ::HideControl( theControl ) ;
}
else
{
- ::HideControl( theControl ) ;
+ ::HideControl( theControl ) ;
}
}
}
#endif
SetPort( port ) ;
- wxDC::MacInvalidateSetup() ;
return err ;
}
void UMAUpdateControls( WindowPtr inWindow , RgnHandle inRgn )
{
+ RgnHandle updateRgn = NewRgn() ;
+ GetWindowUpdateRgn( inWindow , updateRgn ) ;
#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
{
}
#endif
+ InvalRgn( updateRgn ) ;
}
OSErr UMAGetRootControl( WindowPtr inWindow , ControlHandle *outControl )
{
// bool isHighlighted = IsWindowHighlited( inWindowRef ) ;
// if ( inActivate != isHightlited )
- HiliteWindow( inWindowRef , inActivate ) ;
- ControlHandle control = NULL ;
- UMAGetRootControl( inWindowRef , & control ) ;
- if ( control )
- {
- if ( inActivate )
- UMAActivateControl( control ) ;
- else
- UMADeactivateControl( control ) ;
- }
+ GrafPtr port ;
+ GetPort( &port ) ;
+#if TARGET_CARBON
+ SetPort( GetWindowPort( inWindowRef ) ) ;
+#else
+ SetPort( inWindowRef ) ;
+#endif
+ SetOrigin( 0 , 0 ) ;
+ HiliteWindow( inWindowRef , inActivate ) ;
+ ControlHandle control = NULL ;
+ UMAGetRootControl( inWindowRef , & control ) ;
+ if ( control )
+ {
+ if ( inActivate )
+ UMAActivateControl( control ) ;
+ else
+ UMADeactivateControl( control ) ;
+ }
+ SetPort( port ) ;
}
}
OSStatus UMADrawThemePlacard( const Rect *inRect , ThemeDrawState inState )