-#include "wx/defs.h"
-#include "wx/dc.h"
-#include "wx/mac/uma.h"
-#include <MacTextEditor.h>
-
-#ifndef __DARWIN__
-# include <Navigation.h>
-# if defined(TARGET_CARBON)
-# if PM_USE_SESSION_APIS
-# include <PMCore.h>
-# endif
-# include <PMApplication.h>
-# endif
-#endif
-
-// since we have decided that we only support 8.6 upwards we are
-// checking for these minimum requirements in the startup code of
-// the application so all wxWindows code can safely assume that appearance 1.1
-// windows manager, control manager, navigation services etc. are
-// present
-
-#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 ; }
-
-static bool sUMAHasWindowManager = false ;
-static long sUMAWindowManagerAttr = 0 ;
-
-bool UMAHasWindowManager() { return sUMAHasWindowManager ; }
-long UMAGetWindowManagerAttr() { return sUMAWindowManagerAttr ; }
-bool UMAHasAquaLayout() { return sUMAHasAquaLayout ; }
-bool UMASystemIsInitialized() { return sUMASystemInitialized ; }
-
-void UMACleanupToolbox()
-{
- if ( sUMAHasAppearance )
- {
- UnregisterAppearanceClient() ;
- }
- if ( NavServicesAvailable() )
- {
- NavUnload() ;
- }
-#if wxUSE_MLTE
- TXNTerminateTextension( ) ;
-#endif
-}
-void UMAInitToolbox( UInt16 inMoreMastersCalls )
-{
-#if !TARGET_CARBON
- ::MaxApplZone();
- for (long i = 1; i <= inMoreMastersCalls; i++)
- ::MoreMasters();
-
- ::InitGraf(&qd.thePort);
- ::InitFonts();
- ::InitMenus();
- ::TEInit();
- ::InitDialogs(0L);
- ::FlushEvents(everyEvent, 0);
- ::InitCursor();
- long total,contig;
- PurgeSpace(&total, &contig);
-#else
- InitCursor();
-#endif
-
- long theAppearance ;
- if ( Gestalt( gestaltAppearanceAttr, &theAppearance ) == noErr )
- {
- sUMAHasAppearance = true ;
- RegisterAppearanceClient();
- if ( Gestalt( gestaltAppearanceVersion, &theAppearance ) == noErr )
- {
- sUMAAppearanceVersion = theAppearance ;
- }
- else
- {
- sUMAAppearanceVersion = 0x0100 ;
- }
- }
- if ( Gestalt( gestaltWindowMgrAttr, &sUMAWindowManagerAttr ) == noErr )
- {
- sUMAHasWindowManager = sUMAWindowManagerAttr & gestaltWindowMgrPresent ;
- }
-
-#ifndef __DARWIN__
-#if TARGET_CARBON
-// Call currently implicitely done : InitFloatingWindows() ;
-#else
- if ( sUMAHasWindowManager )
- InitFloatingWindows() ;
- else
- InitWindows();
-#endif
-#endif
-
- if ( NavServicesAvailable() )
- {
- NavLoad() ;
- }
-
-#if wxUSE_MLTE
- TXNMacOSPreferredFontDescription defaults;
- defaults.fontID = kFontIDGeneva ;
- defaults.pointSize = (10 << 16) ;
- defaults.fontStyle = kTXNDefaultFontStyle;
- 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
-long UMAGetProcessMode()
-{
- OSErr err ;
- ProcessInfoRec processinfo;
- ProcessSerialNumber procno ;
-
- procno.highLongOfPSN = NULL ;
- procno.lowLongOfPSN = kCurrentProcess ;
- processinfo.processInfoLength = sizeof(ProcessInfoRec);
- processinfo.processName = NULL;
- processinfo.processAppSpec = NULL;
-
- err = ::GetProcessInformation( &procno , &processinfo ) ;
- wxASSERT( err == noErr ) ;
- return processinfo.processMode ;
-}
-
-bool UMAGetProcessModeDoesActivateOnFGSwitch()
-{
- return UMAGetProcessMode() & modeDoesActivateOnFGSwitch ;
-}