home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sibylft1.zip / DOC.DAT / DOC / SPCC / GRAPHICS.PAS < prev    next >
Pascal/Delphi Source File  |  1997-04-07  |  7KB  |  176 lines

  1.  
  2. {╔══════════════════════════════════════════════════════════════════════════╗
  3.  ║                                                                          ║
  4.  ║     Sibyl Portable Component Classes                                     ║
  5.  ║                                                                          ║
  6.  ║     Copyright (c) 1995,97 SpeedSoft Germany,   All rights reserved.      ║
  7.  ║                                                                          ║
  8.  ╚══════════════════════════════════════════════════════════════════════════╝}
  9.  
  10. UNIT Graphics;
  11.  
  12. INTERFACE
  13.  
  14. {$IFDEF OS2}
  15. USES PmWin,PmGpi,PmBitmap,PmDev,Os2Def,BseDos;
  16. {$ENDIF}
  17.  
  18. {$IFDEF Win95}
  19. USES WinNT,WinDef,WinGDI,WinUser,WinBase;
  20. {$ENDIF}
  21.  
  22. USES SysUtils,Classes,Forms;
  23.  
  24.  
  25. TYPE
  26.     EInvalidBitmap=CLASS(Exception);
  27.     EInvalidIcon=CLASS(Exception);
  28.     EInvalidCursor=CLASS(Exception);
  29.  
  30. TYPE
  31.     TBitmap=CLASS(TGraphic)
  32.       PRIVATE
  33.          FHeight:LONGINT;
  34.          FWidth:LONGINT;
  35.          FEmpty:BOOLEAN;
  36.          FOrigin:TBitmap;
  37.          FBitmapHandle:LONGWORD;
  38.          FBitmapPS:LONGWORD;
  39.          FBitmapDC:LONGWORD;
  40.          FScalX,FScalY:LONGWORD;
  41.          FBitmapPal:LONGWORD;
  42.          FColorCount:LONGINT;
  43.          FOrigBitCount,FOrigPlanes:LONGINT; //original BitCount, also used for Saving
  44.          FOldBitmap:LONGWORD;
  45.          FOldPalette:LONGWORD;
  46.          FBitmapMem:POINTER;
  47.          FBitmapMemLength:LONGINT;
  48.          FCreatePalette:BOOLEAN;
  49.          FCanvas:TCanvas;
  50.          FXHotSpot,FYHotSpot:LONGINT;
  51.          PROCEDURE NewImage(BitmapData:POINTER;BitmapSize,OffsBits:LONGWORD;Mask:BOOLEAN);
  52.          PROCEDURE SetupBitmapColors(Header:POINTER;Mask:BOOLEAN);
  53.          FUNCTION GetEmpty:BOOLEAN;OVERRIDE;
  54.          FUNCTION GetHeight:LONGINT;OVERRIDE;
  55.          PROCEDURE SetHeight(NewHeight:LONGINT);OVERRIDE;
  56.          FUNCTION GetWidth:LONGINT;OVERRIDE;
  57.          PROCEDURE SetWidth(NewWidth:LONGINT);OVERRIDE;
  58.          PROCEDURE ReadStream(Stream:TStream;Size:LONGINT);VIRTUAL;
  59.          PROCEDURE ReleaseBitmap;VIRTUAL;
  60.          PROCEDURE SetupBitmap;VIRTUAL;
  61.          FUNCTION GetHandle:LONGWORD;OVERRIDE;
  62.          FUNCTION GetCanvas:TCanvas;OVERRIDE;
  63.          FUNCTION GetSize:LongInt;OVERRIDE;
  64.       PROTECTED
  65.          PROCEDURE SetupComponent;OVERRIDE;
  66.          PROCEDURE Changed;OVERRIDE;
  67.          PROCEDURE InvalidImage;VIRTUAL;
  68.          {Rene}
  69.          PROCEDURE PaletteChanged;OVERRIDE;
  70.       PUBLIC
  71.          {Rene}
  72.          {}
  73.          PROCEDURE CopyToClipBoard(CONST Src:TRect);
  74.          FUNCTION LoadFromClipBoard:BOOLEAN;
  75.          {}
  76.          DESTRUCTOR Destroy;OVERRIDE;
  77.          PROCEDURE LoadFromStream(Stream:TStream);OVERRIDE;
  78.          PROCEDURE SaveToStream(Stream:TStream);OVERRIDE;
  79.          PROCEDURE LoadFromResourceId(id:LONGWORD);VIRTUAL;
  80.          PROCEDURE LoadFromResourceName(CONST Name:STRING);VIRTUAL;
  81.          PROCEDURE Update;VIRTUAL;
  82.          PROCEDURE LoadFromMem(VAR Buf;Size:LONGINT);
  83.          PROCEDURE LoadFromBitmap(Bitmap:TBitmap);
  84.          {Rene}
  85.          PROCEDURE LoadFromHandle(AHandle:LONGWORD);
  86.          FUNCTION CopyGraphic:TGraphic;OVERRIDE;
  87.          FUNCTION Copy:TBitmap;
  88.          PROCEDURE Draw(Canvas:TCanvas;CONST Dest:TRect);OVERRIDE;
  89.          PROCEDURE PartialDraw(Canvas:TCanvas;CONST Src,Dest:TRect);OVERRIDE;
  90.          PROCEDURE DrawDisabled(Canvas:TCanvas;CONST Dest:TRect);VIRTUAL;
  91.          PROCEDURE RealizePalette(Canvas:TCanvas);
  92.          PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
  93.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  94.          FUNCTION WriteSCUResourceName(Stream:TResourceStream;ResName:TResourceName):BOOLEAN;OVERRIDE;
  95.          PROCEDURE CreateNew(NewWidth,NewHeight:LONGWORD;Colors:LONGWORD);VIRTUAL;
  96.          FUNCTION IsEqual(Bitmap:TBitmap):BOOLEAN;
  97.          PROPERTY PresentationSpaceHandle:LONGWORD read FBitmapPS;
  98.          PROPERTY Device:LONGWORD read FBitmapDC;
  99.          PROPERTY CreatePalette:BOOLEAN read FCreatePalette write FCreatePalette;
  100.          //PROPERTY Handle:LONGWORD read GetHandle;
  101.          //PROPERTY Canvas:TCanvas read GetCanvas;
  102.          PROPERTY ColorCount:LONGINT read FColorCount;
  103.     END;
  104.  
  105.     TBitmapClass=CLASS OF TBitmap;
  106.  
  107.  
  108.     TIcon=CLASS(TBitmap)
  109.       PRIVATE
  110.          FMaskHandle:LONGWORD;
  111.          FMaskDC:LONGWORD;
  112.          FMaskPS:LONGWORD;
  113.          FMaskPal:LONGWORD;
  114.          FMaskColorCount:LONGWORD;
  115.          FMaskWidth,FMaskHeight:LONGWORD;
  116.          FIconPointerHandle:LONGWORD;
  117.          FMaskCanvas:TCanvas;
  118.          FOldMaskBitmap:LONGWORD;
  119.          FOldMaskPalette:LONGWORD;
  120.          PROCEDURE SetupBitmap;OVERRIDE;
  121.          FUNCTION GetHandle:LONGWORD;OVERRIDE;
  122.          PROCEDURE ReleaseBitmap;OVERRIDE;
  123.       PROTECTED
  124.          PROCEDURE SetupComponent;OVERRIDE;
  125.          PROCEDURE InvalidImage;VIRTUAL;
  126.       PUBLIC
  127.          PROCEDURE Draw(Canvas:TCanvas;CONST Dest:TRect);OVERRIDE;
  128.          PROCEDURE Update;OVERRIDE;
  129.          PROCEDURE CreateNew(NewWidth,NewHeight:LONGWORD;Colors:LONGWORD);OVERRIDE;
  130.          PROCEDURE LoadFromResourceName(CONST Name:STRING);OVERRIDE;
  131.          PROPERTY MaskHandle:LONGWORD read FMaskHandle;
  132.          PROPERTY ColorHandle:LONGWORD read FBitmapHandle;
  133.          PROPERTY MaskPresentationSpaceHandle:LONGWORD read FMaskPS;
  134.          PROPERTY MaskDevice:LONGWORD read FMaskDC;
  135.          PROPERTY MaskWidth:LONGWORD read FMaskWidth;
  136.          PROPERTY MaskHeight:LONGWORD read FMaskHeight;
  137.          PROPERTY MaskPalette:LONGWORD read FMaskPal;
  138.          PROPERTY MaskCanvas:TCanvas read FMaskCanvas;
  139.          PROPERTY XHotSpot:LONGINT read FXHotSpot write FXHotSpot;
  140.          PROPERTY YHotSpot:LONGINT read FYHotSpot write FYHotSpot;
  141.     END;
  142.  
  143.  
  144.     TPointer=CLASS(TIcon)
  145.       PROTECTED
  146.          PROCEDURE SetupComponent;OVERRIDE;
  147.          PROCEDURE InvalidImage;VIRTUAL;
  148.     END;
  149.  
  150.  
  151.     TBitmapList=CLASS(TList)
  152.       PRIVATE
  153.          FDuplicates:BOOLEAN; {only for add}
  154.          FBitmapClass:TBitmapClass;
  155.          FUNCTION CopyBitmap(Original:TBitmap):TBitmap;
  156.          FUNCTION GetBitmap(Index:LONGINT):TBitmap;
  157.          PROCEDURE SetBitmap(Index:LONGINT;Bitmap:TBitmap);
  158.          PROPERTY Items;
  159.       PROTECTED
  160.         PROCEDURE FreeItem(Item:Pointer);OVERRIDE;
  161.       PUBLIC
  162.          FUNCTION Add(Item:TBitmap):LONGINT;
  163.          PROCEDURE Insert(Index:LONGINT;Item:TBitmap);
  164.          FUNCTION IndexOfOrigin(Item:TBitmap):LONGINT;
  165.          FUNCTION AddResourceId(BmpId:LONGWORD):LONGINT;
  166.          FUNCTION AddResourceName(CONST Name:STRING):LONGINT;
  167.          PROPERTY Bitmaps[Index:LONGINT]:TBitmap read GetBitmap write SetBitmap;
  168.          PROPERTY Duplicates:BOOLEAN read FDuplicates write FDuplicates;
  169.          PROPERTY BitmapClass:TBitmapClass read FBitmapClass write FBitmapClass;
  170.     END;
  171.  
  172.  
  173.  
  174. IMPLEMENTATION
  175.  
  176.