home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ool_main.zip / ool / include / xbitmap.h < prev    next >
Text File  |  1998-03-15  |  3KB  |  77 lines

  1. #ifndef __OOL_XBITMAP_H__
  2. #define __OOL_XBITMAP_H__
  3.  
  4. /*===========================================================================*/
  5. /* OOL ------------------- the Open Object Library ------------------- r 1.0 */
  6. /*===========================================================================*/
  7. /*                              class: XBitmap                               */
  8. /*                       derived from: XGraphicObject                        */
  9. /*                        last update: 3/98                                  */
  10. /*                      programmed by: Stefan von Brauk (sbrauk@gwdg.de)     */
  11. /*                         OOLGLIB by: Mathias Hasselmann                    */
  12. /*                                     mhasselm@arco.met.fu-berlin.de        */
  13. /*===========================================================================*/
  14.  
  15.  
  16. #include "xgraphob.h"
  17. #include "XPoint.h"
  18. #include "XRes.h"
  19. #include "XWindow.h"
  20. #include "xsize.h"
  21. #include "oolglib.h"
  22.  
  23. class XResourceLibrary;
  24. class XBitmapFilterParameter;
  25.  
  26. class _export_  XBitmap: public XGraphicObject
  27. {
  28.       friend class XClipBoard;
  29.       friend class XItemDrawEvent;
  30.       friend class XUserButton;
  31.       friend class XContainerObject;
  32.       friend class userbtnhandler;
  33.       friend class userbtnmousehandler;
  34.    private:
  35.       XWindow * owner;
  36.       HBITMAP hbm;
  37.       HDC hdc;
  38.       HPS hps;
  39.       LONG SetData( const BITMAPINFOHEADER2 *, const LONG );
  40.       BOOL HitTest( const LONG x, const LONG y);
  41.       LONG cx, cy, mode, width, height;
  42.       void Load( const ULONG, const XResourceLibrary *);
  43.    public:
  44.       XBitmap( const XPoint * p = NULL, const LONG mode = ROP_SRCCOPY);
  45.       XBitmap( const XWindow *);
  46.       ~XBitmap();
  47.       void Copy( const XGraphicDevice *, const XPoint * );
  48.       void Draw( XGraphicDevice * dev );
  49.       ULONG GetHandle( void ) const { return hbm; }
  50.       void Load( const XResource * r);
  51.       void Load( const ULONG);
  52.       void LoadBMP(const char* filename);
  53.       void Load(const char* filename, XBitmapFilter* param = NULL, BOOL releaseParams = TRUE);
  54.       void Save(const char* filename, XBitmapFilter* param = NULL, BOOL releaseParams = TRUE);
  55.       static char**           GetFilterNames ();
  56.       static char**           GetFilterExtensions ();
  57.       static XBitmapFilter*   GetImportFilterStruct (const char* filename);
  58.       static XBitmapFilter*   GetExportFilterStruct (const char* filename);
  59.       static void             ReleaseFilterStruct (XBitmapFilter* param);
  60.       static void             SetupImportFilter (const XWindow* owner, const char* filename, XBitmapFilter* params);
  61.       static void             SetupExportFilter (const XWindow* owner, const char* filename, XBitmapFilter* params);
  62.  
  63.       void GetDimensions( XSize *) const;
  64.       void SetOutputSize( const XRect *r) { width = r->GetWidth(); height = r->GetHeight(); }
  65.       XBitmap operator =(const XBitmap& da);
  66.       void Fill( XColor * color);
  67.  
  68. friend class ABitmap;
  69. friend class XGLibFileDialog;
  70.    private:
  71.       static void  CheckFilterProfile ();
  72.       static char* GetLastErrorMessage (XResourceLibrary*, ULONG*, XBitmapFilter*);
  73.       static XBitmapFilterProfile* GetProfile ();
  74. };
  75.  
  76. #endif
  77.