diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/Finder.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'common/quicktime_win32/Finder.h')
| -rw-r--r-- | common/quicktime_win32/Finder.h | 366 |
1 files changed, 366 insertions, 0 deletions
diff --git a/common/quicktime_win32/Finder.h b/common/quicktime_win32/Finder.h new file mode 100644 index 0000000..628312a --- /dev/null +++ b/common/quicktime_win32/Finder.h @@ -0,0 +1,366 @@ +/* + File: Finder.h + + Contains: Finder flags and container types. + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 1990-2001 by Apple Computer, Inc., all rights reserved + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://developer.apple.com/bugreporter/ + +*/ +#ifndef __FINDER__ +#define __FINDER__ + +#ifndef __MACTYPES__ +#include <MacTypes.h> +#endif + + + + +#if PRAGMA_ONCE +#pragma once +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=mac68k +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(push, 2) +#elif PRAGMA_STRUCT_PACK + #pragma pack(2) +#endif + +/* Creator and type of clipping files */ +enum { + kClippingCreator = FOUR_CHAR_CODE('drag'), + kClippingPictureType = FOUR_CHAR_CODE('clpp'), + kClippingTextType = FOUR_CHAR_CODE('clpt'), + kClippingSoundType = FOUR_CHAR_CODE('clps'), + kClippingUnknownType = FOUR_CHAR_CODE('clpu') +}; + + +/* Creator and type of Internet Location files */ +enum { + kInternetLocationCreator = FOUR_CHAR_CODE('drag'), + kInternetLocationHTTP = FOUR_CHAR_CODE('ilht'), + kInternetLocationFTP = FOUR_CHAR_CODE('ilft'), + kInternetLocationFile = FOUR_CHAR_CODE('ilfi'), + kInternetLocationMail = FOUR_CHAR_CODE('ilma'), + kInternetLocationNNTP = FOUR_CHAR_CODE('ilnw'), + kInternetLocationAFP = FOUR_CHAR_CODE('ilaf'), + kInternetLocationAppleTalk = FOUR_CHAR_CODE('ilat'), + kInternetLocationNSL = FOUR_CHAR_CODE('ilns'), + kInternetLocationGeneric = FOUR_CHAR_CODE('ilge') +}; + + + +enum { + kCustomIconResource = -16455 /* Custom icon family resource ID */ +}; + +/* In order to specify any of the information described in the */ +/* CustomBadgeResource data structure you must clear the kExtendedFlagsAreInvalid */ +/* and set kExtendedFlagHasCustomBadge of the FXInfo.fdXFlags or DXInfo.frXFlags field, */ +/* and add a resource of type kCustomBadgeResourceType and ID kCustomBadgeResourceID to */ +/* the file or to the "Icon/n" file for a folder */ +enum { + kCustomBadgeResourceType = FOUR_CHAR_CODE('badg'), + kCustomBadgeResourceID = kCustomIconResource, + kCustomBadgeResourceVersion = 0 +}; + +struct CustomBadgeResource { + SInt16 version; /* This is version kCustomBadgeResourceVersion*/ + SInt16 customBadgeResourceID; /* If not 0, the ID of a resource to use on top*/ + /* of the icon for this file or folder*/ + OSType customBadgeType; /* If not 0, the type and creator of an icon*/ + OSType customBadgeCreator; /* to use on top of the icon*/ + OSType windowBadgeType; /* If not 0, the type and creator of an icon*/ + OSType windowBadgeCreator; /* to display in the header of the window for this */ + /* file or folder*/ + OSType overrideType; /* If not 0, the type and creator of an icon to*/ + OSType overrideCreator; /* use INSTEAD of the icon for this file or folder*/ +}; +typedef struct CustomBadgeResource CustomBadgeResource; +typedef CustomBadgeResource * CustomBadgeResourcePtr; +typedef CustomBadgeResourcePtr * CustomBadgeResourceHandle; +/* You can specify routing information for a file by including a 'rout' 0 + resource in it and setting the kExtendedFlagHasRoutingInfo bit in the extended + Finder flags. + The 'rout' resource is an array of RoutingResourceEntry. Each entry is considered + in turn. The first matching entry is used. + If the creator and fileType match the file being dropped and targetFolder match + the folder ID of the folder being dropped onto, then the file is rerouted + into the specified destination folder. + The only target folder currently supported is the system folder, + kSystemFolderType = 'macs'. +*/ +enum { + kRoutingResourceType = FOUR_CHAR_CODE('rout'), + kRoutingResourceID = 0 +}; + +struct RoutingResourceEntry { + OSType creator; /* Use '****' or 0 to match any creator */ + OSType fileType; /* Use '****' or 0 to match any file type */ + OSType targetFolder; /* Folder ID of the folder this file was dropped onto */ + OSType destinationFolder; /* Folder that the source will be routed to */ + OSType reservedField; /* Set to 0 */ +}; +typedef struct RoutingResourceEntry RoutingResourceEntry; +typedef RoutingResourceEntry * RoutingResourcePtr; +typedef RoutingResourcePtr * RoutingResourceHandle; + +/* Types for special container aliases */ +enum { + kContainerFolderAliasType = FOUR_CHAR_CODE('fdrp'), /* type for folder aliases */ + kContainerTrashAliasType = FOUR_CHAR_CODE('trsh'), /* type for trash folder aliases */ + kContainerHardDiskAliasType = FOUR_CHAR_CODE('hdsk'), /* type for hard disk aliases */ + kContainerFloppyAliasType = FOUR_CHAR_CODE('flpy'), /* type for floppy aliases */ + kContainerServerAliasType = FOUR_CHAR_CODE('srvr'), /* type for server aliases */ + kApplicationAliasType = FOUR_CHAR_CODE('adrp'), /* type for application aliases */ + kContainerAliasType = FOUR_CHAR_CODE('drop'), /* type for all other containers */ + kDesktopPrinterAliasType = FOUR_CHAR_CODE('dtpa'), /* type for Desktop Printer alias */ + kContainerCDROMAliasType = FOUR_CHAR_CODE('cddr'), /* type for CD-ROM alias */ + kApplicationCPAliasType = FOUR_CHAR_CODE('acdp'), /* type for application control panel alias */ + kApplicationDAAliasType = FOUR_CHAR_CODE('addp'), /* type for application DA alias */ + kPackageAliasType = FOUR_CHAR_CODE('fpka'), /* type for plain package alias */ + kAppPackageAliasType = FOUR_CHAR_CODE('fapa') /* type for application package alias */ +}; + +/* Types for Special folder aliases */ +enum { + kSystemFolderAliasType = FOUR_CHAR_CODE('fasy'), + kAppleMenuFolderAliasType = FOUR_CHAR_CODE('faam'), + kStartupFolderAliasType = FOUR_CHAR_CODE('fast'), + kPrintMonitorDocsFolderAliasType = FOUR_CHAR_CODE('fapn'), + kPreferencesFolderAliasType = FOUR_CHAR_CODE('fapf'), + kControlPanelFolderAliasType = FOUR_CHAR_CODE('fact'), + kExtensionFolderAliasType = FOUR_CHAR_CODE('faex') +}; + +/* Types for AppleShare folder aliases */ +enum { + kExportedFolderAliasType = FOUR_CHAR_CODE('faet'), + kDropFolderAliasType = FOUR_CHAR_CODE('fadr'), + kSharedFolderAliasType = FOUR_CHAR_CODE('fash'), + kMountedFolderAliasType = FOUR_CHAR_CODE('famn') +}; + +/* Finder flags (finderFlags, fdFlags and frFlags) */ +/* Any flag reserved or not specified should be set to 0. */ +/* If a flag applies to a file, but not to a folder, make sure to check */ +/* that the item is not a folder by checking ((ParamBlockRec.ioFlAttrib & ioDirMask) == 0) */ +enum { + kIsOnDesk = 0x0001, /* Files and folders (System 6) */ + kColor = 0x000E, /* Files and folders */ + /* bit 0x0020 was kRequireSwitchLaunch, but is now reserved for future use*/ + kIsShared = 0x0040, /* Files only (Applications only) */ + /* If clear, the application needs to write to */ + /* its resource fork, and therefore cannot be */ + /* shared on a server */ + kHasNoINITs = 0x0080, /* Files only (Extensions/Control Panels only) */ + /* This file contains no INIT resource */ + kHasBeenInited = 0x0100, /* Files only */ + /* Clear if the file contains desktop database */ + /* resources ('BNDL', 'FREF', 'open', 'kind'...) */ + /* that have not been added yet. Set only by the Finder */ + /* Reserved for folders - make sure this bit is cleared for folders */ + /* bit 0x0200 was the letter bit for AOCE, but is now reserved for future use */ + kHasCustomIcon = 0x0400, /* Files and folders */ + kIsStationery = 0x0800, /* Files only */ + kNameLocked = 0x1000, /* Files and folders */ + kHasBundle = 0x2000, /* Files only */ + kIsInvisible = 0x4000, /* Files and folders */ + kIsAlias = 0x8000 /* Files only */ +}; + +/* Obsolete. Use names defined above. */ +enum { + fOnDesk = kIsOnDesk, + fHasBundle = kHasBundle, + fInvisible = kIsInvisible +}; + +/* Obsolete */ +enum { + fTrash = -3, + fDesktop = -2, + fDisk = 0 +}; + +#if OLDROUTINENAMES +enum { + kIsStationary = kIsStationery +}; + +#endif /* OLDROUTINENAMES */ + +/* Extended flags (extendedFinderFlags, fdXFlags and frXFlags) */ +/* Any flag not specified should be set to 0. */ +enum { + kExtendedFlagsAreInvalid = 0x8000, /* If set the other extended flags are ignored */ + kExtendedFlagHasCustomBadge = 0x0100, /* Set if the file or folder has a badge resource */ + kExtendedFlagHasRoutingInfo = 0x0004 /* Set if the file contains routing info resource */ +}; + + + +/* Use a filetype in this range to indicate that a file is temporarily busy */ +/* (while it is being downloaded or installed, for example). This prevents */ +/* Finder 8.5 and later from trying to change the item's attributes before it */ +/* is fully created. -- If you provide a series of 'BNDL' icons for your creator */ +/* and some of these filetypes, you can achieve limited icon animation while */ +/* the file creation progresses. */ +enum { + kFirstMagicBusyFiletype = FOUR_CHAR_CODE('bzy '), + kLastMagicBusyFiletype = FOUR_CHAR_CODE('bzy?') +}; + +/* Use this date as a file's or folder's creation date to indicate that it is */ +/* temporarily busy (while it is being downloaded or installed, for example). */ +/* This prevents Finder from trying to change the item's attributes before it */ +/* is fully created (Finder 8.5 and 8.6 check file creation dates; later Finders */ +/* may check folder creation dates as well). */ +enum { + kMagicBusyCreationDate = 0x4F3AFDB0 +}; + + +/*------------------------------------------------------------------------*/ +/* + The following data structures are binary compatible with FInfo, DInfo, + FXInfo and DXInfo but represent the Mac OS 8 semantic of the fields. + Use these data structures preferably to FInfo, etc... +*/ +/*------------------------------------------------------------------------*/ + +struct FileInfo { + OSType fileType; /* The type of the file */ + OSType fileCreator; /* The file's creator */ + UInt16 finderFlags; /* ex: kHasBundle, kIsInvisible... */ + Point location; /* File's location in the folder */ + /* If set to {0, 0}, the Finder will place the item automatically */ + UInt16 reservedField; /* (set to 0) */ +}; +typedef struct FileInfo FileInfo; +struct FolderInfo { + Rect windowBounds; /* The position and dimension of the folder's window */ + UInt16 finderFlags; /* ex. kIsInvisible, kNameLocked, etc.*/ + Point location; /* Folder's location in the parent folder */ + /* If set to {0, 0}, the Finder will place the item automatically */ + UInt16 reservedField; /* (set to 0) */ +}; +typedef struct FolderInfo FolderInfo; +struct ExtendedFileInfo { + SInt16 reserved1[4]; /* Reserved (set to 0) */ + UInt16 extendedFinderFlags; /* Extended flags (custom badge, routing info...) */ + SInt16 reserved2; /* Reserved (set to 0). Comment ID if high-bit is clear */ + SInt32 putAwayFolderID; /* Put away folder ID */ +}; +typedef struct ExtendedFileInfo ExtendedFileInfo; +struct ExtendedFolderInfo { + Point scrollPosition; /* Scroll position (for icon views) */ + SInt32 reserved1; /* Reserved (set to 0) */ + UInt16 extendedFinderFlags; /* Extended flags (custom badge, routing info...) */ + SInt16 reserved2; /* Reserved (set to 0). Comment ID if high-bit is clear */ + SInt32 putAwayFolderID; /* Put away folder ID */ +}; +typedef struct ExtendedFolderInfo ExtendedFolderInfo; +/*------------------------------------------------------------------------*/ +/* + The following data structures are here for compatibility. + Use the new data structures replacing them if possible (i.e. FileInfo + instead of FInfo, etc...) +*/ +/*------------------------------------------------------------------------*/ +/* File info */ +/* + IMPORTANT: + In MacOS 8, the fdFldr field has become reserved for the Finder. +*/ +struct FInfo { + OSType fdType; /* The type of the file */ + OSType fdCreator; /* The file's creator */ + UInt16 fdFlags; /* Flags ex. kHasBundle, kIsInvisible, etc. */ + Point fdLocation; /* File's location in folder. */ + /* If set to {0, 0}, the Finder will place the item automatically */ + SInt16 fdFldr; /* Reserved (set to 0) */ +}; +typedef struct FInfo FInfo; +/* Extended file info */ +/* + IMPORTANT: + In MacOS 8, the fdIconID and fdComment fields were changed + to become reserved fields for the Finder. + The fdScript has become an extended flag. +*/ +struct FXInfo { + SInt16 fdIconID; /* Reserved (set to 0) */ + SInt16 fdReserved[3]; /* Reserved (set to 0) */ + SInt8 fdScript; /* Extended flags. Script code if high-bit is set */ + SInt8 fdXFlags; /* Extended flags */ + SInt16 fdComment; /* Reserved (set to 0). Comment ID if high-bit is clear */ + SInt32 fdPutAway; /* Put away folder ID */ +}; +typedef struct FXInfo FXInfo; +/* Folder info */ +/* + IMPORTANT: + In MacOS 8, the frView field was changed to become reserved + field for the Finder. +*/ +struct DInfo { + Rect frRect; /* Folder's window bounds */ + UInt16 frFlags; /* Flags ex. kIsInvisible, kNameLocked, etc.*/ + Point frLocation; /* Folder's location in parent folder */ + /* If set to {0, 0}, the Finder will place the item automatically */ + SInt16 frView; /* Reserved (set to 0) */ +}; +typedef struct DInfo DInfo; +/* Extended folder info */ +/* + IMPORTANT: + In MacOS 8, the frOpenChain and frComment fields were changed + to become reserved fields for the Finder. + The frScript has become an extended flag. +*/ +struct DXInfo { + Point frScroll; /* Scroll position */ + SInt32 frOpenChain; /* Reserved (set to 0) */ + SInt8 frScript; /* Extended flags. Script code if high-bit is set */ + SInt8 frXFlags; /* Extended flags */ + SInt16 frComment; /* Reserved (set to 0). Comment ID if high-bit is clear */ + SInt32 frPutAway; /* Put away folder ID */ +}; +typedef struct DXInfo DXInfo; +/* ControlPanelDefProcPtr and cdev constants have all been moved to Processes.i*/ + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=reset +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(pop) +#elif PRAGMA_STRUCT_PACK + #pragma pack() +#endif + +#ifdef PRAGMA_IMPORT_OFF +#pragma import off +#elif PRAGMA_IMPORT +#pragma import reset +#endif + + +#endif /* __FINDER__ */ + |