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 >
Wrap
Pascal/Delphi Source File
|
1997-04-07
|
7KB
|
176 lines
{╔══════════════════════════════════════════════════════════════════════════╗
║ ║
║ Sibyl Portable Component Classes ║
║ ║
║ Copyright (c) 1995,97 SpeedSoft Germany, All rights reserved. ║
║ ║
╚══════════════════════════════════════════════════════════════════════════╝}
UNIT Graphics;
INTERFACE
{$IFDEF OS2}
USES PmWin,PmGpi,PmBitmap,PmDev,Os2Def,BseDos;
{$ENDIF}
{$IFDEF Win95}
USES WinNT,WinDef,WinGDI,WinUser,WinBase;
{$ENDIF}
USES SysUtils,Classes,Forms;
TYPE
EInvalidBitmap=CLASS(Exception);
EInvalidIcon=CLASS(Exception);
EInvalidCursor=CLASS(Exception);
TYPE
TBitmap=CLASS(TGraphic)
PRIVATE
FHeight:LONGINT;
FWidth:LONGINT;
FEmpty:BOOLEAN;
FOrigin:TBitmap;
FBitmapHandle:LONGWORD;
FBitmapPS:LONGWORD;
FBitmapDC:LONGWORD;
FScalX,FScalY:LONGWORD;
FBitmapPal:LONGWORD;
FColorCount:LONGINT;
FOrigBitCount,FOrigPlanes:LONGINT; //original BitCount, also used for Saving
FOldBitmap:LONGWORD;
FOldPalette:LONGWORD;
FBitmapMem:POINTER;
FBitmapMemLength:LONGINT;
FCreatePalette:BOOLEAN;
FCanvas:TCanvas;
FXHotSpot,FYHotSpot:LONGINT;
PROCEDURE NewImage(BitmapData:POINTER;BitmapSize,OffsBits:LONGWORD;Mask:BOOLEAN);
PROCEDURE SetupBitmapColors(Header:POINTER;Mask:BOOLEAN);
FUNCTION GetEmpty:BOOLEAN;OVERRIDE;
FUNCTION GetHeight:LONGINT;OVERRIDE;
PROCEDURE SetHeight(NewHeight:LONGINT);OVERRIDE;
FUNCTION GetWidth:LONGINT;OVERRIDE;
PROCEDURE SetWidth(NewWidth:LONGINT);OVERRIDE;
PROCEDURE ReadStream(Stream:TStream;Size:LONGINT);VIRTUAL;
PROCEDURE ReleaseBitmap;VIRTUAL;
PROCEDURE SetupBitmap;VIRTUAL;
FUNCTION GetHandle:LONGWORD;OVERRIDE;
FUNCTION GetCanvas:TCanvas;OVERRIDE;
FUNCTION GetSize:LongInt;OVERRIDE;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE Changed;OVERRIDE;
PROCEDURE InvalidImage;VIRTUAL;
{Rene}
PROCEDURE PaletteChanged;OVERRIDE;
PUBLIC
{Rene}
{}
PROCEDURE CopyToClipBoard(CONST Src:TRect);
FUNCTION LoadFromClipBoard:BOOLEAN;
{}
DESTRUCTOR Destroy;OVERRIDE;
PROCEDURE LoadFromStream(Stream:TStream);OVERRIDE;
PROCEDURE SaveToStream(Stream:TStream);OVERRIDE;
PROCEDURE LoadFromResourceId(id:LONGWORD);VIRTUAL;
PROCEDURE LoadFromResourceName(CONST Name:STRING);VIRTUAL;
PROCEDURE Update;VIRTUAL;
PROCEDURE LoadFromMem(VAR Buf;Size:LONGINT);
PROCEDURE LoadFromBitmap(Bitmap:TBitmap);
{Rene}
PROCEDURE LoadFromHandle(AHandle:LONGWORD);
FUNCTION CopyGraphic:TGraphic;OVERRIDE;
FUNCTION Copy:TBitmap;
PROCEDURE Draw(Canvas:TCanvas;CONST Dest:TRect);OVERRIDE;
PROCEDURE PartialDraw(Canvas:TCanvas;CONST Src,Dest:TRect);OVERRIDE;
PROCEDURE DrawDisabled(Canvas:TCanvas;CONST Dest:TRect);VIRTUAL;
PROCEDURE RealizePalette(Canvas:TCanvas);
PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
FUNCTION WriteSCUResourceName(Stream:TResourceStream;ResName:TResourceName):BOOLEAN;OVERRIDE;
PROCEDURE CreateNew(NewWidth,NewHeight:LONGWORD;Colors:LONGWORD);VIRTUAL;
FUNCTION IsEqual(Bitmap:TBitmap):BOOLEAN;
PROPERTY PresentationSpaceHandle:LONGWORD read FBitmapPS;
PROPERTY Device:LONGWORD read FBitmapDC;
PROPERTY CreatePalette:BOOLEAN read FCreatePalette write FCreatePalette;
//PROPERTY Handle:LONGWORD read GetHandle;
//PROPERTY Canvas:TCanvas read GetCanvas;
PROPERTY ColorCount:LONGINT read FColorCount;
END;
TBitmapClass=CLASS OF TBitmap;
TIcon=CLASS(TBitmap)
PRIVATE
FMaskHandle:LONGWORD;
FMaskDC:LONGWORD;
FMaskPS:LONGWORD;
FMaskPal:LONGWORD;
FMaskColorCount:LONGWORD;
FMaskWidth,FMaskHeight:LONGWORD;
FIconPointerHandle:LONGWORD;
FMaskCanvas:TCanvas;
FOldMaskBitmap:LONGWORD;
FOldMaskPalette:LONGWORD;
PROCEDURE SetupBitmap;OVERRIDE;
FUNCTION GetHandle:LONGWORD;OVERRIDE;
PROCEDURE ReleaseBitmap;OVERRIDE;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE InvalidImage;VIRTUAL;
PUBLIC
PROCEDURE Draw(Canvas:TCanvas;CONST Dest:TRect);OVERRIDE;
PROCEDURE Update;OVERRIDE;
PROCEDURE CreateNew(NewWidth,NewHeight:LONGWORD;Colors:LONGWORD);OVERRIDE;
PROCEDURE LoadFromResourceName(CONST Name:STRING);OVERRIDE;
PROPERTY MaskHandle:LONGWORD read FMaskHandle;
PROPERTY ColorHandle:LONGWORD read FBitmapHandle;
PROPERTY MaskPresentationSpaceHandle:LONGWORD read FMaskPS;
PROPERTY MaskDevice:LONGWORD read FMaskDC;
PROPERTY MaskWidth:LONGWORD read FMaskWidth;
PROPERTY MaskHeight:LONGWORD read FMaskHeight;
PROPERTY MaskPalette:LONGWORD read FMaskPal;
PROPERTY MaskCanvas:TCanvas read FMaskCanvas;
PROPERTY XHotSpot:LONGINT read FXHotSpot write FXHotSpot;
PROPERTY YHotSpot:LONGINT read FYHotSpot write FYHotSpot;
END;
TPointer=CLASS(TIcon)
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE InvalidImage;VIRTUAL;
END;
TBitmapList=CLASS(TList)
PRIVATE
FDuplicates:BOOLEAN; {only for add}
FBitmapClass:TBitmapClass;
FUNCTION CopyBitmap(Original:TBitmap):TBitmap;
FUNCTION GetBitmap(Index:LONGINT):TBitmap;
PROCEDURE SetBitmap(Index:LONGINT;Bitmap:TBitmap);
PROPERTY Items;
PROTECTED
PROCEDURE FreeItem(Item:Pointer);OVERRIDE;
PUBLIC
FUNCTION Add(Item:TBitmap):LONGINT;
PROCEDURE Insert(Index:LONGINT;Item:TBitmap);
FUNCTION IndexOfOrigin(Item:TBitmap):LONGINT;
FUNCTION AddResourceId(BmpId:LONGWORD):LONGINT;
FUNCTION AddResourceName(CONST Name:STRING):LONGINT;
PROPERTY Bitmaps[Index:LONGINT]:TBitmap read GetBitmap write SetBitmap;
PROPERTY Duplicates:BOOLEAN read FDuplicates write FDuplicates;
PROPERTY BitmapClass:TBitmapClass read FBitmapClass write FBitmapClass;
END;
IMPLEMENTATION