home *** CD-ROM | disk | FTP | other *** search
Wrap
/* File: DesktopAnimation.h Contains: Desktop Animation Interfaces. Version: Technology: System 8 Release: Universal Interfaces 3.0d3 on Copland DR1 Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved. Bugs?: If you find a problem with this file, send the file and version information (from above) and the problem description to: Internet: apple.bugs@applelink.apple.com AppleLink: APPLE.BUGS */ #ifndef __DESKTOPANIMATION__ #define __DESKTOPANIMATION__ #ifndef __APPEARANCE__ #include <Appearance.h> #endif #ifndef __CODEFRAGMENTS__ #include <CodeFragments.h> #endif #ifndef __COLLECTIONS__ #include <Collections.h> #endif #ifndef __DIALOGS__ #include <Dialogs.h> #endif #ifndef __DISPLAYS__ #include <Displays.h> #endif #ifndef __FILEMANAGERTYPES__ #include <FileManagerTypes.h> #endif #ifndef __GXTYPES__ #include <GXTypes.h> #endif #ifndef __QDOFFSCREEN__ #include <QDOffscreen.h> #endif #ifndef __TEXTOBJECTS__ #include <TextObjects.h> #endif #ifndef __TYPES__ #include <Types.h> #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT_SUPPORTED #pragma import on #endif #if PRAGMA_ALIGN_SUPPORTED #pragma options align=mac68k #endif #if FOR_SYSTEM8_COOPERATIVE /* Gestalt selectors to tell if DAM is installed #### Move to Gestalt.i later */ enum { gestaltDesktopAnimationMgr = 'danm', gestaltDesktopAnimationMgrPresent = 0 /* If bit set then DAM is present*/ }; /* Desktop Animation module file resources */ enum { kDesktopAnimModuleFileType = 'damm', kDesktopAnimListRsrcType = 'giz#', kDesktopAnimListRsrcVers = 0, kDesktopAnimListRsrcID = 128, kDesktopAnimFirstRsrcID = 8192, kDesktopAnimLastRsrcID = 16383 }; /* Properties relating to the DesktopAnimPanel */ enum { kDesktopAnimPanelPropertyTag = 'ptag', kDesktopAnimPanelUndoTextTag = 'utxt', kDesktopAnimPanelValueToggleTag = 'vtog' }; /* Desktop Animation info values */ enum { kDesktopAnimModuleInfoVers = 0, kDesktopAnimModuleInfoShareAny = 0 }; /* DesktopAnimFlags */ enum { kDesktopAnimDesktop = 0x00000001, kDesktopAnimBackground = 0x00000002, /* No drawing behind this module*/ kDesktopAnimScreenSaver = 0x00000004, kDesktopAnimCanShareWindow = 0x00000008, kDesktopAnimAllDisplays = 0x00000010, kDesktopAnimIsSharingWindow = 0x00000020, /* If called as part of multiple modules*/ kDesktopAnimUnfadeOnKeyboard = 0x00000040, /* ScreenSaver only*/ kDesktopAnimUnfadeOnMouseMotion = 0x00000080, /* ScreenSaver only*/ kDesktopAnimOwnsColorPalette = 0x00000100, /* ScreenSaver only*/ kDesktopAnimRequestTerminate = 0x00000200, /* ScreenSaver output only*/ kDesktopAnimDrawingOffscreen = 0x00000400, /* Should be set when asking a module to draw to an offscreen*/ /* Flags that indicate what mode we are running in*/ kDesktopAnimModeFlags = kDesktopAnimDesktop | kDesktopAnimBackground | kDesktopAnimScreenSaver, /* Flags we determine at runtime when initializing/running a module*/ kDesktopAnimRuntimeFlags = kDesktopAnimModeFlags | kDesktopAnimIsSharingWindow | kDesktopAnimAllDisplays | kDesktopAnimOwnsColorPalette | kDesktopAnimRequestTerminate | kDesktopAnimDrawingOffscreen }; typedef UInt32 DesktopAnimFlags; /* Pre-defined Desktop Animation property tags */ enum { kDesktopAnimDisplayRgnTag = 'drgn', kDesktopAnimDisplayDepthTag = 'dpth' }; /* Error codes (will be moved to Error.i when we have an assigned range) */ enum { kDesktopAnimModuleNotFoundErr = -3000, kDesktopAnimServerNotFoundErr = -3001, kDesktopAnimDrawNotFoundErr = -3002, kDesktopAnimPanelNotFoundErr = -3003, kDesktopAnimDrawInitErr = -3004, kDesktopAnimDrawPanelErr = -3005, kDesktopAnimBadScreenSaverErr = -3006, kDesktopAnimScreenSaverInternalErr = -3007, kDesktopAnimItemNotModuleErr = -3008, kDesktopAnimNoQuickdrawGXErr = -3009, kDesktopAnimBadDesktopAnimModuleDescRefErr = -3010, kDesktopAnimUnknownModuleListVersErr = -3011, kDesktopAnimUnknownModuleInfoVersErr = -3012, kDesktopAnimUnknownPatternListVersErr = -3013, kDesktopAnimIllegalDesktopAnimationStatusErr = -3014, kDesktopAnimModuleNameTooLongErr = -3015, kDesktopAnimOffscreenLockPixelsErr = -3016, kDesktopAnimQuickdrawGXErr = -3017 }; /* Desktop Pattern Support */ enum { kDesktopPatternListRsrcType = 'dtp#', kDesktopPatternListRsrcVers = 0, kDesktopPatternListRsrcID = 128 }; /* Reasons Screen Saver wants to unfade */ enum { kScreenSaverUnfadeUnknown = 0, kScreenSaverUnfadeKeyboard = 1, kScreenSaverUnfadeMouseMotion = 2, kScreenSaverUnfadeByRequest = 3, kScreenSaverUnfadeSelfRequest = 4 }; typedef SInt32 ScreenSaverUnfadeType; /* The drawing surfaces record */ struct DesktopAnimGraphicsPorts { CGrafPtr drawPort; gxViewPort gxDrawPort; }; typedef struct DesktopAnimGraphicsPorts DesktopAnimGraphicsPorts; /* Offscreen drawing record */ struct DesktopAnimOffscreenGraphicsPorts { GWorldPtr offGWorld; gxViewPort offGXDrawPort; gxViewDevice offGXViewDevice; gxViewGroup offGXViewGroup; }; typedef struct DesktopAnimOffscreenGraphicsPorts DesktopAnimOffscreenGraphicsPorts; /* Info record for modules when created/opened */ struct DesktopAnimModuleInfo { SInt32 version; DesktopAnimFlags moduleFlags; OSType shareWithSignature; }; typedef struct DesktopAnimModuleInfo DesktopAnimModuleInfo; /* Info record for Desktop Animation list resource (kDesktopAnimListRsrcType) */ struct DesktopAnimModuleListInfo { SInt16 itemListID; SInt16 textObjectListID; SInt16 byLineIndex; SInt16 moduleNameIndex; DesktopAnimModuleInfo moduleInfo; Str63 desktopAnimPanelHandler; Str63 desktopAnimDrawHandler; }; typedef struct DesktopAnimModuleListInfo DesktopAnimModuleListInfo; /* The Desktop Animation list resource (kDesktopAnimListRsrcType) */ struct DesktopAnimModuleListRsrcRec { SInt32 version; Str63 desktopAnimServerHandler; SInt32 modulesCnt; DesktopAnimModuleListInfo modules[1]; }; typedef struct DesktopAnimModuleListRsrcRec DesktopAnimModuleListRsrcRec; typedef DesktopAnimModuleListRsrcRec *DesktopAnimModuleListRsrcPtr; typedef DesktopAnimModuleListRsrcPtr *DesktopAnimModuleListRsrcHandle; /* Desktop Pattern Record */ struct DesktopPattern { SInt16 ppatRsrcID; SInt16 nameListID; SInt16 nameListIndex; }; typedef struct DesktopPattern DesktopPattern; /* Desktop Pattern List resource (kDesktopPatternListRsrcType) */ struct DesktopPatternListRsrcRec { SInt16 version; SInt16 pattCnt; DesktopPattern patterns[1]; }; typedef struct DesktopPatternListRsrcRec DesktopPatternListRsrcRec; typedef DesktopPatternListRsrcRec *DesktopPatternListRsrcPtr; typedef DesktopPatternListRsrcPtr *DesktopPatternListRsrcHandle; #endif #if FOR_SYSTEM8_PREEMPTIVE /* Desktop Animation Module type */ enum { kItemIsBackground = 0x0001, kItemIsModule = 0x0002, kItemIsPattern = 0x0003, kItemIsNoModule = 0x0004 /* Used internally*/ }; typedef SInt16 DesktopAnimItemType; /* Desktop Animation status */ enum { kDesktopAnimationTurnedOn = 0x00000001, /* Desktop animation is on*/ kScreenSaverTurnedOn = 0x00000002, /* Screen saving is turned on*/ kScreenSaverAsleep = 0x00000004, /* Currently in screen saving mode*/ kScreenSaverDemoMode = 0x00000008 /* Screen saving demo mode (read only)*/ }; typedef UInt32 DesktopAnimationStatusType; /* Module description reference */ typedef struct OpaqueDesktopAnimModuleDescRef* DesktopAnimModuleDescRef; /* Desktop Animation Manager API */ extern OSStatus GetDesktopAnimationDesktopPatternsFileRef(FSObjectRef *pattFileRef); extern void GetDesktopAnimationStatus(DesktopAnimationStatusType *status); extern OSStatus SetDesktopAnimationStatus(DesktopAnimationStatusType status); extern OSStatus NewDesktopAnimationModuleDescRef(TextObject itemName, FSObjectRef itemFile, SInt32 itemID, DesktopAnimItemType itemType, DesktopAnimModuleDescRef *moduleDescRef); extern OSStatus CloneDesktopAnimationModuleDescRef(DesktopAnimModuleDescRef moduleDescRef); extern Boolean EquivalentDesktopAnimationModuleDescRefs(DesktopAnimModuleDescRef moduleADescRef, DesktopAnimModuleDescRef moduleBDescRef); extern OSStatus GetDesktopAnimationModuleDescInfo(DesktopAnimModuleDescRef moduleDescRef, TextObject itemName, FSObjectRef *itemFile, SInt32 *itemID, DesktopAnimItemType *itemType); extern OSStatus DisposeDesktopAnimModuleDescRef(DesktopAnimModuleDescRef moduleDescRef); #endif #if PRAGMA_ALIGN_SUPPORTED #pragma options align=reset #endif #if PRAGMA_IMPORT_SUPPORTED #pragma import off #endif #ifdef __cplusplus } #endif #endif /* __DESKTOPANIMATION__ */