/////////////////////////////////////////////////////////////////////////////
// Name: bitmap.h
// Purpose: wxBitmap class
-// Author: AUTHOR
+// Author: Stefan Csomor
// Modified by:
-// Created: ??/??/98
+// Created: 1998-01-01
// RCS-ID: $Id$
-// Copyright: (c) AUTHOR
-// Licence: wxWindows licence
+// Copyright: (c) Stefan Csomor
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_BITMAP_H_
#define _WX_BITMAP_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "bitmap.h"
#endif
#include "wx/palette.h"
// Bitmap
-class WXDLLEXPORT wxDC;
-class WXDLLEXPORT wxControl;
class WXDLLEXPORT wxBitmap;
class WXDLLEXPORT wxBitmapHandler;
-class WXDLLEXPORT wxIcon;
+class WXDLLEXPORT wxControl;
class WXDLLEXPORT wxCursor;
+class WXDLLEXPORT wxDC;
+class WXDLLEXPORT wxIcon;
class WXDLLEXPORT wxImage;
+class WXDLLEXPORT wxPixelDataBase;
-// A mask is a mono bitmap used for drawing bitmaps
+// A mask is a bitmap used for drawing bitmaps
+// it can be a monochrome bitmap or a multi-bit bitmap which transfers to alpha channels
// transparently.
class WXDLLEXPORT wxMask: public wxObject
{
bool PointMasked(int x, int y);
inline WXHBITMAP GetMaskBitmap() const { return m_maskBitmap; }
inline void SetMaskBitmap(WXHBITMAP bmp) { m_maskBitmap = bmp; }
+ int GetDepth() const { return m_depth ; }
+ void SetDepth( int depth ) { m_depth = depth ; }
protected:
WXHBITMAP m_maskBitmap;
+ int m_depth ;
};
enum { kMacBitmapTypeUnknownType , kMacBitmapTypeGrafWorld, kMacBitmapTypePict , kMacBitmapTypeIcon } ;
wxPalette m_bitmapPalette;
int m_quality;
- int m_bitmapType ;
- WXHMETAFILE m_hPict ;
+ int m_bitmapType ;
+ WXHMETAFILE m_hPict ;
WXHBITMAP m_hBitmap;
WXHICON m_hIcon ;
wxMask * m_bitmapMask; // Optional mask
+ bool m_hasAlpha;
};
#define M_BITMAPDATA ((wxBitmapRefData *)m_refData)
inline bool operator != (const wxBitmap& bitmap) const { return m_refData != bitmap.m_refData; }
static void InitStandardHandlers();
-protected:
- // TODO: Implementation
+ // raw bitmap access support functions, for internal use only
+ void *GetRawData(wxPixelDataBase& data, int bpp);
+ void UngetRawData(wxPixelDataBase& data);
+
+ void UseAlpha();
+
public:
- void SetHBITMAP(WXHBITMAP bmp);
WXHBITMAP GetHBITMAP() const;
- void SetHICON(WXHICON ico);
inline WXHICON GetHICON() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_hIcon : 0); }
-
- WXHMETAFILE GetPict() const;
+ WXHMETAFILE GetPict(bool *created = NULL ) const;
+
+ void SetHBITMAP(WXHBITMAP bmp);
+ void SetHICON(WXHICON ico);
+ void SetPict( WXHMETAFILE pict ) ;
bool FreeResource(bool force = FALSE);
};