///////////////////////////////////////////////////////////////////////////// // Name: uma.h // Purpose: Universal MacOS API // Author: Stefan Csomor // Modified by: // Created: 03/02/99 // RCS-ID: $Id: // Copyright: (c) Stefan Csomor // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef H_UMA #define H_UMA #if defined(__POWERPC__) #if defined(__DARWIN__) #include #endif #endif #if !TARGET_CARBON // this is now defined in the latest headers // typedef short MenuItemIndex ; #endif void UMAInitToolbox( UInt16 inMoreMastersCalls) ; void UMACleanupToolbox() ; bool UMAHasAppearance() ; long UMAGetAppearanceVersion() ; bool UMAHasWindowManager() ; long UMAGetWindowManagerAttr() ; // process manager long UMAGetProcessMode() ; bool UMAGetProcessModeDoesActivateOnFGSwitch() ; // menu manager void UMASetMenuTitle( MenuRef menu , StringPtr title ) ; UInt32 UMAMenuEvent( EventRecord *inEvent ) ; void UMAEnableMenuItem( MenuRef inMenu , MenuItemIndex item ) ; void UMADisableMenuItem( MenuRef inMenu , MenuItemIndex item ) ; void UMAAppendSubMenuItem( MenuRef menu , StringPtr label , SInt16 submenuid ) ; void UMAInsertSubMenuItem( MenuRef menu , StringPtr label , MenuItemIndex item , SInt16 submenuid ) ; void UMAAppendMenuItem( MenuRef menu , StringPtr label , SInt16 key= 0, UInt8 modifiers = 0 ) ; void UMAInsertMenuItem( MenuRef menu , StringPtr label , MenuItemIndex item , SInt16 key = 0 , UInt8 modifiers = 0 ) ; // void UMASetMenuItemText( MenuRef menu , MenuItemIndex item , StringPtr label ) ; // MenuRef ::NewMenu( SInt16 menuid , StringPtr label ) ; // void UMADisposeMenu( MenuRef menu ) ; // handling the menubar // void UMADeleteMenu( SInt16 menuId ) ; // void UMAInsertMenu( MenuRef insertMenu , SInt16 afterId ) ; // void UMADrawMenuBar() ; // quickdraw void UMAShowWatchCursor() ; void UMAShowArrowCursor() ; #if TARGET_CARBON && PM_USE_SESSION_APIS OSStatus UMAPrOpen(PMPrintSession *macPrintSession) ; OSStatus UMAPrClose(PMPrintSession *macPrintSession) ; #else OSStatus UMAPrOpen() ; OSStatus UMAPrClose() ; #endif // 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 UMAEnableControl( ControlHandle inControl ) ; void UMADisableControl( ControlHandle inControl ) ; void UMAActivateControl( ControlHandle inControl ) ; void UMADeactivateControl( ControlHandle inControl ) ; //void UMAApplyThemeBackground (ThemeBackgroundKind inKind, // const Rect * bounds, // ThemeDrawState inState, // SInt16 inDepth, // Boolean inColorDev); //void UMASetThemeWindowBackground (WindowRef inWindow, // ThemeBrush inBrush, // Boolean inUpdate) ; /* ControlHandle ::NewControl(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 ::SetControlData (ControlHandle inControl, ControlPartCode inPart, ResType inTagName, Size inSize, Ptr inData) ; OSErr ::GetControlData (ControlHandle inControl, ControlPartCode inPart, ResType inTagName, Size inBufferSize, Ptr outBuffer, Size * outActualSize) ; OSErr ::GetControlDataSize (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 ) ; OSStatus UMAGetHelpMenu( MenuRef * outHelpMenu, MenuItemIndex * outFirstCustomItemIndex); /* can be NULL */ #if !TARGET_CARBON #define GetPortTextFont( p) ((p)->txFont ) #define GetPortTextSize( p) ((p)->txSize ) #define GetPortTextFace( p) ((p)->txFace ) #define GetPortTextMode( p) ((p)->txMode ) #define GetRegionBounds( r , b) ((*b) = (**r).rgnBBox) #define GetPortBounds( p , b) ((*b) = p->portRect ) #define GetWindowPortBounds( p , b) ((*b) = p->portRect ) #define GetPortVisibleRegion( p, r ) CopyRgn( p->visRgn , r ) #define GetQDGlobalsWhite( a ) (&((*a) = qd.white)) #define GetQDGlobalsBlack( a ) (&((*a) = qd.black)) #define GetQDGlobalsScreenBits( a ) ((*a) = qd.screenBits) #define GetQDGlobalsArrow( a ) (&((*a) = qd.arrow)) #define GetControlBounds( c , b ) &((*b) = (**c).contrlRect ) #define GetPortBitMapForCopyBits( p ) ((BitMap*) &(((CGrafPtr)p)->portPixMap )) #define GetControlOwner( control ) ((**control).contrlOwner) #define InvalWindowRgn( window , rgn ) InvalRgn( rgn ) #define GetPortPenMode( p ) (p->pnMode) #define SetPortPenMode( p , mode ) (p->pnMode = mode ) #define ClearCurrentScrap() ZeroScrap() ; // control manager #define GetControlReference( control ) ((**control).contrlRfCon) // list manager #define SetListSelectionFlags( list , options ) (**list).selFlags = options #define GetListRefCon( list ) (**list).refCon #endif #if TARGET_CARBON #define GetWindowUpdateRgn( inWindow , updateRgn ) GetWindowRegion( inWindow , kWindowUpdateRgn, updateRgn ) #endif // Appearance Drawing OSStatus UMADrawThemePlacard( const Rect *inRect , ThemeDrawState inState ) ; #endif