Package Name: palettes

Return to: Package List


with Types; use Types;
with Quickdraw; use Quickdraw;

package Palettes is
   --  
   --  File:       Palettes.h
   --  
   --  Contains:   Palette Manager Interfaces.
   --  
   --  Version:    Technology: System 7.5
   --              Package:    Universal Interfaces 2.1 in ÒMPW LatestÓ on ETO #18
   --  
   --  Copyright:  © 1984-1995 by Apple Computer, Inc.
   --              All rights reserved.

   --  
	pmCourteous   : constant :=   0;             -- Record use of color on each device touched.*/
    pmTolerant   : constant :=   16#0002#;      -- render ciRGB if ciTolerance is exceeded by best match.*/
    pmAnimated   : constant :=   16#0004#;      -- reserve an index on each device touched and render ciRGB.*/
    pmExplicit   : constant :=   16#0008#;      -- no reserve, no render, no record; stuff index into port.*/
    pmWhite      : constant :=   16#0010#;
    pmBlack      : constant :=   16#0020#;
    pmInhibitG2  : constant :=   16#0100#;
    pmInhibitC2  : constant :=   16#0200#;
    pmInhibitG4  : constant :=   16#0400#;
    pmInhibitC4  : constant :=   16#0800#;
    pmInhibitG8  : constant :=   16#1000#;
    pmInhibitC8  : constant :=   16#2000#;
