+/////////////////////////////////////////////////////////////////////////////
+// Name: uma.h
+// Purpose: Universal MacOS API
+// Author: Stefan Csomor
+// Modified by:
+// Created: 03/02/99
+// RCS-ID: $Id:
+// Copyright: (c) Stefan Csomor
+// Licence: LGPL licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef H_UMA
+#define H_UMA
+
+// define this to be 1 if you have the 8.6 libs (weak linked)
+
+#define UMA_USE_8_6 0
+
+// define this to be 1 if you have the carbon libs (weak linked or PreCarbon.lib)
+
+#define UMA_USE_CARBON 0
+
+#define UMA_USE_APPEARANCE 1
+#define UMA_USE_WINDOWMGR 1
+
+#if !UMA_USE_8_6 && UMA_USE_WINDOWMGR
+#undef UMA_USE_WINDOWMGR
+#define UMA_USE_WINDOWMGR 0
+#endif
+
+#if !TARGET_CARBON
+ typedef short MenuItemIndex ;
+#endif
+
+void UMAInitToolbox( UInt16 inMoreMastersCalls) ;
+bool UMAHasAppearance() ;
+long UMAGetAppearanceVersion() ;
+
+// process manager
+
+long UMAGetProcessMode() ;
+bool UMAGetProcessModeDoesActivateOnFGSwitch() ;
+
+// menu manager
+
+void UMASetMenuTitle( MenuRef menu , ConstStr255Param title ) ;
+UInt32 UMAMenuEvent( EventRecord *inEvent ) ;
+void UMAEnableMenuItem( MenuRef inMenu , MenuItemIndex item ) ;
+void UMADisableMenuItem( MenuRef inMenu , MenuItemIndex item ) ;
+// quickdraw
+
+void UMAShowWatchCursor() ;
+void UMAShowArrowCursor() ;
+
+// window manager
+
+GrafPtr UMAGetWindowPort( WindowRef inWindowRef ) ;
+void UMADisposeWindow( WindowRef inWindowRef ) ;
+void UMASetWTitleC( WindowRef inWindowRef , const char *title ) ;
+void UMAGetWTitleC( WindowRef inWindowRef , char *title ) ;
+
+void UMADrawGrowIcon( WindowRef inWindowRef ) ;
+void UMAShowWindow( WindowRef inWindowRef ) ;
+void UMAHideWindow( WindowRef inWindowRef ) ;
+void UMAShowHide( WindowRef inWindowRef , Boolean show) ;
+void UMASelectWindow( WindowRef inWindowRef ) ;
+void UMABringToFront( WindowRef inWindowRef ) ;
+void UMASendBehind( WindowRef inWindowRef , WindowRef behindWindow ) ;
+void UMACloseWindow(WindowRef inWindowRef) ;
+
+// appearance manager
+
+void UMADrawControl( ControlHandle inControl ) ;
+
+void UMAActivateControl( ControlHandle inControl ) ;
+void UMADeactivateControl( ControlHandle inControl ) ;
+void UMASetThemeWindowBackground (WindowRef inWindow,
+ ThemeBrush inBrush,
+ Boolean inUpdate) ;
+ControlHandle UMANewControl(WindowPtr owningWindow,
+ const Rect * boundsRect,
+ ConstStr255Param controlTitle,
+ Boolean initiallyVisible,
+ SInt16 initialValue,
+ SInt16 minimumValue,
+ SInt16 maximumValue,
+ SInt16 procID,
+ SInt32 controlReference) ;
+void UMADisposeControl (ControlHandle theControl) ;
+void UMAHiliteControl (ControlHandle theControl,
+ ControlPartCode hiliteState) ;
+void UMAShowControl (ControlHandle theControl) ;
+void UMAHideControl (ControlHandle theControl);
+void UMASetControlVisibility (ControlHandle inControl,
+ Boolean inIsVisible,
+ Boolean inDoDraw);
+
+bool UMAIsControlActive (ControlHandle inControl);
+bool UMAIsControlVisible (ControlHandle inControl);
+void UMAActivateControl (ControlHandle inControl);
+void UMADeactivateControl (ControlHandle inControl);
+
+OSErr UMAGetBestControlRect (ControlHandle inControl,
+ Rect * outRect,
+ SInt16 * outBaseLineOffset);
+OSErr UMASetControlFontStyle (ControlHandle inControl,
+ const ControlFontStyleRec * inStyle) ;
+
+
+void UMAMoveControl( ControlHandle inControl , short x , short y ) ;
+void UMASizeControl( ControlHandle inControl , short x , short y ) ;
+// control hierarchy
+
+OSErr UMACreateRootControl (WindowPtr inWindow,
+ ControlHandle * outControl) ;
+
+OSErr UMAEmbedControl (ControlHandle inControl,
+ ControlHandle inContainer);
+
+// keyboard focus
+OSErr UMASetKeyboardFocus (WindowPtr inWindow,
+ ControlHandle inControl,
+ ControlFocusPart inPart) ;
+
+
+// events
+
+ControlPartCode UMAHandleControlClick (ControlHandle inControl,
+ Point inWhere,
+ SInt16 inModifiers,
+ ControlActionUPP inAction) ;
+SInt16 UMAHandleControlKey (ControlHandle inControl,
+ SInt16 inKeyCode,
+ SInt16 inCharCode,
+ SInt16 inModifiers);
+
+void UMAIdleControls (WindowPtr inWindow) ;
+
+void UMAUpdateControls( WindowPtr inWindow , RgnHandle inRgn ) ;
+OSErr UMAGetRootControl( WindowPtr inWindow , ControlHandle *outControl ) ;
+
+// handling control data
+
+OSErr UMASetControlData (ControlHandle inControl,
+ ControlPartCode inPart,
+ ResType inTagName,
+ Size inSize,
+ Ptr inData) ;
+
+OSErr UMAGetControlData (ControlHandle inControl,
+ ControlPartCode inPart,
+ ResType inTagName,
+ Size inBufferSize,
+ Ptr outBuffer,
+ Size * outActualSize) ;
+OSErr UMAGetControlDataSize (ControlHandle inControl,
+ ControlPartCode inPart,
+ ResType inTagName,
+ Size * outMaxSize);
+
+
+// system 8.0
+
+short UMAFindWindow( Point inPoint , WindowRef *outWindow ) ;
+OSStatus UMAGetWindowFeatures( WindowRef inWindowRef , UInt32 *outFeatures ) ;
+OSStatus UMAGetWindowRegion( WindowRef inWindowRef , WindowRegionCode inRegionCode , RgnHandle ioWinRgn ) ;
+OSStatus UMACollapseWindow( WindowRef inWindowRef , Boolean inCollapseIt ) ;
+OSStatus UMACollapseAllWindows( Boolean inCollapseEm ) ;
+Boolean UMAIsWindowCollapsed( WindowRef inWindowRef ) ;
+Boolean UMAIsWindowCollapsable( WindowRef inWindowRef ) ;
+
+// system 8.5
+
+OSStatus UMACreateNewWindow( WindowClass windowClass , WindowAttributes attributes , const Rect *bounds, WindowRef *outWindow ) ;
+OSStatus UMAGetWindowClass( WindowRef inWindowRef , WindowClass *outWindowClass ) ;
+OSStatus UMAGetWindowAttributes( WindowRef inWindowRef , WindowAttributes *outAttributes ) ;
+
+void UMAShowFloatingWindows() ;
+void UMAHideFloatingWindows() ;
+Boolean UMAAreFloatingWindowsVisible() ;
+WindowRef UMAFrontWindow() ;
+WindowRef UMAFrontNonFloatingWindow() ;
+
+// floaters support
+
+bool UMAIsWindowFloating( WindowRef inWindow ) ;
+bool UMAIsWindowModal( WindowRef inWindow ) ;
+WindowRef UMAGetActiveWindow() ;
+WindowRef UMAGetActiveNonFloatingWindow() ;
+
+void UMAHighlightAndActivateWindow( WindowRef inWindowRef , bool inActivate ) ;
+
+
+#endif
\ No newline at end of file