-#include <wx/mac/uma.h>
-#include <wx/mac/aga.h>
+#include "wx/defs.h"
+#include "wx/dc.h"
+#include "wx/mac/uma.h"
+#include "wx/mac/aga.h"
+
+#ifndef __UNIX__
+ #include <Navigation.h>
+#endif
// init
+#if !TARGET_CARBON
+#define GetControlOwner( control ) (**control).contrlOwner
+// since we always call this in the right context we don't have to set and reset the port
+#define InvalWindowRgn( window , rgn ) InvalRgn( rgn )
+#endif
+
static bool sUMAHasAppearance = false ;
static long sUMAAppearanceVersion = 0 ;
extern int gAGABackgroundColor ;
bool UMAHasWindowManager() { return sUMAHasWindowManager ; }
long UMAGetWindowManagerAttr() { return sUMAWindowManagerAttr ; }
-
+void UMACleanupToolbox()
+{
+#if UMA_USE_APPEARANCE
+ if ( sUMAHasAppearance )
+ {
+ UnregisterAppearanceClient() ;
+ }
+#endif
+ if ( NavServicesAvailable() )
+ {
+ NavUnload() ;
+ }
+}
void UMAInitToolbox( UInt16 inMoreMastersCalls )
{
#if !TARGET_CARBON
::InitGraf(&qd.thePort);
::InitFonts();
- ::InitWindows();
::InitMenus();
::TEInit();
::InitDialogs(0L);
long total,contig;
PurgeSpace(&total, &contig);
#else
- InitMenus() ;
+ InitCursor();
#endif
#if UMA_USE_APPEARANCE
}
#endif // UMA_USE_WINDOWMGR
#endif
+
+#ifndef __UNIX__
+#if TARGET_CARBON
+// Call currently implicitely done : InitFloatingWindows() ;
+#else
+ if ( sUMAHasWindowManager )
+ InitFloatingWindows() ;
+ else
+ InitWindows();
+#endif
+#endif
+
+ if ( NavServicesAvailable() )
+ {
+ NavLoad() ;
+ }
}
// process manager
// menu manager
-void UMASetMenuTitle( MenuRef menu , ConstStr255Param title )
+void UMASetMenuTitle( MenuRef menu , StringPtr title )
{
#if !TARGET_CARBON
long size = GetHandleSize( (Handle) menu ) ;
UInt32 UMAMenuEvent( EventRecord *inEvent )
{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
return MenuEvent( inEvent ) ;
}
else
+#endif
{
if ( inEvent->what == keyDown && inEvent->modifiers & cmdKey)
{
void UMAEnableMenuItem( MenuRef inMenu , MenuItemIndex inItem )
{
-#if UMA_USE_8_6
+#if UMA_USE_8_6 || TARGET_CARBON
EnableMenuItem( inMenu , inItem ) ;
#else
EnableItem( inMenu , inItem ) ;
void UMADisableMenuItem( MenuRef inMenu , MenuItemIndex inItem )
{
-#if UMA_USE_8_6
+#if UMA_USE_8_6 || TARGET_CARBON
DisableMenuItem( inMenu , inItem ) ;
#else
DisableItem( inMenu , inItem ) ;
#endif
}
+
+void UMAAppendSubMenuItem( MenuRef menu , StringPtr l , SInt16 id )
+{
+ Str255 label ;
+ memcpy( label , l , l[0]+1 ) ;
+ // hardcoded adding of the submenu combination for mac
+
+ int theEnd = label[0] + 1;
+ if (theEnd > 251)
+ theEnd = 251; // mac allows only 255 characters
+ label[theEnd++] = '/';
+ label[theEnd++] = hMenuCmd;
+ label[theEnd++] = '!';
+ label[theEnd++] = id ;
+ label[theEnd] = 0x00;
+ label[0] = theEnd;
+ MacAppendMenu(menu, label);
+}
+
+void UMAInsertSubMenuItem( MenuRef menu , StringPtr l , MenuItemIndex item , SInt16 id )
+{
+ Str255 label ;
+ memcpy( label , l , l[0]+1 ) ;
+ // hardcoded adding of the submenu combination for mac
+
+ int theEnd = label[0] + 1;
+ if (theEnd > 251)
+ theEnd = 251; // mac allows only 255 characters
+ label[theEnd++] = '/';
+ label[theEnd++] = hMenuCmd;
+ label[theEnd++] = '!';
+ label[theEnd++] = id;
+ label[theEnd] = 0x00;
+ label[0] = theEnd;
+ MacInsertMenuItem(menu, label , item);
+}
+
+void UMAAppendMenuItem( MenuRef menu , StringPtr l , SInt16 key, UInt8 modifiers )
+{
+ Str255 label ;
+ memcpy( label , l , l[0]+1 ) ;
+ if ( key )
+ {
+ int pos = label[0] ;
+ label[++pos] = '/';
+ label[++pos] = toupper( key );
+ label[0] = pos ;
+ }
+ MacAppendMenu( menu , label ) ;
+}
+
+void UMAInsertMenuItem( MenuRef menu , StringPtr l , MenuItemIndex item , SInt16 key, UInt8 modifiers )
+{
+ Str255 label ;
+ memcpy( label , l , l[0]+1 ) ;
+ if ( key )
+ {
+ int pos = label[0] ;
+ label[++pos] = '/';
+ label[++pos] = toupper( key );
+ label[0] = pos ;
+ }
+ MacInsertMenuItem( menu , label , item) ;
+}
+
+void UMADrawMenuBar()
+{
+ DrawMenuBar() ;
+}
+
+
+void UMASetMenuItemText( MenuRef menu , MenuItemIndex item , StringPtr label )
+{
+ ::SetMenuItemText( menu , item , label ) ;
+}
+
+MenuRef UMANewMenu( SInt16 menuid , StringPtr label )
+{
+ return ::NewMenu(menuid, label);
+}
+
+void UMADisposeMenu( MenuRef menu )
+{
+ DisposeMenu( menu ) ;
+}
+void UMADeleteMenu( SInt16 menuId )
+{
+ ::DeleteMenu( menuId ) ;
+}
+
+void UMAInsertMenu( MenuRef insertMenu , SInt16 afterId )
+{
+ ::InsertMenu( insertMenu , afterId ) ;
+}
+
+
// quickdraw
+int gPrOpenCounter = 0 ;
+
+#if TARGET_CARBON && PM_USE_SESSION_APIS
+OSStatus UMAPrOpen(PMPrintSession *macPrintSession)
+#else
+OSStatus UMAPrOpen()
+#endif
+{
+#if !TARGET_CARBON
+ OSErr err = noErr ;
+ ++gPrOpenCounter ;
+ if ( gPrOpenCounter == 1 )
+ {
+ PrOpen() ;
+ err = PrError() ;
+ wxASSERT( err == noErr ) ;
+ }
+ return err ;
+#else
+ OSStatus err = noErr ;
+ ++gPrOpenCounter ;
+ if ( gPrOpenCounter == 1 )
+ {
+ #if PM_USE_SESSION_APIS
+ err = PMCreateSession(macPrintSession) ;
+ #else
+ err = PMBegin() ;
+ #endif
+ wxASSERT( err == noErr ) ;
+ }
+ return err ;
+#endif
+}
+
+#if TARGET_CARBON && PM_USE_SESSION_APIS
+OSStatus UMAPrClose(PMPrintSession *macPrintSession)
+#else
+OSStatus UMAPrClose()
+#endif
+{
+#if !TARGET_CARBON
+ OSErr err = noErr ;
+ wxASSERT( gPrOpenCounter >= 1 ) ;
+ if ( gPrOpenCounter == 1 )
+ {
+ PrClose() ;
+ err = PrError() ;
+ wxASSERT( err == noErr ) ;
+ }
+ --gPrOpenCounter ;
+ return err ;
+#else
+ OSStatus err = noErr ;
+ wxASSERT( gPrOpenCounter >= 1 ) ;
+ if ( gPrOpenCounter == 1 )
+ {
+ #if PM_USE_SESSION_APIS
+ err = PMRelease(*macPrintSession) ;
+ *macPrintSession = kPMNoReference;
+ #else
+ err = PMEnd() ;
+ #endif
+ }
+ --gPrOpenCounter ;
+ return err ;
+#endif
+}
+
#if !TARGET_CARBON
pascal QDGlobalsPtr GetQDGlobalsPtr (void)
Str255 ptitle ;
strncpy( (char*)ptitle , title , 96 ) ;
ptitle[96] = 0 ;
+#if TARGET_CARBON
+ c2pstrcpy( ptitle, (char *)ptitle ) ;
+#else
c2pstr( (char*)ptitle ) ;
+#endif
SetWTitle( inWindowRef , ptitle ) ;
}
+
void UMAGetWTitleC( WindowRef inWindowRef , char *title )
{
GetWTitle( inWindowRef , (unsigned char*)title ) ;
+#if TARGET_CARBON
+ p2cstrcpy( title, (unsigned char *)title ) ;
+#else
p2cstr( (unsigned char*)title ) ;
+#endif
}
void UMAShowWindow( WindowRef inWindowRef )
{
ShowWindow( inWindowRef ) ;
+
}
void UMAHideWindow( WindowRef inWindowRef )
void UMAActivateControl( ControlHandle inControl )
{
- if ( UMAHasAppearance() )
- {
- ::ActivateControl( inControl ) ;
- }
- else
- {
- AGAActivateControl( inControl ) ;
- }
+#if UMA_USE_APPEARANCE
+ if ( UMAHasAppearance() )
+ {
+ if ( !UMAIsControlActive( inControl ) )
+ {
+ bool visible = IsControlVisible( inControl ) ;
+ if ( visible )
+ SetControlVisibility( inControl , false , false ) ;
+ ::ActivateControl( inControl ) ;
+ if ( visible ) {
+ SetControlVisibility( inControl , true , false ) ;
+ Rect ctrlBounds ;
+ InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
+ }
+ }
+ }
+ else
+#endif
+#if !TARGET_CARBON
+ {
+ AGAActivateControl( inControl ) ;
+ }
+#else
+ {
+ }
+#endif
}
void UMADrawControl( ControlHandle inControl )
{
- if ( UMAHasAppearance() )
- {
- ::DrawControlInCurrentPort( inControl ) ;
- }
- else
- {
- AGADrawControl( inControl ) ;
- }
+ WindowRef theWindow = GetControlOwner(inControl) ;
+ RgnHandle updateRgn = NewRgn() ;
+#if TARGET_CARBON
+ GetWindowRegion( theWindow , kWindowUpdateRgn, updateRgn ) ;
+#else
+ GetWindowUpdateRgn( theWindow , updateRgn ) ;
+#endif
+ Point zero = { 0 , 0 } ;
+ LocalToGlobal( &zero ) ;
+ OffsetRgn( updateRgn , -zero.h , -zero.v ) ;
+#if UMA_USE_APPEARANCE
+ if ( UMAHasAppearance() )
+ {
+ ::DrawControlInCurrentPort( inControl ) ;
+ }
+ else
+#endif
+#if !TARGET_CARBON
+ {
+ AGADrawControl( inControl ) ;
+ }
+#else
+ {
+ }
+#endif
+#if defined(UNIVERSAL_INTERFACES_VERSION) && (UNIVERSAL_INTERFACES_VERSION >= 0x0332)
+ InvalWindowRgn( theWindow, updateRgn) ;
+#else
+ InvalRgn( updateRgn ) ;
+#endif
+ DisposeRgn( updateRgn ) ;
+
}
void UMAMoveControl( ControlHandle inControl , short x , short y )
{
- if ( UMAHasAppearance() )
- {
- ::MoveControl( inControl , x , y ) ;
- }
- else
- {
- AGAMoveControl( inControl , x ,y ) ;
- }
+ if ( UMAHasAppearance() )
+ {
+ bool visible = UMAIsControlVisible( inControl ) ;
+ if ( visible ) {
+ SetControlVisibility( inControl , false , false ) ;
+ Rect ctrlBounds ;
+ InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
+ }
+ ::MoveControl( inControl , x , y ) ;
+ if ( visible ) {
+ SetControlVisibility( inControl , true , false ) ;
+ Rect ctrlBounds ;
+ InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
+ }
+ }
}
void UMASizeControl( ControlHandle inControl , short x , short y )
{
- if ( UMAHasAppearance() )
- {
- ::SizeControl( inControl , x , y ) ;
- }
- else
- {
- AGASizeControl( inControl , x ,y ) ;
- }
+ if ( UMAHasAppearance() )
+ {
+ bool visible = UMAIsControlVisible( inControl ) ;
+ if ( visible ) {
+ SetControlVisibility( inControl , false , false ) ;
+ Rect ctrlBounds ;
+ InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
+ }
+ ::SizeControl( inControl , x , y ) ;
+ if ( visible ) {
+ SetControlVisibility( inControl , true , false ) ;
+ Rect ctrlBounds ;
+ InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
+ }
+ }
}
void UMADeactivateControl( ControlHandle inControl )
{
- if ( UMAHasAppearance() )
- {
- ::DeactivateControl( inControl ) ;
- }
- else
- {
- AGADeactivateControl( inControl ) ;
- }
+ if ( UMAHasAppearance() )
+ {
+ if ( UMAIsControlActive( inControl ) )
+ {
+ bool visible = IsControlVisible( inControl ) ;
+ if ( visible )
+ SetControlVisibility( inControl , false , false ) ;
+ ::DeactivateControl( inControl ) ;
+ if ( visible ) {
+ SetControlVisibility( inControl , true , false ) ;
+ Rect ctrlBounds ;
+ InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
+ }
+ }
+ }
+}
+
+void UMASetThemeWindowBackground (WindowRef inWindow,
+ ThemeBrush inBrush,
+ Boolean inUpdate)
+{
+#if UMA_USE_APPEARANCE
+ if ( UMAHasAppearance() )
+ {
+ ::SetThemeWindowBackground( inWindow ,inBrush , inUpdate ) ;
+ }
+ else
+#endif
+#if !TARGET_CARBON
+ {
+ AGASetThemeWindowBackground( inWindow , inBrush , inUpdate ) ;
+ }
+#else
+ {
+ }
+#endif
}
-void UMASetThemeWindowBackground (WindowRef inWindow,
- ThemeBrush inBrush,
- Boolean inUpdate){
+void UMAApplyThemeBackground (ThemeBackgroundKind inKind,
+ const Rect * bounds,
+ ThemeDrawState inState,
+ SInt16 inDepth,
+ Boolean inColorDev)
+{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
- ::SetThemeWindowBackground( inWindow ,inBrush , inUpdate ) ;
+ /*
+ if ( sUMAAppearanceVersion >= 0x0110 )
+ ::ApplyThemeBackground( inKind ,bounds , inState , inDepth , inColorDev ) ;
+ */
}
else
+#endif
+#if !TARGET_CARBON
{
- AGASetThemeWindowBackground( inWindow , inBrush , inUpdate ) ;
+ AGAApplyThemeBackground( inKind ,bounds , inState , inDepth , inColorDev ) ;
}
+#else
+ {
+ }
+#endif
}
-
-ControlHandle UMANewControl(WindowPtr owningWindow,
- const Rect * boundsRect,
- ConstStr255Param controlTitle,
- Boolean initiallyVisible,
- SInt16 initialValue,
- SInt16 minimumValue,
- SInt16 maximumValue,
- SInt16 procID,
- SInt32 controlReference)
+ControlHandle UMANewControl(WindowPtr owningWindow,
+ const Rect * boundsRect,
+ ConstStr255Param controlTitle,
+ Boolean initiallyVisible,
+ SInt16 initialValue,
+ SInt16 minimumValue,
+ SInt16 maximumValue,
+ SInt16 procID,
+ SInt32 controlReference)
{
ControlHandle theControl = NULL ;
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
theControl = NewControl( owningWindow , boundsRect , controlTitle , initiallyVisible ,
initialValue , minimumValue , maximumValue , procID , controlReference ) ;
}
else
+#endif
+#if !TARGET_CARBON
{
theControl = AGANewControl( owningWindow , boundsRect , controlTitle , initiallyVisible ,
initialValue , minimumValue , maximumValue , procID , controlReference ) ;
}
+#else
+ {
+ }
+#endif
return theControl ;
}
void UMADisposeControl (ControlHandle theControl)
{
- if ( UMAHasAppearance() )
- {
- ::DisposeControl( theControl ) ;
- }
- else
- {
- ::DisposeControl( theControl ) ;
- }
+ if ( UMAHasAppearance() )
+ {
+ ::DisposeControl( theControl ) ;
+ }
+ else
+ {
+ ::DisposeControl( theControl ) ;
+ }
}
-
-void UMAHiliteControl (ControlHandle theControl,
- ControlPartCode hiliteState)
- {
- if ( UMAHasAppearance() )
- {
- ::HiliteControl( theControl , hiliteState ) ;
- }
- else
- {
- ::HiliteControl( theControl , hiliteState ) ;
- }
+void UMAHiliteControl (ControlHandle inControl,
+ ControlPartCode hiliteState)
+{
+ if ( UMAHasAppearance() )
+ {
+ ::HiliteControl( inControl , hiliteState ) ;
+ }
+ else
+ {
+ ::HiliteControl( inControl , hiliteState ) ;
+ }
}
-
-void UMAShowControl (ControlHandle theControl)
+// shows the control and adds the region to the update region
+void UMAShowControl (ControlHandle inControl)
{
- if ( UMAHasAppearance() )
- {
- ::ShowControl( theControl ) ;
- }
- else
- {
- ::ShowControl( theControl ) ;
- }
+ if ( UMAHasAppearance() )
+ {
+ SetControlVisibility( inControl , true , false ) ;
+ Rect ctrlBounds ;
+ InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
+ }
}
-
-void UMAHideControl (ControlHandle theControl)
+// Hides the control and adds the region to the update region
+void UMAHideControl (ControlHandle inControl)
{
- if ( UMAHasAppearance() )
- {
- ::HideControl( theControl ) ;
- }
- else
- {
- ::HideControl( theControl ) ;
- }
+ if ( UMAHasAppearance() )
+ {
+ ::HideControl( inControl ) ;
+ }
+ else
+ {
+ ::HideControl( inControl ) ;
+ }
}
void UMASetControlVisibility (ControlHandle inControl,
Boolean inIsVisible,
Boolean inDoDraw)
- {
- if ( UMAHasAppearance() )
- {
- ::SetControlVisibility( inControl , inIsVisible, inDoDraw ) ;
- }
+{
+ if ( UMAHasAppearance() )
+ {
+#if UMA_USE_APPEARANCE
+ ::SetControlVisibility( inControl , inIsVisible, inDoDraw ) ;
+#endif
+ }
}
bool UMAIsControlActive (ControlHandle inControl)
{
+#if TARGET_CARBON
+ return IsControlActive( inControl ) ;
+#else
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
return IsControlActive( inControl ) ;
}
else
+#endif
return (**inControl).contrlHilite == 0 ;
+#endif
}
bool UMAIsControlVisible (ControlHandle inControl)
{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
return IsControlVisible( inControl ) ;
}
+ else
+#endif
+ {
+#if !TARGET_CARBON
+ return (**inControl).contrlVis == 255 ;
+#endif
+ }
return true ;
}
Rect * outRect,
SInt16 * outBaseLineOffset)
{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
return GetBestControlRect( inControl , outRect , outBaseLineOffset ) ;
}
else
+#endif
+#if !TARGET_CARBON
{
return AGAGetBestControlRect( inControl , outRect , outBaseLineOffset ) ;
}
+#else
+ {
+ return noErr ;
+ }
+#endif
}
OSErr UMASetControlFontStyle (ControlHandle inControl,
const ControlFontStyleRec * inStyle)
{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
return ::SetControlFontStyle( inControl , inStyle ) ;
}
else
+#endif
+#if !TARGET_CARBON
return AGASetControlFontStyle( inControl , inStyle ) ;
+#else
+ {
+ return noErr ;
+ }
+#endif
}
OSErr UMACreateRootControl (WindowPtr inWindow,
ControlHandle * outControl)
{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
return CreateRootControl( inWindow , outControl ) ;
}
else
+#endif
+#if !TARGET_CARBON
return AGACreateRootControl( inWindow , outControl ) ;
+#else
+ {
+ return noErr ;
+ }
+#endif
}
OSErr UMAEmbedControl (ControlHandle inControl,
ControlHandle inContainer)
{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
return EmbedControl( inControl , inContainer ) ;
}
else
+#endif
+#if !TARGET_CARBON
return AGAEmbedControl( inControl , inContainer ) ; ;
+#else
+ {
+ return noErr ;
+ }
+#endif
}
ControlHandle inControl,
ControlFocusPart inPart)
{
+ OSErr err = noErr;
+ GrafPtr port ;
+ GetPort( &port ) ;
+#if TARGET_CARBON
+ SetPort( GetWindowPort( inWindow ) ) ;
+#else
+ SetPort( inWindow ) ;
+#endif
+ SetOrigin( 0 , 0 ) ;
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
- return SetKeyboardFocus( inWindow , inControl , inPart ) ;
+ err = SetKeyboardFocus( inWindow , inControl , inPart ) ;
}
else
- return AGASetKeyboardFocus( inWindow , inControl , inPart ) ;
+#endif
+#if !TARGET_CARBON
+ err = AGASetKeyboardFocus( inWindow , inControl , inPart ) ;
+#else
+ {
+ }
+#endif
+ SetPort( port ) ;
+ return err ;
}
SInt16 inModifiers,
ControlActionUPP inAction)
{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
return HandleControlClick( inControl , inWhere , inModifiers , inAction ) ;
}
else
+#endif
+#if !TARGET_CARBON
{
return AGAHandleControlClick( inControl , inWhere , inModifiers , inAction ) ;
}
+#else
+ {
+ return noErr ;
+ }
+#endif
}
SInt16 inCharCode,
SInt16 inModifiers)
{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
return HandleControlKey( inControl , inKeyCode , inCharCode , inModifiers ) ;
}
else
+#endif
+#if !TARGET_CARBON
{
return AGAHandleControlKey(inControl , inKeyCode , inCharCode , inModifiers ) ;
}
+#else
+ {
+ return noErr ;
+ }
+#endif
}
void UMAIdleControls (WindowPtr inWindow)
{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
IdleControls( inWindow ) ;
}
else
+#endif
+#if !TARGET_CARBON
{
AGAIdleControls( inWindow ) ;
}
+#else
+ {
+ }
+#endif
}
void UMAUpdateControls( WindowPtr inWindow , RgnHandle inRgn )
{
- if ( UMAHasAppearance() )
- {
- UpdateControls( inWindow , inRgn ) ;
- }
- else
- {
- AGAUpdateControls( inWindow , inRgn ) ;
- }
+ RgnHandle updateRgn = NewRgn() ;
+#if TARGET_CARBON
+ GetWindowRegion( inWindow , kWindowUpdateRgn, updateRgn ) ;
+#else
+ GetWindowUpdateRgn( inWindow , updateRgn ) ;
+#endif
+ Point zero = { 0 , 0 } ;
+ LocalToGlobal( &zero ) ;
+ OffsetRgn( updateRgn , -zero.h , -zero.v ) ;
+#if UMA_USE_APPEARANCE
+ if ( UMAHasAppearance() )
+ {
+ UpdateControls( inWindow , inRgn ) ;
+ }
+ else
+#endif
+#if !TARGET_CARBON
+ {
+ AGAUpdateControls( inWindow , inRgn ) ;
+ }
+#else
+ {
+ }
+#endif
+#if defined(UNIVERSAL_INTERFACES_VERSION) && (UNIVERSAL_INTERFACES_VERSION >= 0x0332)
+ InvalWindowRgn( inWindow, updateRgn) ;
+#else
+ InvalRgn( updateRgn ) ;
+#endif
+ DisposeRgn( updateRgn ) ;
+
}
OSErr UMAGetRootControl( WindowPtr inWindow , ControlHandle *outControl )
{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
return GetRootControl( inWindow , outControl ) ;
}
else
+#endif
+#if !TARGET_CARBON
{
return AGAGetRootControl( inWindow , outControl ) ;
}
+#else
+ {
+ return noErr ;
+ }
+#endif
}
Size inSize,
Ptr inData)
{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
return SetControlData( inControl , inPart , inTagName , inSize , inData ) ;
}
else
+#endif
+#if !TARGET_CARBON
return AGASetControlData( inControl , inPart , inTagName , inSize , inData ) ;
+#else
+ {
+ return noErr ;
+ }
+#endif
}
Ptr outBuffer,
Size * outActualSize)
{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
return ::GetControlData( inControl , inPart , inTagName , inBufferSize , outBuffer , outActualSize ) ;
}
else
+#endif
+#if !TARGET_CARBON
{
return AGAGetControlData( inControl , inPart , inTagName , inBufferSize , outBuffer , outActualSize ) ;
}
-
+#else
+ {
+ return noErr ;
+ }
+#endif
}
ResType inTagName,
Size * outMaxSize)
{
+#if UMA_USE_APPEARANCE
if ( UMAHasAppearance() )
{
return GetControlDataSize( inControl , inPart , inTagName , outMaxSize ) ;
}
else
+#endif
+#if !TARGET_CARBON
{
return AGAGetControlDataSize( inControl , inPart , inTagName , outMaxSize ) ;
}
+#else
+ {
+ return noErr ;
+ }
+#endif
}
case kMovableModalWindowClass :
procID = kWindowMovableModalDialogProc;
break ;
- case kDocumentWindowClass :
- procID = kWindowFullZoomGrowDocumentProc;
+ case kModalWindowClass :
+ procID = kWindowShadowDialogProc;
+ break ;
+ case kFloatingWindowClass :
+ if ( attributes & kWindowSideTitlebarAttribute )
+ {
+ if( ( attributes & kWindowResizableAttribute ) &&
+ ( attributes & kWindowFullZoomAttribute ) )
+ {
+ procID = kWindowFloatSideFullZoomGrowProc ;
+ }
+ else if( attributes & kWindowFullZoomAttribute )
+ {
+ procID = kWindowFloatSideFullZoomProc;
+ }
+ else if ( attributes & kWindowResizableAttribute )
+ {
+ procID = kWindowFloatSideGrowProc;
+ }
+ else
+ {
+ procID = kWindowFloatSideProc;
+ }
+ }
+ else
+ {
+ if( ( attributes & kWindowResizableAttribute ) &&
+ ( attributes & kWindowFullZoomAttribute ) )
+ {
+ procID = kWindowFloatFullZoomGrowProc ;
+ }
+ else if( attributes & kWindowFullZoomAttribute )
+ {
+ procID = kWindowFloatFullZoomProc;
+ }
+ else if ( attributes & kWindowResizableAttribute )
+ {
+ procID = kWindowFloatGrowProc;
+ }
+ else
+ {
+ procID = kWindowFloatProc;
+ }
+ }
break ;
+ case kDocumentWindowClass :
default :
- procID = kWindowMovableModalDialogProc;
+ if( ( attributes & kWindowResizableAttribute ) &&
+ ( attributes & kWindowFullZoomAttribute ) )
+ {
+ procID = kWindowFullZoomGrowDocumentProc;
+ }
+ else if( attributes & kWindowFullZoomAttribute )
+ {
+ procID = kWindowFullZoomDocumentProc;
+ }
+ else if ( attributes & kWindowResizableAttribute )
+ {
+ procID = kWindowGrowDocumentProc;
+ }
+ else
+ {
+ procID = kWindowDocumentProc;
+ }
break ;
}
}
{
case kMovableModalWindowClass :
procID = movableDBoxProc;
-// procID += kMovableModalDialogVariantCode;
break ;
- case kDocumentWindowClass :
- procID = zoomDocProc;
+ case kModalWindowClass :
+ procID = altDBoxProc;
break ;
+ case kFloatingWindowClass :
+ if ( attributes & kWindowSideTitlebarAttribute )
+ {
+ if( ( attributes & kWindowResizableAttribute ) &&
+ ( attributes & kWindowFullZoomAttribute ) )
+ {
+ procID = floatSideZoomGrowProc ;
+ }
+ else if( attributes & kWindowFullZoomAttribute )
+ {
+ procID = floatSideZoomProc;
+ }
+ else if ( attributes & kWindowResizableAttribute )
+ {
+ procID = floatSideGrowProc;
+ }
+ else
+ {
+ procID = floatSideProc;
+ }
+ }
+ else
+ {
+ if( ( attributes & kWindowResizableAttribute ) &&
+ ( attributes & kWindowFullZoomAttribute ) )
+ {
+ procID = floatZoomGrowProc ;
+ }
+ else if( attributes & kWindowFullZoomAttribute )
+ {
+ procID = floatZoomProc;
+ }
+ else if ( attributes & kWindowResizableAttribute )
+ {
+ procID = floatGrowProc;
+ }
+ else
+ {
+ procID = floatProc;
+ }
+ }
+ break ;
+ case kDocumentWindowClass :
default :
- procID = documentProc;
+ if( ( attributes & kWindowResizableAttribute ) &&
+ ( attributes & kWindowFullZoomAttribute ) )
+ {
+ procID = zoomDocProc;
+ }
+ else if( attributes & kWindowFullZoomAttribute )
+ {
+ procID = zoomNoGrow;
+ }
+ else if ( attributes & kWindowResizableAttribute )
+ {
+ procID = documentProc;
+ }
+ else
+ {
+ procID = noGrowDocProc;
+ }
+ break ;
break ;
}
}
{
// bool isHighlighted = IsWindowHighlited( inWindowRef ) ;
// if ( inActivate != isHightlited )
- HiliteWindow( inWindowRef , inActivate ) ;
+ 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 )
+{
+#if UMA_USE_APPEARANCE
+ if ( UMAHasAppearance() )
+ {
+ ::DrawThemePlacard( inRect , inState ) ;
+ }
+ else
+#endif
+#if !TARGET_CARBON
+ {
+ }
+#else
+ {
+ }
+#endif
+ return noErr ;
+}