home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 November / VPR9611B.ISO / vabasic / ntclnt.exe / DISK8 / data.8 / datab / INCLUDE / CBITMAP.HH < prev    next >
Text File  |  1996-07-29  |  5KB  |  146 lines

  1. //-------------------------------------------------------------
  2. // $Source: /rcs/crcs/utils/intel/cbitmap.hh,v $
  3. // Checked in by: $Author: thomas $
  4. // $Date: 1996/07/24 18:11:47 $              $Revision: 1.25 $
  5. //--------------------------------------------------------------
  6. //      Copyright (c) International Business Machines Inc, 1994
  7. //
  8. // ALL RIGHTS RESERVED. This notice is intended as a precaution
  9. // against inadvertent publication, and shall not be deemed to
  10. // consitute an acknowledgment that publication has occurred
  11. // nor to imply any waiver of confidentiality. The year included
  12. // in the notice is the year of the creation of the work.
  13. //--------------------------------------------------------------
  14. // DESCRIPTION:
  15. //      This file contains the class declaration for the
  16. //      VwpBitmap class.
  17. //--------------------------------------------------------------
  18. #ifndef CBITMAP_HH
  19. #define CBITMAP_HH
  20.  
  21. #include <vwglobal.hh>
  22. #include <vtoolkit.hh>
  23. #include <cplace.hh>
  24.  
  25. VCLASS  VwpPalette;
  26. VCLASS  VePathList;
  27.  
  28. #ifdef VSYS_WINDOWS
  29. typedef HBITMAP HDIB;
  30.  
  31. #ifdef NOTEMPLATES
  32. #       ifndef CBitmapListDefined
  33. #               define CBitmapListDefined
  34. #               define CLASSNAME        VwpBitmapList
  35. #               define ENTRYTYPE        VwpBitmap*
  36. #               include <mst/varray.mst>
  37. #       endif
  38. #else
  39. #       include <varray.hh>
  40.         typedef VeArray<VwpBitmap *>       VwpBitmapList;
  41. #endif
  42.  
  43. #endif
  44.  
  45. // legacy bitmap load functions
  46. VFUNCDECL(VwpHandle*) LoadDIB(FILE *hf);
  47. VFUNCDECL(VwpHandle*) LoadDIB(const char *, long offset, VePathList *pathList=0);
  48.  
  49. VCLASS VwpBitmap : public VwpDC, public VwpPlaceable {
  50.  
  51. public:
  52.  
  53.   VOPERDECL VwpBitmap();
  54.   VOPERDECL VwpBitmap(HBITMAP bitmap);
  55.   VOPERDECL VwpBitmap(VwpHandle *);
  56.   VOPERDECL VwpBitmap(int resourceId, long module = 0L);
  57.   VOPERDECL VwpBitmap(long, long);
  58.  
  59.   // legacy constructors
  60.   VOPERDECL VwpBitmap(VwpDC* pDC, long width, long height);
  61.  
  62.   virtual VOPERDECL ~VwpBitmap();
  63.  
  64.   // Visual Basic functionality
  65.   VMETHODDECL(void)     SetHandle(VwResHandle);
  66.   VMETHODDECL(void)     SetHandle(VwpHandle *);
  67.   VMETHODDECL(VwStatus) Load(const char *fileName, long offset = 0);
  68.   VMETHODDECL(VwStatus) Load(FILE *hf);
  69.   VMETHODDECL(VwStatus) Load(void *buffer, LONG buflen);
  70.   VMETHODDECL(VwStatus) Paint(VwpDC *, VwpRect *);
  71.   VMETHODDECL(bool_t)   Transparent();
  72.   VMETHODDECL(VwStatus) PutTransparent(bool_t);
  73.   VMETHODDECL(VwStatus) PutTransColor(VwResColor);
  74.   VMETHODDECL(VwStatus) PaintTransparent(VwpDC *, VwpRect *, long bcolor=0L);
  75. #ifdef VSYS_WINDOWS
  76.   VMETHODDECL(VwStatus) PaintFullTransparent(VwpDC *, VwpRect *, long bcolor=0L);
  77.   VMETHODDECL(VwStatus) Print();
  78.   VMETHODDECL(VwStatus) Save(void *, long len);
  79. #endif
  80.   VMETHODDECL(VwStatus) Save(const char * fileName);
  81.   VMETHODDECL(VwStatus) Save(FILE *fh);
  82.   VMETHODDECL(int)      GraphicFormat();
  83.   VMETHODDECL(LONG)     GraphicLength();
  84.   VMETHODDECL(VwStatus) DumpGraphic(void *buffer);
  85.   VMETHODDECL(VwResHandle)  CloneGraphic();
  86.   VMETHODDECL(VwpPlaceable *) Copy();
  87.  
  88.   VMETHODDECL(void)     Init();
  89.   VMETHODDECL(VwBool)   FreeHandle(void);
  90.  
  91.   static VMETHODDECL(VwBool)  CanLoadFrom(void *buffer,
  92.                                           LONG buflen,
  93.                                           VeString fileName,
  94.                                           FILE *file,
  95.                                           VwpPlaceable **placeable);
  96.   static VMETHODDECL(VwBool)  DestroyCallback(VwResHandle);
  97.  
  98.   // Legacy methods from VwpBitmap implementation
  99.  
  100.  
  101.   VMETHODDECL(void) paintPixmap(VwpDC *,RECT *rect, 
  102.                                 long bkColor=-1L, long foColor=0L,
  103.                                 VwBool paintFull = VwFalse);
  104.   VINLINEDECL(VwpPalette*) GetPalette();
  105.   VINLINEDECL(LONG) Width();
  106.   VINLINEDECL(LONG) Height();
  107.   VINLINEDECL(VwResColor) TransColor();
  108.  
  109.   static VMETHODDECL(VwpHandle *) LoadBitmap(const char *  fileName, long offset = 0);
  110.  
  111. #ifdef VSYS_WINDOWS
  112.   static VMETHODDECL(void) ReleaseBitmaps();
  113.   VMETHODDECL(void) LoadBitmap(int resId);
  114. #endif
  115.  
  116.  
  117.   VINLINEDECL(VTPixmap) GetHandle();
  118.  
  119.  
  120. private:
  121.         bool_t itsTransparent;
  122.         VwResColor itsTransColor;
  123.         
  124. #ifdef VSYS_OS2
  125.   HPS   itsOwnHps;
  126.   HDC   itsOwnHdc;
  127.   bool_t itsBitmapSet;
  128.   static LONG theSystemColorCount;
  129. #endif
  130. #ifdef VSYS_WINDOWS
  131.   HBITMAP   itsOldBitmapH; // this is needed for the legacy code
  132.   static VwpBitmapList*   itsBitmapList;
  133. #endif
  134. };
  135.  
  136. #ifdef VSYS_OS2
  137.   VINLINEDEF(VwpPalette*) VwpBitmap::GetPalette() { return NULL; }
  138. #else // WINDOWS
  139.   VINLINEDEF(VwpPalette*) VwpBitmap::GetPalette() { return itsPalette; }
  140. #endif
  141. VINLINEDEF(LONG) VwpBitmap::Width()  { return itsSize.cx; };
  142. VINLINEDEF(LONG) VwpBitmap::Height() { return itsSize.cy; };
  143. VINLINEDEF(VTPixmap) VwpBitmap::GetHandle() {return (VTPixmap)PlatformHandle();};
  144. VINLINEDEF(VwResColor) VwpBitmap::TransColor() {return itsTransColor; };
  145. #endif
  146.