#include "wx/string.h"
#include "wx/log.h"
#include "wx/window.h"
+#include "wx/app.h"
#include "wx/os2/private.h"
void wxWindowDC::InitDC()
{
+ wxColour vColor;
+
//
// The background mode is only used for text background and is set in
// DrawText() to OPAQUE as required, otherwise always TRANSPARENT,
// Default bg colour is pne of the window
//
SetBackground(wxBrush(m_pCanvas->GetBackgroundColour(), wxSOLID));
+
+ vColor.InitFromName("BLACK");
+ m_pen.SetColour(vColor);
+ vColor.Set("WHITE");
+ m_brush.SetColour(vColor);
+ InitializePalette();
+ wxFont* pFont = new wxFont( 12
+ ,wxNORMAL
+ ,wxNORMAL
+ ,wxBOLD
+ );
+ SetFont(*pFont);
+ delete pFont;
+ //
+ // OS/2 default vertical character allignment needs to match the other OS's
+ //
+ ::GpiSetTextAlignment((HPS)GetHPS(), TA_NORMAL_HORIZ, TA_BOTTOM);
+
} // end of wxWindowDC::InitDC
+void wxWindowDC::DoGetSize(
+ int* pnWidth
+, int* pnHeight
+) const
+{
+ wxCHECK_RET( m_pCanvas, _T("wxWindowDC without a window?") );
+ m_pCanvas->GetSize( pnWidth
+ ,pnHeight
+ );
+} // end of wxWindowDC::DoGetSize
+
// ----------------------------------------------------------------------------
// wxClientDC
// ----------------------------------------------------------------------------
InitDC();
} // end of wxClientDC::wxClientDC
+void wxClientDC::InitDC()
+{
+ wxWindowDC::InitDC();
+
+ // in wxUniv build we must manually do some DC adjustments usually
+ // performed by Windows for us
+#ifdef __WXUNIVERSAL__
+ wxPoint ptOrigin = m_pCanvas->GetClientAreaOrigin();
+ if ( ptOrigin.x || ptOrigin.y )
+ {
+ // no need to shift DC origin if shift is null
+ SetDeviceOrigin(ptOrigin.x, ptOrigin.y);
+ }
+
+ // clip the DC to avoid overwriting the non client area
+ SetClippingRegion(wxPoint(0, 0), m_pCanvas->GetClientSize());
+#endif // __WXUNIVERSAL__
+} // end of wxClientDC::InitDC
+
+wxClientDC::~wxClientDC()
+{
+} // end of wxClientDC::~wxClientDC
+
+void wxClientDC::DoGetSize(
+ int* pnWidth
+, int* pnHeight
+) const
+{
+ wxCHECK_RET( m_pCanvas, _T("wxWindowDC without a window?") );
+ m_pCanvas->GetClientSize( pnWidth
+ ,pnHeight
+ );
+} // end of wxClientDC::DoGetSize
+
// ----------------------------------------------------------------------------
// wxPaintDC
// ----------------------------------------------------------------------------
{
HPS hPS;
+ m_hDC = ::WinOpenWindowDC(GetWinHwnd(m_pCanvas));
hPS = ::WinBeginPaint( GetWinHwnd(m_pCanvas)
,NULLHANDLE
,&g_paintStruct
);
if(hPS)
{
+ ::GpiAssociate(hPS, m_hDC);
m_hOldPS = m_hPS;
m_hPS = hPS;
::GpiCreateLogColorTable( m_hPS
}
m_bIsPaintTime = TRUE;
- m_hDC = (WXHDC) -1; // to satisfy those anonizmous efforts
ms_cache.Add(new wxPaintDCInfo(m_pCanvas, this));
}
InitDC();
::WinEndPaint(m_hPS);
m_hPS = m_hOldPS;
m_bIsPaintTime = FALSE;
- ms_cache.Remove(nIndex);
+ ms_cache.RemoveAt(nIndex);
}
//else: cached DC entry is still in use