virtual void SelectObject(const wxBitmap& rBitmap);
protected:
// override some base class virtuals
- virtual void DoDrawRectangle( wxCoord vX
- ,wxCoord vY
- ,wxCoord vWidth
- ,wxCoord vHeight
- );
- virtual void DoDrawRoundedRectangle( wxCoord vX
- ,wxCoord vY
- ,wxCoord vWidth
- ,wxCoord vHeight
- ,double dRadius
- );
- virtual void DoDrawText( const wxString& rsText
- ,wxCoord vX
- ,wxCoord vY
- );
- virtual void DoDrawLine( wxCoord vX1
- ,wxCoord vY1
- ,wxCoord vX2
- ,wxCoord vY2
- );
virtual void DoGetSize( int* pWidth
,int* pHeight
) const;
,&vSizlPage
,PU_PELS | GPIA_ASSOC
);
- if ((hOldBitmap = ::GpiSetBitmap(hPSMem, hBitmap)) == HBM_ERROR)
- {
- ERRORID vError;
- wxString sError;
+ }
+ if ((hOldBitmap = ::GpiSetBitmap(hPSMem, hBitmap)) == HBM_ERROR)
+ {
+ ERRORID vError;
+ wxString sError;
- vError = ::WinGetLastError(vHabmain);
- sError = wxPMErrorToStr(vError);
- }
+ vError = ::WinGetLastError(vHabmain);
+ sError = wxPMErrorToStr(vError);
}
//
(cBmpGreen == cOldGreenFore) &&
(cBmpBlue == cOldBlueFore))
{
- *pucData = cRedFore;
+ *pucData = cBlueFore;
pucData++;
*pucData = cGreenFore;
pucData++;
- *pucData = cBlueFore;
+ *pucData = cRedFore;
pucData++;
}
else
{
- *pucData = cRedBack;
+ *pucData = cBlueBack;
pucData++;
*pucData = cGreenBack;
pucData++;
- *pucData = cBlueBack;
+ *pucData = cRedBack;
pucData++;
}
}
if (!m_hOldPen)
m_hOldPen = m_pen.GetPS();
}
+ ::GpiSetColor(m_hPS, m_pen.GetColour().GetPixel());
}
}
IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC, wxDC)
-extern void wxLoadBitmapWithData( HPS hPS
- ,HBITMAP hBitmap
- ,int nWidth
- ,int nHeight
- );
-
/////////////////////////////////////////////////////////////////////////////
// Memory DC
/////////////////////////////////////////////////////////////////////////////
WXHBITMAP hBmp = rBitmap.GetHBITMAP();
if (!hBmp)
+ {
+ m_hOldBitmap = (WXHBITMAP)::GpiSetBitmap(m_hPS, NULLHANDLE);
return;
-
+ }
m_vSelectedBitmap.SetSelectedInto(this);
- hBmp = (WXHBITMAP)::GpiSetBitmap(m_hPS, (HBITMAP)hBmp);
+ m_hOldBitmap = (WXHBITMAP)::GpiSetBitmap(m_hPS, (HBITMAP)hBmp);
- if (hBmp == HBM_ERROR)
+ if (m_hOldBitmap == HBM_ERROR)
{
wxLogLastError(wxT("SelectObject(memDC, bitmap)"));
wxFAIL_MSG(wxT("Couldn't select a bitmap into wxMemoryDC"));
}
- else if (!m_hOldBitmap)
- {
- m_hOldBitmap = hBmp;
- }
} // end of wxMemoryDC::SelectObject
void wxMemoryDC::DoGetSize(
*pHeight = m_vSelectedBitmap.GetHeight();
} // end of wxMemoryDC::DoGetSize
-void wxMemoryDC::DoDrawRectangle(
- wxCoord vX
-, wxCoord vY
-, wxCoord vWidth
-, wxCoord vHeight
-)
-{
- wxDC::DoDrawRectangle(vX, vY, vWidth, vHeight);
-
- wxLoadBitmapWithData( m_hPS
- ,(HBITMAP)m_vSelectedBitmap.GetHBITMAP()
- ,m_vSelectedBitmap.GetWidth()
- ,m_vSelectedBitmap.GetHeight()
- );
-} // end of wxMemoryDC::DoDrawRectangle
-
-void wxMemoryDC::DoDrawRoundedRectangle(
- wxCoord vX
-, wxCoord vY
-, wxCoord vWidth
-, wxCoord vHeight
-, double dRadius
-)
-{
- wxDC::DoDrawRoundedRectangle(vX, vY, vWidth, vHeight, dRadius);
-
- wxLoadBitmapWithData( m_hPS
- ,(HBITMAP)m_vSelectedBitmap.GetHBITMAP()
- ,m_vSelectedBitmap.GetWidth()
- ,m_vSelectedBitmap.GetHeight()
- );
-} // end of wxMemoryDC::DoDrawRoundedRectangle
-
-void wxMemoryDC::DoDrawText(
- const wxString& rsText
-, wxCoord vX
-, wxCoord vY
-)
-{
- wxDC::DoDrawText(rsText, vX, vY);
-
- wxLoadBitmapWithData( m_hPS
- ,(HBITMAP)m_vSelectedBitmap.GetHBITMAP()
- ,m_vSelectedBitmap.GetWidth()
- ,m_vSelectedBitmap.GetHeight()
- );
-} // end of wxMemoryDC::DoDrawRectangle
-
-void wxMemoryDC::DoDrawLine(
- wxCoord vX1
-, wxCoord vY1
-, wxCoord vX2
-, wxCoord vY2
-)
-{
- wxDC::DoDrawLine(vX1, vY1, vX2, vY2);
-
- wxLoadBitmapWithData( m_hPS
- ,(HBITMAP)m_vSelectedBitmap.GetHBITMAP()
- ,m_vSelectedBitmap.GetWidth()
- ,m_vSelectedBitmap.GetHeight()
- );
-} // end of wxMemoryDC::DoDrawRoundedRectangle
-
-void wxLoadBitmapWithData(
- HPS hPS
-, HBITMAP hBitmap
-, int nWidth
-, int nHeight
-)
-{
- BITMAPINFOHEADER2 vHeader;
- BITMAPINFO2 vInfo;
-
- vHeader.cbFix = 16L;
- if (::GpiQueryBitmapInfoHeader(hBitmap, &vHeader))
- {
- unsigned char* pucData = NULL;
- unsigned char* pucBits;
- int nBytesPerLine = nWidth * 3;
- LONG lScans = 0L;
- POINTL vPoint;
- LONG lColor;
-
- vInfo.cbFix = 16;
- vInfo.cx = vHeader.cx;
- vInfo.cy = vHeader.cy;
- vInfo.cPlanes = vHeader.cPlanes;
- vInfo.cBitCount = 24;
- pucData = (unsigned char*)malloc(nBytesPerLine * nHeight);
- pucBits = pucData;
- for (int i = 0; i < nHeight; i++)
- {
- for (int j = 0; j < nWidth; j++)
- {
- vPoint.x = j; vPoint.y = i;
- lColor = ::GpiQueryPel(hPS, &vPoint);
- *(pucBits++) = (unsigned char)lColor;
- *(pucBits++) = (unsigned char)(lColor >> 8);
- *(pucBits++) = (unsigned char)(lColor >> 16);
- }
- }
- if ((lScans = ::GpiSetBitmapBits( hPS
- ,0
- ,(LONG)nHeight
- ,(PBYTE)pucData
- ,&vInfo
- )) == GPI_ALTERROR)
- {
- ERRORID vError;
- wxString sError;
-
- vError = ::WinGetLastError(vHabmain);
- sError = wxPMErrorToStr(vError);
- }
- free(pucData);
- }
-}
// ----------------------------------------------------------------------------
wxIcon::wxIcon()
+: m_bIsXpm(FALSE)
{
}
, int WXUNUSED(nWidth)
, int WXUNUSED(nHeight)
)
+: m_bIsXpm(FALSE)
{
}
, int nDesiredWidth
, int nDesiredHeight
)
+: m_bIsXpm(FALSE)
{
//
// A very poor hack, but we have to have separate icon files from windows
wxBitmap vBmp(ppData);
CopyFromBitmap(vBmp);
+ if (GetHICON())
+ {
+ m_bIsXpm = TRUE;
+ m_vXpmSrc = vBmp;
+ }
} // end of wxIcon::CreateIconFromXpm
void wxIcon::CopyFromBitmap(
POINTL vPoint[4] = { 0, 0, rBmp.GetWidth(), rBmp.GetHeight(),
0, 0, rBmp.GetWidth(), rBmp.GetHeight()
};
- POINTL vPointMask[4] = { 0, 0, rBmp.GetWidth(), rBmp.GetHeight(),
+ POINTL vPointMask[4] = { 0, 0, rBmp.GetWidth(), rBmp.GetHeight() * 2,
0, 0, rBmp.GetWidth(), rBmp.GetHeight()
};
}
vIconInfo.hbmColor = hBmp;
- vHeader.cy = (ULONG)rBmp.GetHeight();
+ vHeader.cy = (ULONG)rBmp.GetHeight() * 2;
hBmpMask = ::GpiCreateBitmap( hPSDst
,&vHeader
,0L
CODE LOADONCALL
EXPORTS
-;From library: H:\DEV\WX2\WXWINDOWS\LIB\wx.lib
+;From library: F:\DEV\WX2\WXWINDOWS\LIB\wx.lib
;From object file: dummy.cpp
;PUBDEFs (Symbols available from object file):
wxDummyChar
wxEVT_NC_LEFT_DCLICK
wxEVT_INIT_DIALOG
wxEVT_COMMAND_SET_FOCUS
- ;From object file: H:\DEV\WX2\WXWINDOWS\src\common\extended.c
+ ;From object file: F:\DEV\WX2\WXWINDOWS\src\common\extended.c
;PUBDEFs (Symbols available from object file):
ConvertToIeeeExtended
ConvertFromIeeeExtended
Read32__17wxTextInputStreamFv
;wxTextInputStream::SkipIfEndOfLine(char)
SkipIfEndOfLine__17wxTextInputStreamFc
- ;From object file: H:\DEV\WX2\WXWINDOWS\src\common\unzip.c
+ ;From object file: F:\DEV\WX2\WXWINDOWS\src\common\unzip.c
;PUBDEFs (Symbols available from object file):
unzReadCurrentFile
unzGetCurrentFileInfo
__ct__10wxWindowDCFP8wxWindow
;From object file: ..\os2\dcmemory.cpp
;PUBDEFs (Symbols available from object file):
- ;wxMemoryDC::DoDrawRoundedRectangle(int,int,int,int,double)
- DoDrawRoundedRectangle__10wxMemoryDCFiN31d
- ;wxMemoryDC::DoDrawText(const wxString&,int,int)
- DoDrawText__10wxMemoryDCFRC8wxStringiT2
;wxMemoryDC::SelectObject(const wxBitmap&)
SelectObject__10wxMemoryDCFRC8wxBitmap
__vft10wxMemoryDC8wxObject
- ;wxMemoryDC::DoDrawLine(int,int,int,int)
- DoDrawLine__10wxMemoryDCFiN31
;wxMemoryDC::Init()
Init__10wxMemoryDCFv
- ;wxLoadBitmapWithData(unsigned long,unsigned long,int,int)
- wxLoadBitmapWithData__FUlT1iT3
;wxMemoryDC::DoGetSize(int*,int*) const
DoGetSize__10wxMemoryDCCFPiT1
;wxMemoryDC::wxMemoryDC(wxDC*)
__ct__10wxMemoryDCFP4wxDC
- ;wxMemoryDC::DoDrawRectangle(int,int,int,int)
- DoDrawRectangle__10wxMemoryDCFiN31
;wxMemoryDC::wxMemoryDC()
__ct__10wxMemoryDCFv
;wxMemoryDC::sm_classwxMemoryDC