home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / PInterfaces / Icons.p < prev    next >
Encoding:
Text File  |  1994-11-11  |  11.5 KB  |  367 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Icons.p
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. }
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Icons;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __ICONS__}
  27. {$SETC __ICONS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC IconsIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {    ConditionalMacros.p                                            }
  38.  
  39. {$IFC UNDEFINED __QUICKDRAW__}
  40. {$I Quickdraw.p}
  41. {$ENDC}
  42. {    MixedMode.p                                                    }
  43. {    QuickdrawText.p                                                }
  44.  
  45. {$PUSH}
  46. {$ALIGN MAC68K}
  47. {$LibExport+}
  48.  
  49. CONST
  50. { The following are icons for which there are both icon suites and SICNs. }
  51.     genericDocumentIconResource    = -4000;
  52.     genericStationeryIconResource = -3985;
  53.     genericEditionFileIconResource = -3989;
  54.     genericApplicationIconResource = -3996;
  55.     genericDeskAccessoryIconResource = -3991;
  56.     genericFolderIconResource    = -3999;
  57.     privateFolderIconResource    = -3994;
  58.     floppyIconResource            = -3998;
  59.     trashIconResource            = -3993;
  60. { The following are icons for which there are SICNs only. }
  61.     desktopIconResource            = -3992;
  62.     openFolderIconResource        = -3997;
  63.     genericHardDiskIconResource    = -3995;
  64.     genericFileServerIconResource = -3972;
  65.     genericSuitcaseIconResource    = -3970;
  66.     genericMoverObjectIconResource = -3969;
  67. { The following are icons for which there are icon suites only. }
  68.     genericPreferencesIconResource = -3971;
  69.     genericQueryDocumentIconResource = -16506;
  70.     genericExtensionIconResource = -16415;
  71.     systemFolderIconResource    = -3983;
  72.     appleMenuFolderIconResource    = -3982;
  73.  
  74.     startupFolderIconResource    = -3981;
  75.     ownedFolderIconResource        = -3980;
  76.     dropFolderIconResource        = -3979;
  77.     sharedFolderIconResource    = -3978;
  78.     mountedFolderIconResource    = -3977;
  79.     controlPanelFolderIconResource = -3976;
  80.     printMonitorFolderIconResource = -3975;
  81.     preferencesFolderIconResource = -3974;
  82.     extensionsFolderIconResource = -3973;
  83.     fontsFolderIconResource        = -3968;
  84.     fullTrashIconResource        = -3984;
  85.     large1BitMask                = 'ICN#';
  86.     large4BitData                = 'icl4';
  87.     large8BitData                = 'icl8';
  88.     small1BitMask                = 'ics#';
  89.     small4BitData                = 'ics4';
  90.     small8BitData                = 'ics8';
  91.     mini1BitMask                = 'icm#';
  92.     mini4BitData                = 'icm4';
  93.     mini8BitData                = 'icm8';
  94.  
  95. {  alignment type values  }
  96.     atNone                        = $0;
  97.     atVerticalCenter            = $1;
  98.     atTop                        = $2;
  99.     atBottom                    = $3;
  100.     atHorizontalCenter            = $4;
  101.     atAbsoluteCenter            = atVerticalCenter + atHorizontalCenter;
  102.     atCenterTop                    = atTop + atHorizontalCenter;
  103.     atCenterBottom                = atBottom + atHorizontalCenter;
  104.     atLeft                        = $8;
  105.     atCenterLeft                = atVerticalCenter + atLeft;
  106.     atTopLeft                    = atTop + atLeft;
  107.     atBottomLeft                = atBottom + atLeft;
  108.     atRight                        = $C;
  109.     atCenterRight                = atVerticalCenter + atRight;
  110.     atTopRight                    = atTop + atRight;
  111.     atBottomRight                = atBottom + atRight;
  112.  
  113.     
  114. TYPE
  115.     IconAlignmentType = INTEGER;
  116.  
  117. {  transform type values  }
  118.  
  119. CONST
  120.     ttNone                        = $0;
  121.     ttDisabled                    = $1;
  122.     ttOffline                    = $2;
  123.     ttOpen                        = $3;
  124.     ttLabel1                    = $0100;
  125.     ttLabel2                    = $0200;
  126.     ttLabel3                    = $0300;
  127.     ttLabel4                    = $0400;
  128.     ttLabel5                    = $0500;
  129.     ttLabel6                    = $0600;
  130.     ttLabel7                    = $0700;
  131.     ttSelected                    = $4000;
  132.     ttSelectedDisabled            = ttSelected + ttDisabled;
  133.     ttSelectedOffline            = ttSelected + ttOffline;
  134.     ttSelectedOpen                = ttSelected + ttOpen;
  135.  
  136.     
  137. TYPE
  138.     IconTransformType = INTEGER;
  139.  
  140. {  Selector mask values  }
  141.  
  142. CONST
  143.     svLarge1Bit                    = $00000001;
  144.     svLarge4Bit                    = $00000002;
  145.     svLarge8Bit                    = $00000004;
  146.     svSmall1Bit                    = $00000100;
  147.     svSmall4Bit                    = $00000200;
  148.     svSmall8Bit                    = $00000400;
  149.     svMini1Bit                    = $00010000;
  150.     svMini4Bit                    = $00020000;
  151.     svMini8Bit                    = $00040000;
  152.     svAllLargeData                = $000000ff;
  153.     svAllSmallData                = $0000ff00;
  154.     svAllMiniData                = $00ff0000;
  155.     svAll1BitData                = svLarge1Bit + svSmall1Bit + svMini1Bit;
  156.     svAll4BitData                = svLarge4Bit + svSmall4Bit + svMini4Bit;
  157.     svAll8BitData                = svLarge8Bit + svSmall8Bit + svMini8Bit;
  158.     svAllAvailableData            = $ffffffff;
  159.  
  160.     
  161. TYPE
  162.     IconSelectorValue = LONGINT;
  163.  
  164.     IconActionProcPtr = ProcPtr;  { FUNCTION IconAction(theType: ResType; VAR theIcon: Handle; yourDataPtr: UNIV Ptr): OSErr; }
  165.     IconActionUPP = UniversalProcPtr;
  166.  
  167. CONST
  168.     uppIconActionProcInfo = $00000FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  169.  
  170. FUNCTION NewIconActionProc(userRoutine: IconActionProcPtr): IconActionUPP;
  171.     {$IFC NOT GENERATINGCFM }
  172.     INLINE $2E9F;
  173.     {$ENDC}
  174.  
  175. FUNCTION CallIconActionProc(theType: ResType; VAR theIcon: Handle; yourDataPtr: UNIV Ptr; userRoutine: IconActionUPP): OSErr;
  176.     {$IFC NOT GENERATINGCFM}
  177.     INLINE $205F, $4E90;
  178.     {$ENDC}
  179.     
  180. TYPE
  181.     IconAction = IconActionUPP;
  182.  
  183.     IconGetterProcPtr = ProcPtr;  { FUNCTION IconGetter(theType: ResType; yourDataPtr: UNIV Ptr): Handle; }
  184.     IconGetterUPP = UniversalProcPtr;
  185.  
  186. CONST
  187.     uppIconGetterProcInfo = $000003F0; { FUNCTION (4 byte param, 4 byte param): 4 byte result; }
  188.  
  189. FUNCTION NewIconGetterProc(userRoutine: IconGetterProcPtr): IconGetterUPP;
  190.     {$IFC NOT GENERATINGCFM }
  191.     INLINE $2E9F;
  192.     {$ENDC}
  193.  
  194. FUNCTION CallIconGetterProc(theType: ResType; yourDataPtr: UNIV Ptr; userRoutine: IconGetterUPP): Handle;
  195.     {$IFC NOT GENERATINGCFM}
  196.     INLINE $205F, $4E90;
  197.     {$ENDC}
  198.     
  199. TYPE
  200.     IconGetter = IconGetterUPP;
  201.  
  202. {$IFC NOT OLDROUTINELOCATIONS }
  203.     CIcon = RECORD
  204.         iconPMap:                PixMap;                                    {the icon's pixMap}
  205.         iconMask:                BitMap;                                    {the icon's mask}
  206.         iconBMap:                BitMap;                                    {the icon's bitMap}
  207.         iconData:                Handle;                                    {the icon's data}
  208.         iconMaskData:            ARRAY [0..0] OF INTEGER;                {icon's mask and BitMap data}
  209.     END;
  210.     CIconPtr = ^CIcon;
  211.     CIconHandle = ^CIconPtr;
  212.  
  213.  
  214. FUNCTION GetCIcon(iconID: INTEGER): CIconHandle;
  215.     {$IFC NOT GENERATINGCFM}
  216.     INLINE $AA1E;
  217.     {$ENDC}
  218. PROCEDURE PlotCIcon({CONST}VAR theRect: Rect; theIcon: CIconHandle);
  219.     {$IFC NOT GENERATINGCFM}
  220.     INLINE $AA1F;
  221.     {$ENDC}
  222. PROCEDURE DisposeCIcon(theIcon: CIconHandle);
  223.     {$IFC NOT GENERATINGCFM}
  224.     INLINE $AA25;
  225.     {$ENDC}
  226. FUNCTION GetIcon(iconID: INTEGER): Handle;
  227.     {$IFC NOT GENERATINGCFM}
  228.     INLINE $A9BB;
  229.     {$ENDC}
  230. PROCEDURE PlotIcon({CONST}VAR theRect: Rect; theIcon: Handle);
  231.     {$IFC NOT GENERATINGCFM}
  232.     INLINE $A94B;
  233.     {$ENDC}
  234. {$ENDC}
  235.  
  236. FUNCTION PlotIconID({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theResID: INTEGER): OSErr;
  237.     {$IFC NOT GENERATINGCFM}
  238.     INLINE $303C, $0500, $ABC9;
  239.     {$ENDC}
  240. FUNCTION NewIconSuite(VAR theIconSuite: Handle): OSErr;
  241.     {$IFC NOT GENERATINGCFM}
  242.     INLINE $303C, $0207, $ABC9;
  243.     {$ENDC}
  244. FUNCTION AddIconToSuite(theIconData: Handle; theSuite: Handle; theType: ResType): OSErr;
  245.     {$IFC NOT GENERATINGCFM}
  246.     INLINE $303C, $0608, $ABC9;
  247.     {$ENDC}
  248. FUNCTION GetIconFromSuite(VAR theIconData: Handle; theSuite: Handle; theType: ResType): OSErr;
  249.     {$IFC NOT GENERATINGCFM}
  250.     INLINE $303C, $0609, $ABC9;
  251.     {$ENDC}
  252. FUNCTION ForEachIconDo(theSuite: Handle; selector: IconSelectorValue; action: IconActionUPP; yourDataPtr: UNIV Ptr): OSErr;
  253.     {$IFC NOT GENERATINGCFM}
  254.     INLINE $303C, $080A, $ABC9;
  255.     {$ENDC}
  256. FUNCTION GetIconSuite(VAR theIconSuite: Handle; theResID: INTEGER; selector: IconSelectorValue): OSErr;
  257.     {$IFC NOT GENERATINGCFM}
  258.     INLINE $303C, $0501, $ABC9;
  259.     {$ENDC}
  260. FUNCTION DisposeIconSuite(theIconSuite: Handle; disposeData: BOOLEAN): OSErr;
  261.     {$IFC NOT GENERATINGCFM}
  262.     INLINE $303C, $0302, $ABC9;
  263.     {$ENDC}
  264. FUNCTION PlotIconSuite({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theIconSuite: Handle): OSErr;
  265.     {$IFC NOT GENERATINGCFM}
  266.     INLINE $303C, $0603, $ABC9;
  267.     {$ENDC}
  268. FUNCTION MakeIconCache(VAR theHandle: Handle; makeIcon: IconGetterUPP; yourDataPtr: UNIV Ptr): OSErr;
  269.     {$IFC NOT GENERATINGCFM}
  270.     INLINE $303C, $0604, $ABC9;
  271.     {$ENDC}
  272. FUNCTION LoadIconCache({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theIconCache: Handle): OSErr;
  273.     {$IFC NOT GENERATINGCFM}
  274.     INLINE $303C, $0606, $ABC9;
  275.     {$ENDC}
  276. FUNCTION PlotIconMethod({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theMethod: IconGetterUPP; yourDataPtr: UNIV Ptr): OSErr;
  277.     {$IFC NOT GENERATINGCFM}
  278.     INLINE $303C, $0805, $ABC9;
  279.     {$ENDC}
  280. FUNCTION GetLabel(labelNumber: INTEGER; VAR labelColor: RGBColor; VAR labelString: Str255): OSErr;
  281.     {$IFC NOT GENERATINGCFM}
  282.     INLINE $303C, $050B, $ABC9;
  283.     {$ENDC}
  284. FUNCTION PtInIconID(testPt: Point; {CONST}VAR iconRect: Rect; align: IconAlignmentType; iconID: INTEGER): BOOLEAN;
  285.     {$IFC NOT GENERATINGCFM}
  286.     INLINE $303C, $060D, $ABC9;
  287.     {$ENDC}
  288. FUNCTION PtInIconSuite(testPt: Point; {CONST}VAR iconRect: Rect; align: IconAlignmentType; theIconSuite: Handle): BOOLEAN;
  289.     {$IFC NOT GENERATINGCFM}
  290.     INLINE $303C, $070E, $ABC9;
  291.     {$ENDC}
  292. FUNCTION PtInIconMethod(testPt: Point; {CONST}VAR iconRect: Rect; align: IconAlignmentType; theMethod: IconGetterUPP; yourDataPtr: UNIV Ptr): BOOLEAN;
  293.     {$IFC NOT GENERATINGCFM}
  294.     INLINE $303C, $090F, $ABC9;
  295.     {$ENDC}
  296. FUNCTION RectInIconID({CONST}VAR testRect: Rect; {CONST}VAR iconRect: Rect; align: IconAlignmentType; iconID: INTEGER): BOOLEAN;
  297.     {$IFC NOT GENERATINGCFM}
  298.     INLINE $303C, $0610, $ABC9;
  299.     {$ENDC}
  300. FUNCTION RectInIconSuite({CONST}VAR testRect: Rect; {CONST}VAR iconRect: Rect; align: IconAlignmentType; theIconSuite: Handle): BOOLEAN;
  301.     {$IFC NOT GENERATINGCFM}
  302.     INLINE $303C, $0711, $ABC9;
  303.     {$ENDC}
  304. FUNCTION RectInIconMethod({CONST}VAR testRect: Rect; {CONST}VAR iconRect: Rect; align: IconAlignmentType; theMethod: IconGetterUPP; yourDataPtr: UNIV Ptr): BOOLEAN;
  305.     {$IFC NOT GENERATINGCFM}
  306.     INLINE $303C, $0912, $ABC9;
  307.     {$ENDC}
  308. FUNCTION IconIDToRgn(theRgn: RgnHandle; {CONST}VAR iconRect: Rect; align: IconAlignmentType; iconID: INTEGER): OSErr;
  309.     {$IFC NOT GENERATINGCFM}
  310.     INLINE $303C, $0613, $ABC9;
  311.     {$ENDC}
  312. FUNCTION IconSuiteToRgn(theRgn: RgnHandle; {CONST}VAR iconRect: Rect; align: IconAlignmentType; theIconSuite: Handle): OSErr;
  313.     {$IFC NOT GENERATINGCFM}
  314.     INLINE $303C, $0714, $ABC9;
  315.     {$ENDC}
  316. FUNCTION IconMethodToRgn(theRgn: RgnHandle; {CONST}VAR iconRect: Rect; align: IconAlignmentType; theMethod: IconGetterUPP; yourDataPtr: UNIV Ptr): OSErr;
  317.     {$IFC NOT GENERATINGCFM}
  318.     INLINE $303C, $0915, $ABC9;
  319.     {$ENDC}
  320. FUNCTION SetSuiteLabel(theSuite: Handle; theLabel: INTEGER): OSErr;
  321.     {$IFC NOT GENERATINGCFM}
  322.     INLINE $303C, $0316, $ABC9;
  323.     {$ENDC}
  324. FUNCTION GetSuiteLabel(theSuite: Handle): INTEGER;
  325.     {$IFC NOT GENERATINGCFM}
  326.     INLINE $303C, $0217, $ABC9;
  327.     {$ENDC}
  328. FUNCTION GetIconCacheData(theCache: Handle; theData: UNIV Ptr): OSErr;
  329.     {$IFC NOT GENERATINGCFM}
  330.     INLINE $303C, $0419, $ABC9;
  331.     {$ENDC}
  332. FUNCTION SetIconCacheData(theCache: Handle; theData: UNIV Ptr): OSErr;
  333.     {$IFC NOT GENERATINGCFM}
  334.     INLINE $303C, $041A, $ABC9;
  335.     {$ENDC}
  336. FUNCTION GetIconCacheProc(theCache: Handle; VAR theProc: IconGetterUPP): OSErr;
  337.     {$IFC NOT GENERATINGCFM}
  338.     INLINE $303C, $041B, $ABC9;
  339.     {$ENDC}
  340. FUNCTION SetIconCacheProc(theCache: Handle; theProc: IconGetterUPP): OSErr;
  341.     {$IFC NOT GENERATINGCFM}
  342.     INLINE $303C, $041C, $ABC9;
  343.     {$ENDC}
  344. FUNCTION PlotIconHandle({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theIcon: Handle): OSErr;
  345.     {$IFC NOT GENERATINGCFM}
  346.     INLINE $303C, $061D, $ABC9;
  347.     {$ENDC}
  348. FUNCTION PlotSICNHandle({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theSICN: Handle): OSErr;
  349.     {$IFC NOT GENERATINGCFM}
  350.     INLINE $303C, $061E, $ABC9;
  351.     {$ENDC}
  352. FUNCTION PlotCIconHandle({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theCIcon: CIconHandle): OSErr;
  353.     {$IFC NOT GENERATINGCFM}
  354.     INLINE $303C, $061F, $ABC9;
  355.     {$ENDC}
  356.  
  357. {$ALIGN RESET}
  358. {$POP}
  359.  
  360. {$SETC UsingIncludes := IconsIncludes}
  361.  
  362. {$ENDC} {__ICONS__}
  363.  
  364. {$IFC NOT UsingIncludes}
  365.  END.
  366. {$ENDC}
  367.