home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 May / VPR9705A.ISO / VPR_DATA / PROGRAM / CBTRIAL / SETUP / DATA.Z / GRAPHICS.HPP < prev    next >
C/C++ Source or Header  |  1997-02-14  |  32KB  |  822 lines

  1. //----------------------------------------------------------------------------
  2. // Graphics.hpp - bcbdcc32 generated hdr (DO NOT EDIT) rev: 0
  3. // From: Graphics.pas
  4. //----------------------------------------------------------------------------
  5. #ifndef GraphicsHPP
  6. #define GraphicsHPP
  7. //----------------------------------------------------------------------------
  8. #include <Classes.hpp>
  9. #include <SysUtils.hpp>
  10. #include <Windows.hpp>
  11. #include <System.hpp>
  12. #pragma warn -par
  13. #pragma warn -hid 
  14. #pragma warn -inl
  15.  
  16. namespace Graphics
  17. {
  18. //-- type declarations -------------------------------------------------------
  19. enum TColor {clMin=-0x7fffffff-1, clMax=0x7fffffff};
  20.  
  21. class __declspec(delphiclass) EInvalidGraphic;
  22. class __declspec(pascalimplementation) EInvalidGraphic : public Sysutils::Exception
  23. {
  24.     typedef Sysutils::Exception inherited;
  25.     
  26. public:
  27.     /* Exception.Create */ __fastcall EInvalidGraphic(const System::AnsiString Msg) : Sysutils::Exception(
  28.         Msg) { }
  29.     /* Exception.CreateFmt */ __fastcall EInvalidGraphic(const System::AnsiString Msg, const System::TVarRec 
  30.         * Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
  31.     /* Exception.CreateRes */ __fastcall EInvalidGraphic(int Ident) : Sysutils::Exception(Ident) { }
  32.     /* Exception.CreateResFmt */ __fastcall EInvalidGraphic(int Ident, const System::TVarRec * Args, const 
  33.         int Args_Size) : Sysutils::Exception(Ident, Args, Args_Size) { }
  34.     /* Exception.CreateHelp */ __fastcall EInvalidGraphic(const System::AnsiString Msg, int AHelpContext
  35.         ) : Sysutils::Exception(Msg, AHelpContext) { }
  36.     /* Exception.CreateFmtHelp */ __fastcall EInvalidGraphic(const System::AnsiString Msg, const System::TVarRec 
  37.         * Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext
  38.         ) { }
  39.     /* Exception.CreateResHelp */ __fastcall EInvalidGraphic(int Ident, int AHelpContext) : Sysutils::Exception(
  40.         Ident, AHelpContext) { }
  41.     /* Exception.CreateResFmtHelp */ __fastcall EInvalidGraphic(int Ident, const System::TVarRec * Args
  42.         , const int Args_Size, int AHelpContext) : Sysutils::Exception(Ident, Args, Args_Size, AHelpContext
  43.         ) { }
  44.     
  45. public:
  46.     /* TObject.Destroy */ __fastcall virtual ~EInvalidGraphic(void) { }
  47.     
  48. };
  49.  
  50. class __declspec(delphiclass) EInvalidGraphicOperation;
  51. class __declspec(pascalimplementation) EInvalidGraphicOperation : public Sysutils::Exception
  52. {
  53.     typedef Sysutils::Exception inherited;
  54.     
  55. public:
  56.     /* Exception.Create */ __fastcall EInvalidGraphicOperation(const System::AnsiString Msg) : Sysutils::
  57.         Exception(Msg) { }
  58.     /* Exception.CreateFmt */ __fastcall EInvalidGraphicOperation(const System::AnsiString Msg, const System::TVarRec 
  59.         * Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
  60.     /* Exception.CreateRes */ __fastcall EInvalidGraphicOperation(int Ident) : Sysutils::Exception(Ident
  61.         ) { }
  62.     /* Exception.CreateResFmt */ __fastcall EInvalidGraphicOperation(int Ident, const System::TVarRec * 
  63.         Args, const int Args_Size) : Sysutils::Exception(Ident, Args, Args_Size) { }
  64.     /* Exception.CreateHelp */ __fastcall EInvalidGraphicOperation(const System::AnsiString Msg, int AHelpContext
  65.         ) : Sysutils::Exception(Msg, AHelpContext) { }
  66.     /* Exception.CreateFmtHelp */ __fastcall EInvalidGraphicOperation(const System::AnsiString Msg, const 
  67.         System::TVarRec * Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size
  68.         , AHelpContext) { }
  69.     /* Exception.CreateResHelp */ __fastcall EInvalidGraphicOperation(int Ident, int AHelpContext) : Sysutils::
  70.         Exception(Ident, AHelpContext) { }
  71.     /* Exception.CreateResFmtHelp */ __fastcall EInvalidGraphicOperation(int Ident, const System::TVarRec 
  72.         * Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Ident, Args, Args_Size, AHelpContext
  73.         ) { }
  74.     
  75. public:
  76.     /* TObject.Destroy */ __fastcall virtual ~EInvalidGraphicOperation(void) { }
  77.     
  78. };
  79.  
  80. struct TResData
  81. {
  82.     int Handle;
  83. } ;
  84.  
  85. enum TFontStyle { fsBold, fsItalic, fsUnderline, fsStrikeOut };
  86.  
  87. typedef Set<TFontStyle, fsBold, fsStrikeOut>  TFontStyles;
  88.  
  89. enum TFontPitch { fpDefault, fpVariable, fpFixed };
  90.  
  91. typedef SmallString<31>  TFontName;
  92.  
  93. typedef Byte TFontCharset;
  94.  
  95. struct TFontData
  96. {
  97.     HFONT Handle;
  98.     int Height;
  99.     TFontPitch Pitch;
  100.     TFontStyles Style;
  101.     TFontCharset Charset;
  102.     TFontName Name;
  103. } ;
  104.  
  105. typedef DummySet<TFontStyle, fsBold, fsStrikeOut>  TDummyFontStyles;
  106.  
  107. typedef DummySmallString<31>  TDummyFontName;
  108.  
  109. struct TDummyFontData
  110. {
  111.     HFONT Handle;
  112.     int Height;
  113.     TFontPitch Pitch;
  114.     TDummyFontStyles Style;
  115.     TFontCharset Charset;
  116.     TDummyFontName Name;
  117. } ;
  118.  
  119. enum TPenStyle { psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame };
  120.  
  121. enum TPenMode { pmBlack, pmWhite, pmNop, pmNot, pmCopy, pmNotCopy, pmMergePenNot, pmMaskPenNot, pmMergeNotPen, 
  122.     pmMaskNotPen, pmMerge, pmNotMerge, pmMask, pmNotMask, pmXor, pmNotXor };
  123.  
  124. struct TPenData
  125. {
  126.     HPEN Handle;
  127.     TColor Color;
  128.     int Width;
  129.     TPenStyle Style;
  130. } ;
  131.  
  132. enum TBrushStyle { bsSolid, bsClear, bsHorizontal, bsVertical, bsFDiagonal, bsBDiagonal, bsCross, bsDiagCross 
  133.     };
  134.  
  135. class __declspec(delphiclass) TBitmap;
  136. class __declspec(delphiclass) TGraphic;
  137. class __declspec(delphiclass) TCanvas;
  138. class __declspec(pascalimplementation) TGraphic : public Classes::TPersistent
  139. {
  140.     typedef Classes::TPersistent inherited;
  141.     
  142. private:
  143.     Classes::TNotifyEvent FOnChange;
  144.     bool FModified;
  145.     Byte FReserved;
  146.     void __fastcall SetModified(bool Value);
  147.     
  148. protected:
  149.     __fastcall virtual TGraphic(void);
  150.     void __fastcall Changed(System::TObject* Sender);
  151.     virtual void __fastcall DefineProperties(Classes::TFiler* Filer);
  152.     virtual void __fastcall Draw(TCanvas* ACanvas, const Windows::TRect &Rect) = 0;
  153.     virtual bool __fastcall Equals(TGraphic* Graphic);
  154.     virtual bool __fastcall GetEmpty(void) = 0;
  155.     virtual int __fastcall GetHeight(void) = 0;
  156.     virtual int __fastcall GetWidth(void) = 0;
  157.     virtual void __fastcall ReadData(Classes::TStream* Stream);
  158.     virtual void __fastcall SetHeight(int Value) = 0;
  159.     virtual void __fastcall SetWidth(int Value) = 0;
  160.     virtual void __fastcall WriteData(Classes::TStream* Stream);
  161.     
  162. public:
  163.     virtual void __fastcall LoadFromFile(const System::AnsiString Filename);
  164.     virtual void __fastcall SaveToFile(const System::AnsiString Filename);
  165.     virtual void __fastcall LoadFromStream(Classes::TStream* Stream) = 0;
  166.     virtual void __fastcall SaveToStream(Classes::TStream* Stream) = 0;
  167.     virtual void __fastcall LoadFromClipboardFormat(Word AFormat, int AData, HPALETTE APalette) = 0;
  168.     virtual void __fastcall SaveToClipboardFormat(Word &AFormat, int &AData, HPALETTE &APalette) = 0;
  169.     __property bool Empty = {read=GetEmpty, nodefault};
  170.     __property int Height = {read=GetHeight, write=SetHeight, nodefault};
  171.     __property bool Modified = {read=FModified, write=SetModified, nodefault};
  172.     __property int Width = {read=GetWidth, write=SetWidth, nodefault};
  173.     __property Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
  174. public:
  175.     /* TObject.Destroy */ __fastcall virtual ~TGraphic(void) { }
  176.     
  177. };
  178.  
  179. class __declspec(delphiclass) TBitmapImage;
  180. class __declspec(delphiclass) TInternalImage;
  181. class __declspec(pascalimplementation) TInternalImage : public System::TObject
  182. {
  183.     typedef System::TObject inherited;
  184.     
  185. private:
  186.     int FRefCount;
  187.     Classes::TCustomMemoryStream* FMemoryImage;
  188.     void __fastcall Reference(void);
  189.     void __fastcall Release(void);
  190.     virtual void __fastcall FreeHandle(void) = 0;
  191. public:
  192.     /* TObject.Create */ __fastcall TInternalImage(void) : System::TObject() { }
  193.     /* TObject.Destroy */ __fastcall virtual ~TInternalImage(void) { }
  194.     
  195. };
  196.  
  197. enum TDIBType { dtNone, dtWin, dtPM };
  198.  
  199. class __declspec(pascalimplementation) TBitmapImage : public TInternalImage
  200. {
  201.     typedef TInternalImage inherited;
  202.     
  203. private:
  204.     HBITMAP FHandle;
  205.     HPALETTE FPalette;
  206.     int FWidth;
  207.     int FHeight;
  208.     void *FDIBHeader;
  209.     void *FDIBBits;
  210.     bool FMonochrome;
  211.     TDIBType FDIBType;
  212.     virtual void __fastcall FreeHandle(void);
  213. public:
  214.     /* TObject.Create */ __fastcall TBitmapImage(void) : Graphics::TInternalImage() { }
  215.     /* TObject.Destroy */ __fastcall virtual ~TBitmapImage(void) { }
  216.     
  217. };
  218.  
  219. class __declspec(pascalimplementation) TBitmap : public TGraphic
  220. {
  221.     typedef TGraphic inherited;
  222.     
  223. private:
  224.     TBitmapImage* FImage;
  225.     TCanvas* FCanvas;
  226.     bool FIgnorePalette;
  227.     void __fastcall Changing(System::TObject* Sender);
  228.     void __fastcall CopyImage(HBITMAP AHandle, HPALETTE APalette, int AWidth, int AHeight, bool AMonochrome
  229.         );
  230.     void __fastcall FreeContext(void);
  231.     TCanvas* __fastcall GetCanvas(void);
  232.     virtual HBITMAP __fastcall GetHandle(void);
  233.     bool __fastcall GetMonochrome(void);
  234.     HPALETTE __fastcall GetPalette(void);
  235.     TColor __fastcall GetTransparentColor(void);
  236.     void __fastcall HandleNeeded(void);
  237.     void __fastcall ReadStream(long Size, Classes::TStream* Stream);
  238.     void __fastcall ReadStreamDIB(Classes::TCustomMemoryStream* Image);
  239.     void __fastcall SetHandle(HBITMAP Value);
  240.     void __fastcall SetMonochrome(bool Value);
  241.     void __fastcall SetPalette(HPALETTE Value);
  242.     void __fastcall MemoryImageNeeded(void);
  243.     void __fastcall PaletteNeeded(void);
  244.     void __fastcall NewImage(HBITMAP NewHandle, HPALETTE NewPalette, int NewWidth, int NewHeight, bool 
  245.         NewMonochrome, Classes::TCustomMemoryStream* NewImage, TDIBType NewDIBType, void * NewDIBHeader, void * 
  246.         NewDIBBits);
  247.     void __fastcall WriteStream(Classes::TStream* Stream, bool WriteSize);
  248.     
  249. protected:
  250.     virtual void __fastcall Draw(TCanvas* ACanvas, const Windows::TRect &Rect);
  251.     virtual bool __fastcall GetEmpty(void);
  252.     virtual int __fastcall GetHeight(void);
  253.     virtual int __fastcall GetWidth(void);
  254.     virtual void __fastcall ReadData(Classes::TStream* Stream);
  255.     virtual void __fastcall SetWidth(int Value);
  256.     virtual void __fastcall SetHeight(int Value);
  257.     virtual void __fastcall WriteData(Classes::TStream* Stream);
  258.     
  259. public:
  260.     __fastcall virtual TBitmap(void);
  261.     __fastcall virtual ~TBitmap(void);
  262.     virtual void __fastcall Assign(Classes::TPersistent* Source);
  263.     void __fastcall Dormant(void);
  264.     void __fastcall FreeImage(void);
  265.     virtual void __fastcall LoadFromClipboardFormat(Word AFormat, int AData, HPALETTE APalette);
  266.     virtual void __fastcall LoadFromStream(Classes::TStream* Stream);
  267.     void __fastcall LoadFromResourceName(int Instance, const System::AnsiString ResName);
  268.     void __fastcall LoadFromResourceID(int Instance, int ResID);
  269.     HBITMAP __fastcall ReleaseHandle(void);
  270.     HPALETTE __fastcall ReleasePalette(void);
  271.     virtual void __fastcall SaveToClipboardFormat(Word &Format, int &Data, HPALETTE &APalette);
  272.     virtual void __fastcall SaveToStream(Classes::TStream* Stream);
  273.     __property TCanvas* Canvas = {read=GetCanvas, nodefault};
  274.     __property HBITMAP Handle = {read=GetHandle, write=SetHandle, nodefault};
  275.     __property bool Monochrome = {read=GetMonochrome, write=SetMonochrome, nodefault};
  276.     __property HPALETTE Palette = {read=GetPalette, write=SetPalette, nodefault};
  277.     __property bool IgnorePalette = {read=FIgnorePalette, write=FIgnorePalette, nodefault};
  278.     __property TColor TransparentColor = {read=GetTransparentColor, nodefault};
  279. };
  280.  
  281. struct TBrushData
  282. {
  283.     HBRUSH Handle;
  284.     TColor Color;
  285.     TBitmap* Bitmap;
  286.     TBrushStyle Style;
  287. } ;
  288.  
  289. struct TResource;
  290. typedef TResource *PResource;
  291.  
  292. struct TResource
  293. {
  294.     TResource *Next;
  295.     int RefCount;
  296.     int Handle;
  297.     Word HashCode;
  298.     union
  299.     {
  300.         TBrushData Brush;
  301.         TPenData Pen;
  302.         TDummyFontData Font;
  303.         TResData Data;
  304.         
  305.     };
  306. } ;
  307.  
  308. class __declspec(delphiclass) TGraphicsObject;
  309. class __declspec(pascalimplementation) TGraphicsObject : public Classes::TPersistent
  310. {
  311.     typedef Classes::TPersistent inherited;
  312.     
  313. private:
  314.     Classes::TNotifyEvent FOnChange;
  315.     TResource *FResource;
  316.     
  317. protected:
  318.     virtual void __fastcall Changed(void);
  319.     
  320. public:
  321.     __property Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
  322. public:
  323.     /* TObject.Create */ __fastcall TGraphicsObject(void) : Classes::TPersistent() { }
  324.     /* TObject.Destroy */ __fastcall virtual ~TGraphicsObject(void) { }
  325.     
  326. };
  327.  
  328. class __declspec(delphiclass) TFont;
  329. class __declspec(pascalimplementation) TFont : public TGraphicsObject
  330. {
  331.     typedef TGraphicsObject inherited;
  332.     
  333. private:
  334.     TColor FColor;
  335.     int FPixelsPerInch;
  336.     void __fastcall GetData(TFontData &FontData);
  337.     void __fastcall SetData(const TFontData &FontData);
  338.     
  339. protected:
  340.     HFONT __fastcall GetHandle(void);
  341.     int __fastcall GetHeight(void);
  342.     TFontName __fastcall GetName(void);
  343.     TFontPitch __fastcall GetPitch(void);
  344.     int __fastcall GetSize(void);
  345.     TFontStyles __fastcall GetStyle(void);
  346.     TFontCharset __fastcall GetCharset(void);
  347.     void __fastcall SetColor(TColor Value);
  348.     void __fastcall SetHandle(HFONT Value);
  349.     void __fastcall SetHeight(int Value);
  350.     void __fastcall SetName(const TFontName &Value);
  351.     void __fastcall SetPitch(TFontPitch Value);
  352.     void __fastcall SetSize(int Value);
  353.     void __fastcall SetStyle(TFontStyles Value);
  354.     void __fastcall SetCharset(TFontCharset Value);
  355.     
  356. public:
  357.     __fastcall TFont(void);
  358.     __fastcall virtual ~TFont(void);
  359.     virtual void __fastcall Assign(Classes::TPersistent* Source);
  360.     __property HFONT Handle = {read=GetHandle, write=SetHandle, nodefault};
  361.     __property int PixelsPerInch = {read=FPixelsPerInch, write=FPixelsPerInch, nodefault};
  362.     
  363. __published:
  364.     __property TFontCharset Charset = {read=GetCharset, write=SetCharset, nodefault};
  365.     __property TColor Color = {read=FColor, write=SetColor, nodefault};
  366.     __property int Height = {read=GetHeight, write=SetHeight, nodefault};
  367.     __property TFontName Name = {read=GetName, write=SetName};
  368.     __property TFontPitch Pitch = {read=GetPitch, write=SetPitch, default=0};
  369.     __property int Size = {read=GetSize, write=SetSize, stored=false, nodefault};
  370.     __property TFontStyles Style = {read=GetStyle, write=SetStyle, nodefault};
  371. };
  372.  
  373. class __declspec(delphiclass) TPen;
  374. class __declspec(pascalimplementation) TPen : public TGraphicsObject
  375. {
  376.     typedef TGraphicsObject inherited;
  377.     
  378. private:
  379.     TPenMode FMode;
  380.     void __fastcall GetData(TPenData &PenData);
  381.     void __fastcall SetData(const TPenData &PenData);
  382.     
  383. protected:
  384.     TColor __fastcall GetColor(void);
  385.     void __fastcall SetColor(TColor Value);
  386.     HPEN __fastcall GetHandle(void);
  387.     void __fastcall SetHandle(HPEN Value);
  388.     void __fastcall SetMode(TPenMode Value);
  389.     TPenStyle __fastcall GetStyle(void);
  390.     void __fastcall SetStyle(TPenStyle Value);
  391.     int __fastcall GetWidth(void);
  392.     void __fastcall SetWidth(int Value);
  393.     
  394. public:
  395.     __fastcall TPen(void);
  396.     __fastcall virtual ~TPen(void);
  397.     virtual void __fastcall Assign(Classes::TPersistent* Source);
  398.     __property HPEN Handle = {read=GetHandle, write=SetHandle, nodefault};
  399.     
  400. __published:
  401.     __property TColor Color = {read=GetColor, write=SetColor, default=0};
  402.     __property TPenMode Mode = {read=FMode, write=SetMode, default=4};
  403.     __property TPenStyle Style = {read=GetStyle, write=SetStyle, default=0};
  404.     __property int Width = {read=GetWidth, write=SetWidth, default=1};
  405. };
  406.  
  407. class __declspec(delphiclass) TBrush;
  408. class __declspec(pascalimplementation) TBrush : public TGraphicsObject
  409. {
  410.     typedef TGraphicsObject inherited;
  411.     
  412. private:
  413.     void __fastcall GetData(TBrushData &BrushData);
  414.     void __fastcall SetData(const TBrushData &BrushData);
  415.     
  416. protected:
  417.     TBitmap* __fastcall GetBitmap(void);
  418.     void __fastcall SetBitmap(TBitmap* Value);
  419.     TColor __fastcall GetColor(void);
  420.     void __fastcall SetColor(TColor Value);
  421.     HBRUSH __fastcall GetHandle(void);
  422.     void __fastcall SetHandle(HBRUSH Value);
  423.     TBrushStyle __fastcall GetStyle(void);
  424.     void __fastcall SetStyle(TBrushStyle Value);
  425.     
  426. public:
  427.     __fastcall TBrush(void);
  428.     __fastcall virtual ~TBrush(void);
  429.     virtual void __fastcall Assign(Classes::TPersistent* Source);
  430.     __property TBitmap* Bitmap = {read=GetBitmap, write=SetBitmap, nodefault};
  431.     __property HBRUSH Handle = {read=GetHandle, write=SetHandle, nodefault};
  432.     
  433. __published:
  434.     __property TColor Color = {read=GetColor, write=SetColor, default=16777215};
  435.     __property TBrushStyle Style = {read=GetStyle, write=SetStyle, default=0};
  436. };
  437.  
  438. enum TFillStyle { fsSurface, fsBorder };
  439.  
  440. enum TFillMode { fmAlternate, fmWinding };
  441.  
  442. typedef long TCopyMode;
  443.  
  444. enum TCanvasStates { csHandleValid, csFontValid, csPenValid, csBrushValid };
  445.  
  446. typedef Set<TCanvasStates, csHandleValid, csBrushValid>  TCanvasState;
  447.  
  448. class __declspec(pascalimplementation) TCanvas : public Classes::TPersistent
  449. {
  450.     typedef Classes::TPersistent inherited;
  451.     
  452. private:
  453.     HDC FHandle;
  454.     TCanvasState State;
  455.     TFont* FFont;
  456.     TPen* FPen;
  457.     TBrush* FBrush;
  458.     POINT FPenPos;
  459.     long FCopyMode;
  460.     Classes::TNotifyEvent FOnChange;
  461.     Classes::TNotifyEvent FOnChanging;
  462.     void __fastcall CreateBrush(void);
  463.     void __fastcall CreateFont(void);
  464.     void __fastcall CreatePen(void);
  465.     void __fastcall BrushChanged(System::TObject* ABrush);
  466.     void __fastcall DeselectHandles(void);
  467.     Windows::TRect __fastcall GetClipRect(void);
  468.     HDC __fastcall GetHandle(void);
  469.     POINT __fastcall GetPenPos(void);
  470.     TColor __fastcall GetPixel(int X, int Y);
  471.     void __fastcall FontChanged(System::TObject* AFont);
  472.     void __fastcall PenChanged(System::TObject* APen);
  473.     void __fastcall SetBrush(TBrush* Value);
  474.     void __fastcall SetFont(TFont* Value);
  475.     void __fastcall SetHandle(HDC Value);
  476.     void __fastcall SetPen(TPen* Value);
  477.     void __fastcall SetPenPos(const POINT &Value);
  478.     void __fastcall SetPixel(int X, int Y, TColor Value);
  479.     
  480. protected:
  481.     virtual void __fastcall Changed(void);
  482.     virtual void __fastcall Changing(void);
  483.     virtual void __fastcall CreateHandle(void);
  484.     void __fastcall RequiredState(TCanvasState ReqState);
  485.     
  486. public:
  487.     __fastcall TCanvas(void);
  488.     __fastcall virtual ~TCanvas(void);
  489.     void __fastcall Arc(int X1, int Y1, int X2, int Y2, int X3, int Y3, int X4, int Y4);
  490.     void __fastcall BrushCopy(const Windows::TRect &Dest, TBitmap* Bitmap, const Windows::TRect &Source
  491.         , TColor Color);
  492.     void __fastcall Chord(int X1, int Y1, int X2, int Y2, int X3, int Y3, int X4, int Y4);
  493.     void __fastcall CopyRect(const Windows::TRect &Dest, TCanvas* Canvas, const Windows::TRect &Source)
  494.         ;
  495.     void __fastcall Draw(int X, int Y, TGraphic* Graphic);
  496.     void __fastcall DrawFocusRect(const Windows::TRect &Rect);
  497.     void __fastcall Ellipse(int X1, int Y1, int X2, int Y2);
  498.     void __fastcall FillRect(const Windows::TRect &Rect);
  499.     void __fastcall FloodFill(int X, int Y, TColor Color, TFillStyle FillStyle);
  500.     void __fastcall FrameRect(const Windows::TRect &Rect);
  501.     void __fastcall LineTo(int X, int Y);
  502.     void __fastcall MoveTo(int X, int Y);
  503.     void __fastcall Pie(int X1, int Y1, int X2, int Y2, int X3, int Y3, int X4, int Y4);
  504.     void __fastcall Polygon(const POINT * Points, const int Points_Size);
  505.     void __fastcall Polyline(const POINT * Points, const int Points_Size);
  506.     void __fastcall Rectangle(int X1, int Y1, int X2, int Y2);
  507.     void __fastcall Refresh(void);
  508.     void __fastcall RoundRect(int X1, int Y1, int X2, int Y2, int X3, int Y3);
  509.     void __fastcall StretchDraw(const Windows::TRect &Rect, TGraphic* Graphic);
  510.     int __fastcall TextHeight(const System::AnsiString Text);
  511.     void __fastcall TextOut(int X, int Y, const System::AnsiString Text);
  512.     void __fastcall TextRect(const Windows::TRect &Rect, int X, int Y, const System::AnsiString Text);
  513.     int __fastcall TextWidth(const System::AnsiString Text);
  514.     __property Windows::TRect ClipRect = {read=GetClipRect};
  515.     __property HDC Handle = {read=GetHandle, write=SetHandle, nodefault};
  516.     __property POINT PenPos = {read=GetPenPos, write=SetPenPos};
  517.     __property TColor Pixels[int X][int Y] = {read=GetPixel, write=SetPixel};
  518.     __property Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
  519.     __property Classes::TNotifyEvent OnChanging = {read=FOnChanging, write=FOnChanging};
  520.     
  521. __published:
  522.     __property TBrush* Brush = {read=FBrush, write=SetBrush, nodefault};
  523.     __property long CopyMode = {read=FCopyMode, write=FCopyMode, default=13369376};
  524.     __property TFont* Font = {read=FFont, write=SetFont, nodefault};
  525.     __property TPen* Pen = {read=FPen, write=SetPen, nodefault};
  526. };
  527.  
  528. typedef System::TMetaClass*TGraphicClass;
  529.  
  530. class __declspec(delphiclass) TPicture;
  531. class __declspec(delphiclass) TIcon;
  532. class __declspec(delphiclass) TMetafile;
  533. class __declspec(pascalimplementation) TPicture : public Classes::TPersistent
  534. {
  535.     typedef Classes::TPersistent inherited;
  536.     
  537. private:
  538.     TGraphic* FGraphic;
  539.     Classes::TNotifyEvent FOnChange;
  540.     void __fastcall ForceType(System::TMetaClass* GraphicType);
  541.     TBitmap* __fastcall GetBitmap(void);
  542.     int __fastcall GetHeight(void);
  543.     TIcon* __fastcall GetIcon(void);
  544.     TMetafile* __fastcall GetMetafile(void);
  545.     int __fastcall GetWidth(void);
  546.     void __fastcall ReadData(Classes::TStream* Stream);
  547.     void __fastcall SetBitmap(TBitmap* Value);
  548.     void __fastcall SetGraphic(TGraphic* Value);
  549.     void __fastcall SetIcon(TIcon* Value);
  550.     void __fastcall SetMetafile(TMetafile* Value);
  551.     void __fastcall WriteData(Classes::TStream* Stream);
  552.     
  553. protected:
  554.     virtual void __fastcall AssignTo(Classes::TPersistent* Dest);
  555.     void __fastcall Changed(System::TObject* Sender);
  556.     virtual void __fastcall DefineProperties(Classes::TFiler* Filer);
  557.     
  558. public:
  559.     __fastcall virtual ~TPicture(void);
  560.     void __fastcall LoadFromFile(const System::AnsiString Filename);
  561.     void __fastcall SaveToFile(const System::AnsiString Filename);
  562.     void __fastcall LoadFromClipboardFormat(Word AFormat, int AData, HPALETTE APalette);
  563.     void __fastcall SaveToClipboardFormat(Word &AFormat, int &AData, HPALETTE &APalette);
  564.     static /* class method */ bool __fastcall SupportsClipboardFormat(const System::TMetaClass* const vmt, 
  565.         Word AFormat);
  566.     virtual void __fastcall Assign(Classes::TPersistent* Source);
  567.     static /* class method */ void __fastcall RegisterFileFormat(const System::TMetaClass* const vmt, const System::AnsiString 
  568.         AExtension, const System::AnsiString ADescription, System::TMetaClass* AGraphicClass);
  569.     static /* class method */ void __fastcall RegisterFileFormatRes(const System::TMetaClass* const vmt, 
  570.         const System::AnsiString AExtension, int ADescriptionResID, System::TMetaClass* AGraphicClass);
  571.     static /* class method */ void __fastcall RegisterClipboardFormat(const System::TMetaClass* const vmt, 
  572.         Word AFormat, System::TMetaClass* AGraphicClass);
  573.     __property TBitmap* Bitmap = {read=GetBitmap, write=SetBitmap, nodefault};
  574.     __property TGraphic* Graphic = {read=FGraphic, write=SetGraphic, nodefault};
  575.     __property int Height = {read=GetHeight, nodefault};
  576.     __property TIcon* Icon = {read=GetIcon, write=SetIcon, nodefault};
  577.     __property TMetafile* Metafile = {read=GetMetafile, write=SetMetafile, nodefault};
  578.     __property int Width = {read=GetWidth, nodefault};
  579.     __property Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
  580. public:
  581.     /* TObject.Create */ __fastcall TPicture(void) : Classes::TPersistent() { }
  582.     
  583. };
  584.  
  585. class __declspec(delphiclass) TMetafileCanvas;
  586. class __declspec(pascalimplementation) TMetafileCanvas : public TCanvas
  587. {
  588.     typedef TCanvas inherited;
  589.     
  590. private:
  591.     TMetafile* FMetafile;
  592.     
  593. public:
  594.     __fastcall TMetafileCanvas(TMetafile* AMetafile, HDC ReferenceDevice);
  595.     __fastcall TMetafileCanvas(TMetafile* AMetafile, HDC ReferenceDevice, const System::AnsiString CreatedBy
  596.         , const System::AnsiString Description);
  597.     __fastcall virtual ~TMetafileCanvas(void);
  598. };
  599.  
  600. class __declspec(delphiclass) TMetafileImage;
  601. class __declspec(pascalimplementation) TMetafileImage : public System::TObject
  602. {
  603.     typedef System::TObject inherited;
  604.     
  605. private:
  606.     int FRefCount;
  607.     int FHandle;
  608.     int FWidth;
  609.     int FHeight;
  610.     HPALETTE FPalette;
  611.     Word FInch;
  612.     int FTempWidth;
  613.     int FTempHeight;
  614.     void __fastcall Reference(void);
  615.     void __fastcall Release(void);
  616. public:
  617.     /* TObject.Create */ __fastcall TMetafileImage(void) : System::TObject() { }
  618.     /* TObject.Destroy */ __fastcall virtual ~TMetafileImage(void) { }
  619.     
  620. };
  621.  
  622. class __declspec(pascalimplementation) TMetafile : public TGraphic
  623. {
  624.     typedef TGraphic inherited;
  625.     
  626. private:
  627.     TMetafileImage* FImage;
  628.     bool FEnhanced;
  629.     System::AnsiString __fastcall GetAuthor(void);
  630.     System::AnsiString __fastcall GetDesc(void);
  631.     int __fastcall GetHandle(void);
  632.     Word __fastcall GetInch(void);
  633.     int __fastcall GetMMHeight(void);
  634.     int __fastcall GetMMWidth(void);
  635.     HPALETTE __fastcall GetPalette(void);
  636.     void __fastcall NewImage(void);
  637.     void __fastcall SetHandle(int Value);
  638.     void __fastcall SetInch(Word Value);
  639.     void __fastcall SetMMHeight(int Value);
  640.     void __fastcall SetMMWidth(int Value);
  641.     void __fastcall UniqueImage(void);
  642.     
  643. protected:
  644.     virtual bool __fastcall GetEmpty(void);
  645.     virtual int __fastcall GetHeight(void);
  646.     virtual int __fastcall GetWidth(void);
  647.     virtual void __fastcall Draw(TCanvas* ACanvas, const Windows::TRect &Rect);
  648.     virtual void __fastcall ReadData(Classes::TStream* Stream);
  649.     void __fastcall ReadEMFStream(Classes::TStream* Stream);
  650.     void __fastcall ReadWMFStream(Classes::TStream* Stream, long Length);
  651.     virtual void __fastcall SetHeight(int Value);
  652.     virtual void __fastcall SetWidth(int Value);
  653.     bool __fastcall TestEMF(Classes::TStream* Stream);
  654.     virtual void __fastcall WriteData(Classes::TStream* Stream);
  655.     void __fastcall WriteEMFStream(Classes::TStream* Stream);
  656.     void __fastcall WriteWMFStream(Classes::TStream* Stream);
  657.     
  658. public:
  659.     __fastcall virtual TMetafile(void);
  660.     __fastcall virtual ~TMetafile(void);
  661.     void __fastcall Clear(void);
  662.     virtual void __fastcall LoadFromStream(Classes::TStream* Stream);
  663.     virtual void __fastcall SaveToFile(const System::AnsiString Filename);
  664.     virtual void __fastcall SaveToStream(Classes::TStream* Stream);
  665.     virtual void __fastcall LoadFromClipboardFormat(Word AFormat, int AData, HPALETTE APalette);
  666.     virtual void __fastcall SaveToClipboardFormat(Word &AFormat, int &AData, HPALETTE &APalette);
  667.     virtual void __fastcall Assign(Classes::TPersistent* Source);
  668.     __property System::AnsiString CreatedBy = {read=GetAuthor, nodefault};
  669.     __property System::AnsiString Description = {read=GetDesc, nodefault};
  670.     __property bool Enhanced = {read=FEnhanced, write=FEnhanced, default=1};
  671.     __property int Handle = {read=GetHandle, write=SetHandle, nodefault};
  672.     __property int MMWidth = {read=GetMMWidth, write=SetMMWidth, nodefault};
  673.     __property int MMHeight = {read=GetMMHeight, write=SetMMHeight, nodefault};
  674.     __property Word Inch = {read=GetInch, write=SetInch, nodefault};
  675.     __property HPALETTE Palette = {read=GetPalette, nodefault};
  676. };
  677.  
  678. class __declspec(delphiclass) TIconImage;
  679. class __declspec(pascalimplementation) TIconImage : public TInternalImage
  680. {
  681.     typedef TInternalImage inherited;
  682.     
  683. private:
  684.     HICON FHandle;
  685.     virtual void __fastcall FreeHandle(void);
  686. public:
  687.     /* TObject.Create */ __fastcall TIconImage(void) : Graphics::TInternalImage() { }
  688.     /* TObject.Destroy */ __fastcall virtual ~TIconImage(void) { }
  689.     
  690. };
  691.  
  692. class __declspec(pascalimplementation) TIcon : public TGraphic
  693. {
  694.     typedef TGraphic inherited;
  695.     
  696. private:
  697.     TIconImage* FImage;
  698.     HICON __fastcall GetHandle(void);
  699.     void __fastcall HandleNeeded(void);
  700.     void __fastcall ImageNeeded(void);
  701.     void __fastcall NewImage(HICON NewHandle, Classes::TMemoryStream* NewImage);
  702.     void __fastcall SetHandle(HICON Value);
  703.     
  704. protected:
  705.     virtual void __fastcall Draw(TCanvas* ACanvas, const Windows::TRect &Rect);
  706.     virtual bool __fastcall GetEmpty(void);
  707.     virtual int __fastcall GetHeight(void);
  708.     virtual int __fastcall GetWidth(void);
  709.     virtual void __fastcall SetHeight(int Value);
  710.     virtual void __fastcall SetWidth(int Value);
  711.     virtual void __fastcall LoadFromClipboardFormat(Word AFormat, int AData, HPALETTE APalette);
  712.     virtual void __fastcall SaveToClipboardFormat(Word &Format, int &Data, HPALETTE &APalette);
  713.     
  714. public:
  715.     __fastcall virtual TIcon(void);
  716.     __fastcall virtual ~TIcon(void);
  717.     virtual void __fastcall Assign(Classes::TPersistent* Source);
  718.     virtual void __fastcall LoadFromStream(Classes::TStream* Stream);
  719.     HICON __fastcall ReleaseHandle(void);
  720.     virtual void __fastcall SaveToStream(Classes::TStream* Stream);
  721.     __property HICON Handle = {read=GetHandle, write=SetHandle, nodefault};
  722. };
  723.  
  724. //-- var, const, procedure ---------------------------------------------------
  725. #define clScrollBar (TColor)(-2147483648)
  726. #define clBackground (TColor)(-2147483647)
  727. #define clActiveCaption (TColor)(-2147483646)
  728. #define clInactiveCaption (TColor)(-2147483645)
  729. #define clMenu (TColor)(-2147483644)
  730. #define clWindow (TColor)(-2147483643)
  731. #define clWindowFrame (TColor)(-2147483642)
  732. #define clMenuText (TColor)(-2147483641)
  733. #define clWindowText (TColor)(-2147483640)
  734. #define clCaptionText (TColor)(-2147483639)
  735. #define clActiveBorder (TColor)(-2147483638)
  736. #define clInactiveBorder (TColor)(-2147483637)
  737. #define clAppWorkSpace (TColor)(-2147483636)
  738. #define clHighlight (TColor)(-2147483635)
  739. #define clHighlightText (TColor)(-2147483634)
  740. #define clBtnFace (TColor)(-2147483633)
  741. #define clBtnShadow (TColor)(-2147483632)
  742. #define clGrayText (TColor)(-2147483631)
  743. #define clBtnText (TColor)(-2147483630)
  744. #define clInactiveCaptionText (TColor)(-2147483629)
  745. #define clBtnHighlight (TColor)(-2147483628)
  746. #define cl3DDkShadow (TColor)(-2147483627)
  747. #define cl3DLight (TColor)(-2147483626)
  748. #define clInfoText (TColor)(-2147483625)
  749. #define clInfoBk (TColor)(-2147483624)
  750. #define clBlack (TColor)(0)
  751. #define clMaroon (TColor)(128)
  752. #define clGreen (TColor)(32768)
  753. #define clOlive (TColor)(32896)
  754. #define clNavy (TColor)(8388608)
  755. #define clPurple (TColor)(8388736)
  756. #define clTeal (TColor)(8421376)
  757. #define clGray (TColor)(8421504)
  758. #define clSilver (TColor)(12632256)
  759. #define clRed (TColor)(255)
  760. #define clLime (TColor)(65280)
  761. #define clYellow (TColor)(65535)
  762. #define clBlue (TColor)(16711680)
  763. #define clFuchsia (TColor)(16711935)
  764. #define clAqua (TColor)(16776960)
  765. #define clLtGray (TColor)(12632256)
  766. #define clDkGray (TColor)(8421504)
  767. #define clWhite (TColor)(16777215)
  768. #define clNone (TColor)(536870911)
  769. #define clDefault (TColor)(536870912)
  770. #define cmBlackness (Byte)(66)
  771. #define cmDstInvert (int)(5570569)
  772. #define cmMergeCopy (int)(12583114)
  773. #define cmMergePaint (int)(12255782)
  774. #define cmNotSrcCopy (int)(3342344)
  775. #define cmNotSrcErase (int)(1114278)
  776. #define cmPatCopy (int)(15728673)
  777. #define cmPatInvert (int)(5898313)
  778. #define cmPatPaint (int)(16452105)
  779. #define cmSrcAnd (int)(8913094)
  780. #define cmSrcCopy (int)(13369376)
  781. #define cmSrcErase (int)(4457256)
  782. #define cmSrcInvert (int)(6684742)
  783. #define cmSrcPaint (int)(15597702)
  784. #define cmWhiteness (int)(16711778)
  785. extern TFontData DefFontData;
  786. extern void __fastcall PaletteChanged(void);
  787. extern long __fastcall ColorToRGB(TColor Color);
  788. extern System::AnsiString __fastcall ColorToString(TColor Color);
  789. extern TColor __fastcall StringToColor(const System::AnsiString S);
  790. extern void __fastcall GetColorValues(Classes::TGetStrProc Proc);
  791. extern bool __fastcall ColorToIdent(long Color,  System::AnsiString &Ident);
  792. extern bool __fastcall IdentToColor(const System::AnsiString Ident, long &Color);
  793. extern void __fastcall GetCharsetValues(Classes::TGetStrProc Proc);
  794. extern bool __fastcall CharsetToIdent(long Charset,  System::AnsiString &Ident);
  795. extern bool __fastcall IdentToCharset(const System::AnsiString Ident, long &Charset);
  796. extern void * __fastcall MemAlloc(long Size);
  797. extern void __fastcall GetDIBSizes(HBITMAP Bitmap, int &InfoHeaderSize, int &ImageSize);
  798. extern bool __fastcall GetDIB(HBITMAP Bitmap, HPALETTE Palette, void *BitmapInfo, void *Bits);
  799. extern void __fastcall FreeMemoryContexts(void);
  800. extern HPALETTE __fastcall CopyPalette(HPALETTE Palette);
  801. extern System::AnsiString __fastcall GraphicFilter(System::TMetaClass* GraphicClass);
  802. extern System::AnsiString __fastcall GraphicExtension(System::TMetaClass* GraphicClass);
  803. extern TFontCharset __fastcall GetDefFontCharSet(void);
  804. extern void __fastcall InitGraphics(void);
  805. //-- template instantiations -------------------------------------------------
  806. template class TCanvasState ;
  807. template class TDummyFontStyles ;
  808. template class SmallString<31> ;
  809. template class TFontStyles ;
  810.  
  811. }    /* namespace Graphics */
  812.  
  813. #pragma warn .par
  814. #pragma warn .hid 
  815. #pragma warn .inl
  816.  
  817. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  818. using namespace Graphics;
  819. #endif
  820. //-- end unit ----------------------------------------------------------------
  821. #endif    // Graphics
  822.