-- NSetPalette Update Constants */
    pmNoUpdates  : constant :=   16#8000#;        -- no updates
    pmBkUpdates  : constant :=   16#A000#;        -- background updates only
    pmFgUpdates  : constant :=   16#C000#;        -- foreground updates only

    pmAllUpdates : constant :=   16#E000#;        -- all updates
   type Short_Integer_Vec_3 is array (0 .. 2) of Short_Integer;
   type ColorInfo is 
      record
         ciRGB : RGBColor;                        --  true RGB value
         ciUsage : Short_Integer;                 --  color usag
         ciTolerance : Short_Integer;             --  tolerance valu

         ciDataFields : Short_Integer_Vec_3;      --  private field
      end record;

   type ColorInfo_Vec_1 is array (0 .. 0) of ColorInfo;
   type Short_Integer_Vec_7 is array (0 .. 6) of Short_Integer;
   type Palette is 
      record
         pmEntries : Short_Integer;               --  entries in pmTabl
         pmDataFields : Short_Integer_Vec_7;      --  private field
         pmInfo : ColorInfo_Vec_1;
      end record;
   type PalettePtr is Access Palette;

   type PaletteHandle is Access PalettePtr;
   procedure InitPalettes;

   pragma Import (C, InitPalettes, "InitPalettes", "InitPalettes");
   function NewPalette
     (entries            : in     Short_Integer;
      srcColors          : in     CTabHandle;
      srcUsage           : in     Short_Integer;
      srcTolerance       : in     Short_Integer)
      return                      PaletteHandle;

   pragma Import (C, NewPalette, "NewPalette", "NewPalette");
   function GetNewPalette
     (PaletteID          : in     Short_Integer)
      return                      PaletteHandle;

   pragma Import (C, GetNewPalette, "GetNewPalette", "GetNewPalette");
   procedure DisposePalette
     (srcPalette         : in     PaletteHandle);

   pragma Import (C, DisposePalette, "DisposePalette", "DisposePalette");
   procedure ActivatePalette
     (srcWindow          : in     WindowPtr);

   pragma Import (C, ActivatePalette, "ActivatePalette", "ActivatePalette");
   procedure SetPalette
     (dstWindow          : in     WindowPtr;
      srcPalette         : in     PaletteHandle;
      cUpdates           : in     Boolean);

   pragma Import (C, SetPalette, "SetPalette", "SetPalette");
   procedure NSetPalette
     (dstWindow          : in     WindowPtr;
      srcPalette         : in     PaletteHandle;
      nCUpdates          : in     Short_Integer);

   pragma Import (C, NSetPalette, "NSetPalette", "NSetPalette");
   function GetPalette
     (srcWindow          : in     WindowPtr)
      return                      PaletteHandle;

   pragma Import (C, GetPalette, "GetPalette", "GetPalette");
   procedure CopyPalette
     (srcPalette         : in     PaletteHandle;
      dstPalette         : in     PaletteHandle;
      srcEntry           : in     Short_Integer;
      dstEntry           : in     Short_Integer;
      dstLength          : in     Short_Integer);

   pragma Import (C, CopyPalette, "CopyPalette", "CopyPalette");
   procedure PmForeColor
     (dstEntry           : in     Short_Integer);

   pragma Import (C, PmForeColor, "PmForeColor", "PmForeColor");
   procedure PmBackColor
     (dstEntry           : in     Short_Integer);

   pragma Import (C, PmBackColor, "PmBackColor", "PmBackColor");
   procedure AnimateEntry
     (dstWindow          : in     WindowPtr;
      dstEntry           : in     Short_Integer;
      srcRGB             : access RGBColor);

   pragma Import (C, AnimateEntry, "AnimateEntry", "AnimateEntry");
   procedure AnimatePalette
     (dstWindow          : in     WindowPtr;
      srcCTab            : in     CTabHandle;
      srcIndex           : in     Short_Integer;
      dstEntry           : in     Short_Integer;
      dstLength          : in     Short_Integer);

   pragma Import (C, AnimatePalette, "AnimatePalette", "AnimatePalette");
   procedure GetEntryColor
     (srcPalette         : in     PaletteHandle;
      srcEntry           : in     Short_Integer;
      dstRGB             : access RGBColor);

   pragma Import (C, GetEntryColor, "GetEntryColor", "GetEntryColor");
   procedure SetEntryColor
     (dstPalette         : in     PaletteHandle;
      dstEntry           : in     Short_Integer;
      srcRGB             : access RGBColor);

   pragma Import (C, SetEntryColor, "SetEntryColor", "SetEntryColor");
   procedure GetEntryUsage
     (srcPalette         : in     PaletteHandle;
      srcEntry           : in     Short_Integer;
      dstUsage           : access Short_Integer;
      dstTolerance       : access Short_Integer);

   pragma Import (C, GetEntryUsage, "GetEntryUsage", "GetEntryUsage");
   procedure SetEntryUsage
     (dstPalette         : in     PaletteHandle;
      dstEntry           : in     Short_Integer;
      srcUsage           : in     Short_Integer;
      srcTolerance       : in     Short_Integer);

   pragma Import (C, SetEntryUsage, "SetEntryUsage", "SetEntryUsage");
   procedure CTab2Palette
     (srcCTab            : in     CTabHandle;
      dstPalette         : in     PaletteHandle;
      srcUsage           : in     Short_Integer;
      srcTolerance       : in     Short_Integer);

   pragma Import (C, CTab2Palette, "CTab2Palette", "CTab2Palette");
   procedure Palette2CTab
     (srcPalette         : in     PaletteHandle;
      dstCTab            : in     CTabHandle);

   pragma Import (C, Palette2CTab, "Palette2CTab", "Palette2CTab");
   function Entry2Index
     (entry_Id           : in     Short_Integer)
      return                      Long_Integer;

   pragma Import (C, Entry2Index, "Entry2Index", "Entry2Index");
   procedure RestoreDeviceClut
     (gd                 : in     GDHandle);

   pragma Import (C, RestoreDeviceClut, "RestoreDeviceClut", "RestoreDeviceClut");
   procedure ResizePalette
     (p                  : in     PaletteHandle;
      size               : in     Short_Integer);

   pragma Import (C, ResizePalette, "ResizePalette", "ResizePalette");
   procedure SaveFore
     (c                  : access ColorSpec);

   pragma Import (C, SaveFore, "SaveFore", "SaveFore");
   procedure SaveBack
     (c                  : access ColorSpec);

   pragma Import (C, SaveBack, "SaveBack", "SaveBack");
   procedure RestoreFore
     (c                  : access ColorSpec);

   pragma Import (C, RestoreFore, "RestoreFore", "RestoreFore");
   procedure RestoreBack
     (c                  : access ColorSpec);

   pragma Import (C, RestoreBack, "RestoreBack", "RestoreBack");
   function SetDepth
     (gd                 : in     GDHandle;
      depth              : in     Short_Integer;
      whichFlags         : in     Short_Integer;
      flags              : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, SetDepth, "SetDepth", "SetDepth");
   function HasDepth
     (gd                 : in     GDHandle;
      depth              : in     Short_Integer;
      whichFlags         : in     Short_Integer;
      flags              : in     Short_Integer)
      return                      Short_Integer;

   pragma Import (C, HasDepth, "HasDepth", "HasDepth");
   function PMgrVersion
      return                      Short_Integer;

   pragma Import (C, PMgrVersion, "PMgrVersion", "PMgrVersion");
   procedure SetPaletteUpdates
     (p                  : in     PaletteHandle;
      updates            : in     Short_Integer);

   pragma Import (C, SetPaletteUpdates, "SetPaletteUpdates", "SetPaletteUpdates");
   function GetPaletteUpdates
     (p                  : in     PaletteHandle)
      return                      Short_Integer;

   pragma Import (C, GetPaletteUpdates, "GetPaletteUpdates", "GetPaletteUpdates");
   function GetGray
     (device             : in     GDHandle;
      backGround         : access RGBColor;
      foreGround         : access RGBColor)
      return                      Boolean;

   pragma Import (C, GetGray, "GetGray", "GetGray");
end Palettes;