mirror of
https://github.com/celisej567/source-engine.git
synced 2026-01-05 22:09:59 +03:00
1
This commit is contained in:
366
common/quicktime_win32/Finder.h
Normal file
366
common/quicktime_win32/Finder.h
Normal file
@@ -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__ */
|
||||
|
||||
Reference in New Issue
Block a user