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

  1. {
  2.      File:        Palettes.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 Palettes;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __PALETTES__}
  27. {$SETC __PALETTES__ := 1}
  28.  
  29. {$I+}
  30. {$SETC PalettesIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33.  
  34. {$IFC UNDEFINED __QUICKDRAW__}
  35. {$I Quickdraw.p}
  36. {$ENDC}
  37. {    Types.p                                                        }
  38. {        ConditionalMacros.p                                        }
  39. {    MixedMode.p                                                    }
  40. {    QuickdrawText.p                                                }
  41.  
  42. {$IFC UNDEFINED __WINDOWS__}
  43. {$I Windows.p}
  44. {$ENDC}
  45. {    Memory.p                                                    }
  46. {    Events.p                                                    }
  47. {        OSUtils.p                                                }
  48. {    Controls.p                                                    }
  49. {        Menus.p                                                    }
  50.  
  51. {$PUSH}
  52. {$ALIGN MAC68K}
  53. {$LibExport+}
  54.  
  55. CONST
  56.     pmCourteous                    = 0;                            {Record use of color on each device touched.}
  57.     pmTolerant                    = $0002;                        {render ciRGB if ciTolerance is exceeded by best match.}
  58.     pmAnimated                    = $0004;                        {reserve an index on each device touched and render ciRGB.}
  59.     pmExplicit                    = $0008;                        {no reserve, no render, no record; stuff index into port.}
  60.     pmWhite                        = $0010;
  61.     pmBlack                        = $0020;
  62.     pmInhibitG2                    = $0100;
  63.     pmInhibitC2                    = $0200;
  64.     pmInhibitG4                    = $0400;
  65.     pmInhibitC4                    = $0800;
  66.     pmInhibitG8                    = $1000;
  67.     pmInhibitC8                    = $2000;
  68. { NSetPalette Update Constants }
  69.     pmNoUpdates                    = $8000;                        {no updates}
  70.     pmBkUpdates                    = $A000;                        {background updates only}
  71.     pmFgUpdates                    = $C000;                        {foreground updates only}
  72.     pmAllUpdates                = $E000;                        {all updates}
  73.  
  74.  
  75. TYPE
  76.     ColorInfo = RECORD
  77.         ciRGB:                    RGBColor;                                {true RGB values}
  78.         ciUsage:                INTEGER;                                {color usage}
  79.         ciTolerance:            INTEGER;                                {tolerance value}
  80.         ciDataFields:            ARRAY [0..2] OF INTEGER;                {private fields}
  81.     END;
  82.     Palette = RECORD
  83.         pmEntries:                INTEGER;                                {entries in pmTable}
  84.         pmDataFields:            ARRAY [0..6] OF INTEGER;                {private fields}
  85.         pmInfo:                    ARRAY [0..0] OF ColorInfo;
  86.     END;
  87.     PalettePtr = ^Palette;
  88.     PaletteHandle = ^PalettePtr;
  89.  
  90.  
  91. PROCEDURE InitPalettes;
  92.     {$IFC NOT GENERATINGCFM}
  93.     INLINE $AA90;
  94.     {$ENDC}
  95. FUNCTION NewPalette(entries: INTEGER; srcColors: CTabHandle; srcUsage: INTEGER; srcTolerance: INTEGER): PaletteHandle;
  96.     {$IFC NOT GENERATINGCFM}
  97.     INLINE $AA91;
  98.     {$ENDC}
  99. FUNCTION GetNewPalette(PaletteID: INTEGER): PaletteHandle;
  100.     {$IFC NOT GENERATINGCFM}
  101.     INLINE $AA92;
  102.     {$ENDC}
  103. PROCEDURE DisposePalette(srcPalette: PaletteHandle);
  104.     {$IFC NOT GENERATINGCFM}
  105.     INLINE $AA93;
  106.     {$ENDC}
  107. PROCEDURE ActivatePalette(srcWindow: WindowPtr);
  108.     {$IFC NOT GENERATINGCFM}
  109.     INLINE $AA94;
  110.     {$ENDC}
  111. PROCEDURE SetPalette(dstWindow: WindowPtr; srcPalette: PaletteHandle; cUpdates: BOOLEAN);
  112.     {$IFC NOT GENERATINGCFM}
  113.     INLINE $AA95;
  114.     {$ENDC}
  115. PROCEDURE NSetPalette(dstWindow: WindowPtr; srcPalette: PaletteHandle; nCUpdates: INTEGER);
  116.     {$IFC NOT GENERATINGCFM}
  117.     INLINE $AA95;
  118.     {$ENDC}
  119. FUNCTION GetPalette(srcWindow: WindowPtr): PaletteHandle;
  120.     {$IFC NOT GENERATINGCFM}
  121.     INLINE $AA96;
  122.     {$ENDC}
  123. PROCEDURE CopyPalette(srcPalette: PaletteHandle; dstPalette: PaletteHandle; srcEntry: INTEGER; dstEntry: INTEGER; dstLength: INTEGER);
  124.     {$IFC NOT GENERATINGCFM}
  125.     INLINE $AAA1;
  126.     {$ENDC}
  127. PROCEDURE PmForeColor(dstEntry: INTEGER);
  128.     {$IFC NOT GENERATINGCFM}
  129.     INLINE $AA97;
  130.     {$ENDC}
  131. PROCEDURE PmBackColor(dstEntry: INTEGER);
  132.     {$IFC NOT GENERATINGCFM}
  133.     INLINE $AA98;
  134.     {$ENDC}
  135. PROCEDURE AnimateEntry(dstWindow: WindowPtr; dstEntry: INTEGER; {CONST}VAR srcRGB: RGBColor);
  136.     {$IFC NOT GENERATINGCFM}
  137.     INLINE $AA99;
  138.     {$ENDC}
  139. PROCEDURE AnimatePalette(dstWindow: WindowPtr; srcCTab: CTabHandle; srcIndex: INTEGER; dstEntry: INTEGER; dstLength: INTEGER);
  140.     {$IFC NOT GENERATINGCFM}
  141.     INLINE $AA9A;
  142.     {$ENDC}
  143. PROCEDURE GetEntryColor(srcPalette: PaletteHandle; srcEntry: INTEGER; VAR dstRGB: RGBColor);
  144.     {$IFC NOT GENERATINGCFM}
  145.     INLINE $AA9B;
  146.     {$ENDC}
  147. PROCEDURE SetEntryColor(dstPalette: PaletteHandle; dstEntry: INTEGER; {CONST}VAR srcRGB: RGBColor);
  148.     {$IFC NOT GENERATINGCFM}
  149.     INLINE $AA9C;
  150.     {$ENDC}
  151. PROCEDURE GetEntryUsage(srcPalette: PaletteHandle; srcEntry: INTEGER; VAR dstUsage: INTEGER; VAR dstTolerance: INTEGER);
  152.     {$IFC NOT GENERATINGCFM}
  153.     INLINE $AA9D;
  154.     {$ENDC}
  155. PROCEDURE SetEntryUsage(dstPalette: PaletteHandle; dstEntry: INTEGER; srcUsage: INTEGER; srcTolerance: INTEGER);
  156.     {$IFC NOT GENERATINGCFM}
  157.     INLINE $AA9E;
  158.     {$ENDC}
  159. PROCEDURE CTab2Palette(srcCTab: CTabHandle; dstPalette: PaletteHandle; srcUsage: INTEGER; srcTolerance: INTEGER);
  160.     {$IFC NOT GENERATINGCFM}
  161.     INLINE $AA9F;
  162.     {$ENDC}
  163. PROCEDURE Palette2CTab(srcPalette: PaletteHandle; dstCTab: CTabHandle);
  164.     {$IFC NOT GENERATINGCFM}
  165.     INLINE $AAA0;
  166.     {$ENDC}
  167. FUNCTION Entry2Index(entry: INTEGER): LONGINT;
  168.     {$IFC NOT GENERATINGCFM}
  169.     INLINE $7000, $AAA2;
  170.     {$ENDC}
  171. PROCEDURE RestoreDeviceClut(gd: GDHandle);
  172.     {$IFC NOT GENERATINGCFM}
  173.     INLINE $7002, $AAA2;
  174.     {$ENDC}
  175. PROCEDURE ResizePalette(p: PaletteHandle; size: INTEGER);
  176.     {$IFC NOT GENERATINGCFM}
  177.     INLINE $7003, $AAA2;
  178.     {$ENDC}
  179. PROCEDURE SaveFore(VAR c: ColorSpec);
  180.     {$IFC NOT GENERATINGCFM}
  181.     INLINE $303C, $040D, $AAA2;
  182.     {$ENDC}
  183. PROCEDURE SaveBack(VAR c: ColorSpec);
  184.     {$IFC NOT GENERATINGCFM}
  185.     INLINE $303C, $040E, $AAA2;
  186.     {$ENDC}
  187. PROCEDURE RestoreFore({CONST}VAR c: ColorSpec);
  188.     {$IFC NOT GENERATINGCFM}
  189.     INLINE $303C, $040F, $AAA2;
  190.     {$ENDC}
  191. PROCEDURE RestoreBack({CONST}VAR c: ColorSpec);
  192.     {$IFC NOT GENERATINGCFM}
  193.     INLINE $303C, $0410, $AAA2;
  194.     {$ENDC}
  195. FUNCTION SetDepth(gd: GDHandle; depth: INTEGER; whichFlags: INTEGER; flags: INTEGER): OSErr;
  196.     {$IFC NOT GENERATINGCFM}
  197.     INLINE $303C, $0A13, $AAA2;
  198.     {$ENDC}
  199. FUNCTION HasDepth(gd: GDHandle; depth: INTEGER; whichFlags: INTEGER; flags: INTEGER): INTEGER;
  200.     {$IFC NOT GENERATINGCFM}
  201.     INLINE $303C, $0A14, $AAA2;
  202.     {$ENDC}
  203. FUNCTION PMgrVersion: INTEGER;
  204.     {$IFC NOT GENERATINGCFM}
  205.     INLINE $7015, $AAA2;
  206.     {$ENDC}
  207. PROCEDURE SetPaletteUpdates(p: PaletteHandle; updates: INTEGER);
  208.     {$IFC NOT GENERATINGCFM}
  209.     INLINE $303C, $0616, $AAA2;
  210.     {$ENDC}
  211. FUNCTION GetPaletteUpdates(p: PaletteHandle): INTEGER;
  212.     {$IFC NOT GENERATINGCFM}
  213.     INLINE $303C, $0417, $AAA2;
  214.     {$ENDC}
  215. FUNCTION GetGray(device: GDHandle; {CONST}VAR backGround: RGBColor; VAR foreGround: RGBColor): BOOLEAN;
  216.     {$IFC NOT GENERATINGCFM}
  217.     INLINE $303C, $0C19, $AAA2;
  218.     {$ENDC}
  219.  
  220. {$ALIGN RESET}
  221. {$POP}
  222.  
  223. {$SETC UsingIncludes := PalettesIncludes}
  224.  
  225. {$ENDC} {__PALETTES__}
  226.  
  227. {$IFC NOT UsingIncludes}
  228.  END.
  229. {$ENDC}
  230.