struct WXDLLEXPORT wxPaintDCInfo
{
- wxPaintDCInfo(wxWindow *win, wxDC *dc)
+ wxPaintDCInfo( wxWindow* pWin
+ ,wxDC* pDC
+ )
{
- hwnd = win->GetHWND();
- hdc = dc->GetHDC();
- count = 1;
+ m_hWnd = pWin->GetHWND();
+ m_hDC = pDC->GetHDC();
+ m_nCount = 1;
}
- WXHWND hwnd; // window for this DC
- WXHDC hdc; // the DC handle
- size_t count; // usage count
-};
+ WXHWND m_hWnd; // window for this DC
+ WXHDC m_hDC; // the DC handle
+ size_t m_nCount; // usage count
+}; // end of wxPaintDCInfot
#include "wx/arrimpl.cpp"
m_pCanvas = NULL;
}
-wxWindowDC::wxWindowDC(wxWindow *the_canvas)
+wxWindowDC::wxWindowDC(
+ wxWindow* pTheCanvas
+)
{
ERRORID vError;
wxString sError;
- m_pCanvas = the_canvas;
- m_hDC = (WXHDC) ::WinOpenWindowDC(GetWinHwnd(the_canvas) );
+ m_pCanvas = pTheCanvas;
+ m_hDC = (WXHDC) ::WinOpenWindowDC(GetWinHwnd(pTheCanvas) );
m_nDCCount++;
//
// default under PM is that Window and Client DC's are the same
sError = wxPMErrorToStr(vError);
wxLogError("Unable to set current color table. Error: %s\n", sError);
}
+ ::GpiCreateLogColorTable( m_hPS
+ ,0L
+ ,LCOLF_RGB
+ ,0L
+ ,0L
+ ,NULL
+ );
SetBackground(wxBrush(m_pCanvas->GetBackgroundColour(), wxSOLID));
+ ::WinQueryWindowRect( GetWinHwnd(m_pCanvas)
+ ,&m_vRclPaint
+ );
}
wxWindowDC::~wxWindowDC()
m_pCanvas = NULL;
}
-wxClientDC::wxClientDC(wxWindow *the_canvas)
+wxClientDC::wxClientDC(
+ wxWindow* pTheCanvas
+)
{
SIZEL vSizl = { 0,0};
ERRORID vError;
wxString sError;
- m_pCanvas = the_canvas;
+ m_pCanvas = pTheCanvas;
//
// default under PM is that Window and Client DC's are the same
//
- m_hDC = (WXHDC) ::WinOpenWindowDC(GetWinHwnd(the_canvas));
+ m_hDC = (WXHDC) ::WinOpenWindowDC(GetWinHwnd(pTheCanvas));
m_hPS = ::GpiCreatePS( wxGetInstance()
,m_hDC
,&vSizl
sError = wxPMErrorToStr(vError);
wxLogError("Unable to set current color table. Error: %s\n", sError);
}
+ ::GpiCreateLogColorTable( m_hPS
+ ,0L
+ ,LCOLF_RGB
+ ,0L
+ ,0L
+ ,NULL
+ );
//
// Default mode is BM_LEAVEALONE so we make no call Set the mix
//
,wxSOLID
)
);
-}
+ //
+ // Set the DC/PS rectangle
+ //
+ ::WinQueryWindowRect( GetWinHwnd(m_pCanvas)
+ ,&m_vRclPaint
+ );
+} // end of wxClientDC::wxClientDC
wxClientDC::~wxClientDC()
{
//
m_hDC = 0;
}
-}
+} // end of wxClientDC::~wxClientDC
// ----------------------------------------------------------------------------
// wxPaintDC
if (pInfo)
{
- m_hDC = pInfo->hdc;
- pInfo->count++;
+ m_hDC = pInfo->m_hDC;
+ pInfo->m_nCount++;
}
else // not in cache, create a new one
{
);
if(hPS)
{
+ POINTL vPoint[2];
+ LONG lControl;
+ LONG lColor;
+
m_hOldPS = m_hPS;
m_hPS = hPS;
::GpiCreateLogColorTable( m_hPS
,0L
,NULL
);
+
+ ::WinFillRect(hPS, &g_paintStruct, m_pCanvas->GetBackgroundColour().GetPixel());
+ ::WinQueryWindowRect( GetWinHwnd(m_pCanvas)
+ ,&m_vRclPaint
+ );
}
+
m_bIsPaintTime = TRUE;
m_hDC = (WXHDC) -1; // to satisfy those anonizmous efforts
- m_vRclPaint = g_paintStruct;
ms_cache.Add(new wxPaintDCInfo(m_pCanvas, this));
}
SetBackground(wxBrush(m_pCanvas->GetBackgroundColour(), wxSOLID));
{
SelectOldObjects(m_hDC);
- size_t index;
- wxPaintDCInfo *info = FindInCache(&index);
+ size_t nIndex;
+ wxPaintDCInfo* pInfo = FindInCache(&nIndex);
- wxCHECK_RET( info, wxT("existing DC should have a cache entry") );
+ wxCHECK_RET( pInfo, wxT("existing DC should have a cache entry") );
- if ( !--info->count )
+ if ( !--pInfo->m_nCount )
{
::WinEndPaint(m_hPS);
m_hPS = m_hOldPS;
m_bIsPaintTime = FALSE;
- ms_cache.Remove(index);
+ ms_cache.Remove(nIndex);
}
//else: cached DC entry is still in use
}
}
-wxPaintDCInfo *wxPaintDC::FindInCache(size_t *index) const
+wxPaintDCInfo* wxPaintDC::FindInCache(
+ size_t* pIndex
+) const
{
- wxPaintDCInfo *info = NULL;
- size_t nCache = ms_cache.GetCount();
- for ( size_t n = 0; n < nCache; n++ )
+ wxPaintDCInfo* pInfo = NULL;
+ size_t nCache = ms_cache.GetCount();
+
+ for (size_t n = 0; n < nCache; n++)
{
- info = &ms_cache[n];
- if ( info->hwnd == m_pCanvas->GetHWND() )
+ pInfo = &ms_cache[n];
+ if (pInfo->m_hWnd == m_pCanvas->GetHWND())
{
- if ( index )
- *index = n;
+ if (pIndex)
+ *pIndex = n;
break;
}
}
+ return pInfo;
+} // end of wxPaintDC::FindInCache
- return info;
-}