#ifndef __IMGBRUSH_H__ #define __IMGBRUSH_H__ class CImgBrush : public CObject { public: /******************************************************************/ CImgBrush(); virtual ~CImgBrush(); BOOL CopyTo( CImgBrush& destImgBrush ); CPalette* SetBrushPalette( CDC* pdc, BOOL bForce = FALSE ); HPALETTE SetBrushPalette( HDC hdc, BOOL bForce = FALSE ); BOOL SetSize ( CSize newSize, BOOL bStretchToFit=TRUE ); void ColorToMonoBitBlt(CDC* pdcMono, int xMono, int yMono, int cx, int cy, CDC *pdcColor, int xColor, int yColor, DWORD dwROP, COLORREF transparentColor); void RecalcMask( COLORREF transparentColor ); void BltMatte ( IMG* pimg, CPoint topLeft ); void BltReplace( IMG* pimg, CPoint topLeft ); void BltColor ( IMG* pimg, CPoint topLeft, COLORREF color ); void CenterHandle(); void TopLeftHandle(); CRgn m_cRgnPolyFreeHandSelBorder; CRgn m_cRgnPolyFreeHandSel; CDC m_dc; CBitmap m_bitmap; CSize m_size; CDC m_maskDC; CBitmap m_maskBitmap; HBITMAP m_hbmOld; HBITMAP m_hbmMaskOld; BOOL m_bFirstDrag; BOOL m_bLastDragWasASmear; BOOL m_bLastDragWasFirst; BOOL m_bCuttingFromImage; BOOL m_bMakingSelection; BOOL m_bMoveSel; BOOL m_bSmearSel; BOOL m_bOpaque; CRect m_rcDraggedFrom; CSize m_dragOffset; IMG* m_pImg; CRect m_rcSelection; CSize m_handle; }; extern CImgBrush NEAR theImgBrush; void GetMonoBltColors(HDC hDC, HBITMAP hBM, COLORREF& crNewBk, COLORREF& crNewText); BOOL QuickColorToMono(CDC* pdcMono, int xMono, int yMono, int cx, int cy, CDC *pdcColor, int xColor, int yColor, DWORD dwROP, COLORREF crTrans); // #define DEBUGSHOWBITMAPS #if defined(DEBUGSHOWBITMAPS) void DebugShowBitmap(HDC hdcSrc, int x, int y, int wid, int hgt); #else #define DebugShowBitmap(hdc,x,y,w,h) #endif #endif // __IMGBRUSH_H__