#ifndef WX_PRECOMP
#endif
+#include "wx/os2/dcclient.h"
#include "wx/os2/private.h"
//
int nX1 = 0;
int nY1 = 0;
- int nWidth = vDc.m_vRclPaint.xRight - vDc.m_vRclPaint.xLeft;
- int nHeight = vDc.m_vRclPaint.yTop - vDc.m_vRclPaint.yBottom;
+ wxPMDCImpl *impl = (wxPMDCImpl*) vDc.GetImpl();
+ int nWidth = impl->m_vRclPaint.xRight - impl->m_vRclPaint.xLeft;
+ int nHeight = impl->m_vRclPaint.yTop - impl->m_vRclPaint.yBottom;
int nBmpWidth = pBitmap->GetWidth();
int nBmpHeight = pBitmap->GetHeight();
// Note: DrawLine expects wxWidgets coordinate system so swap
//
rDC.SetPen(bSel ? vDarkShadowPen : vHiLitePen);
+ wxPMDCImpl *impl = (wxPMDCImpl*) rDC.GetImpl();
// top
- rDC.DrawLine( rDC.m_vRclPaint.xLeft + 1
- ,rDC.m_vRclPaint.yBottom + 1
- ,rDC.m_vRclPaint.xRight - 1
- ,rDC.m_vRclPaint.yBottom + 1
+ rDC.DrawLine( impl->m_vRclPaint.xLeft + 1
+ ,impl->m_vRclPaint.yBottom + 1
+ ,impl->m_vRclPaint.xRight - 1
+ ,impl->m_vRclPaint.yBottom + 1
);
// left
- rDC.DrawLine( rDC.m_vRclPaint.xLeft + 1
- ,rDC.m_vRclPaint.yBottom + 1
- ,rDC.m_vRclPaint.xLeft + 1
- ,rDC.m_vRclPaint.yTop - 1
+ rDC.DrawLine( impl->m_vRclPaint.xLeft + 1
+ ,impl->m_vRclPaint.yBottom + 1
+ ,impl->m_vRclPaint.xLeft + 1
+ ,impl->m_vRclPaint.yTop - 1
);
rDC.SetPen(bSel ? vHiLitePen : vDarkShadowPen);
// bottom
- rDC.DrawLine( rDC.m_vRclPaint.xLeft + 1
- ,rDC.m_vRclPaint.yTop - 1
- ,rDC.m_vRclPaint.xRight - 1
- ,rDC.m_vRclPaint.yTop - 1
+ rDC.DrawLine( impl->m_vRclPaint.xLeft + 1
+ ,impl->m_vRclPaint.yTop - 1
+ ,impl->m_vRclPaint.xRight - 1
+ ,impl->m_vRclPaint.yTop - 1
);
// right
- rDC.DrawLine( rDC.m_vRclPaint.xRight - 1
- ,rDC.m_vRclPaint.yBottom + 1
- ,rDC.m_vRclPaint.xRight - 1
- ,rDC.m_vRclPaint.yTop - 1
+ rDC.DrawLine( impl->m_vRclPaint.xRight - 1
+ ,impl->m_vRclPaint.yBottom + 1
+ ,impl->m_vRclPaint.xRight - 1
+ ,impl->m_vRclPaint.yTop - 1
);
} // end of wxBitmapButton::DrawFace
// Note: DrawLine expects wxWidgets coordinate system so swap
//
rDC.SetPen(vBlackPen);
+ wxPMDCImpl *impl = (wxPMDCImpl*) rDC.GetImpl();
// top
- rDC.DrawLine( rDC.m_vRclPaint.xLeft
- ,rDC.m_vRclPaint.yBottom
- ,rDC.m_vRclPaint.xRight
- ,rDC.m_vRclPaint.yBottom
+ rDC.DrawLine( impl->m_vRclPaint.xLeft
+ ,impl->m_vRclPaint.yBottom
+ ,impl->m_vRclPaint.xRight
+ ,impl->m_vRclPaint.yBottom
);
// right
- rDC.DrawLine( rDC.m_vRclPaint.xRight
- ,rDC.m_vRclPaint.yBottom
- ,rDC.m_vRclPaint.xRight
- ,rDC.m_vRclPaint.yTop
+ rDC.DrawLine( impl->m_vRclPaint.xRight
+ ,impl->m_vRclPaint.yBottom
+ ,impl->m_vRclPaint.xRight
+ ,impl->m_vRclPaint.yTop
);
// bottom
- rDC.DrawLine( rDC.m_vRclPaint.xRight
- ,rDC.m_vRclPaint.yTop
- ,rDC.m_vRclPaint.xLeft
- ,rDC.m_vRclPaint.yTop
+ rDC.DrawLine( impl->m_vRclPaint.xRight
+ ,impl->m_vRclPaint.yTop
+ ,impl->m_vRclPaint.xLeft
+ ,impl->m_vRclPaint.yTop
);
// left
- rDC.DrawLine( rDC.m_vRclPaint.xLeft
- ,rDC.m_vRclPaint.yTop
- ,rDC.m_vRclPaint.xLeft
- ,rDC.m_vRclPaint.yBottom
+ rDC.DrawLine( impl->m_vRclPaint.xLeft
+ ,impl->m_vRclPaint.yTop
+ ,impl->m_vRclPaint.xLeft
+ ,impl->m_vRclPaint.yBottom
);
} // end of wxBitmapButton::DrawButtonFocus
// Note: DrawLine expects wxWidgets coordinate system so swap
//
rDC.SetPen(vGreyPen);
+ wxPMDCImpl *impl = (wxPMDCImpl*) rDC.GetImpl();
// top
- rDC.DrawLine( rDC.m_vRclPaint.xLeft
- ,rDC.m_vRclPaint.yBottom
- ,rDC.m_vRclPaint.xRight
- ,rDC.m_vRclPaint.yBottom
+ rDC.DrawLine( impl->m_vRclPaint.xLeft
+ ,impl->m_vRclPaint.yBottom
+ ,impl->m_vRclPaint.xRight
+ ,impl->m_vRclPaint.yBottom
);
// right
- rDC.DrawLine( rDC.m_vRclPaint.xRight
- ,rDC.m_vRclPaint.yBottom
- ,rDC.m_vRclPaint.xRight
- ,rDC.m_vRclPaint.yTop
+ rDC.DrawLine( impl->m_vRclPaint.xRight
+ ,impl->m_vRclPaint.yBottom
+ ,impl->m_vRclPaint.xRight
+ ,impl->m_vRclPaint.yTop
);
// bottom
- rDC.DrawLine( rDC.m_vRclPaint.xRight
- ,rDC.m_vRclPaint.yTop
- ,rDC.m_vRclPaint.xLeft
- ,rDC.m_vRclPaint.yTop
+ rDC.DrawLine( impl->m_vRclPaint.xRight
+ ,impl->m_vRclPaint.yTop
+ ,impl->m_vRclPaint.xLeft
+ ,impl->m_vRclPaint.yTop
);
// left
- rDC.DrawLine( rDC.m_vRclPaint.xLeft
- ,rDC.m_vRclPaint.yTop
- ,rDC.m_vRclPaint.xLeft
- ,rDC.m_vRclPaint.yBottom
+ rDC.DrawLine( impl->m_vRclPaint.xLeft
+ ,impl->m_vRclPaint.yTop
+ ,impl->m_vRclPaint.xLeft
+ ,impl->m_vRclPaint.yBottom
);
wxDisableBitmap(rBmp, vGreyPen.GetColour().GetPixel());
} // end of wxBitmapButton::DrawButtonDisable
#endif
#include "wx/ownerdrw.h"
+#include "wx/os2/dcclient.h"
// ============================================================================
// implementation of wxOwnerDrawn class
}
vDC.SetFont(GetFont());
vDC.GetTextExtent( sStr
- ,(long *)pWidth
- ,(long *)pHeight
+ ,(wxCoord *)pWidth
+ ,(wxCoord *)pHeight
);
if (!m_strAccel.empty())
{
// Make sure that this item is at least as
// tall as the user's system settings specify
//
- if (*pHeight < m_nMinHeight)
- *pHeight = m_nMinHeight;
+ const size_t heightStd = 6; // FIXME: get value from the system
+ if ( *pHeight < heightStd )
+ *pHeight = heightStd;
m_nHeight = *pHeight; // remember height for use in OnDrawItem
return true;
} // end of wxOwnerDrawn::OnMeasureItem
//
CHARBUNDLE vCbnd;
- HPS hPS= rDC.GetHPS();
+ wxPMDCImpl *impl = (wxPMDCImpl*) rDC.GetImpl();
+ HPS hPS= impl->GetHPS();
wxColour vColBack;
wxColour vColText;
COLORREF vRef;
bFoundMnemonic = true;
sTmp.Remove(nIndex);
rDC.GetTextExtent( sTmp
- ,(long *)&nWidth
- ,(long *)&nHeight
+ ,(wxCoord *)&nWidth
+ ,(wxCoord *)&nHeight
);
sTmp = sFullString[(size_t)(nIndex + 1)];
rDC.GetTextExtent( sTmp
- ,(long *)&nCharWidth
- ,(long *)&nHeight
+ ,(wxCoord *)&nCharWidth
+ ,(wxCoord *)&nHeight
);
sFullString.Replace(sTgt.c_str(), wxEmptyString, true);
}
// Draw the main item text sans the accel text
//
POINTL vPntStart = {nX, rRect.y + 4};
- ::GpiCharStringAt( rDC.GetHPS()
+ ::GpiCharStringAt( impl->GetHPS()
,&vPntStart
,sFullString.length()
,sFullString.char_str()
size_t nHeight;
rDC.GetTextExtent( sAccel
- ,(long *)&nWidth
- ,(long *)&nHeight
+ ,(wxCoord *)&nWidth
+ ,(wxCoord *)&nHeight
);
//
// Back off the starting position from the right edge
//
vPntStart.x = rRect.width - (nWidth + 7);
vPntStart.y = rRect.y + 4;
- ::GpiCharStringAt( rDC.GetHPS()
+ ::GpiCharStringAt( impl->GetHPS()
,&vPntStart
,sAccel.length()
,sAccel.char_str()
#include <stdio.h>
#endif
+#include "wx/os2/dcclient.h"
+
#if wxUSE_OWNER_DRAWN
#include "wx/ownerdrw.h"
#endif
QMSG s_currentMsg;
#if wxUSE_MENUS_NATIVE
-wxMenu* wxCurrentPopupMenu = NULL;
+extern wxMenu* wxCurrentPopupMenu;
#endif // wxUSE_MENUS_NATIVE
// ---------------------------------------------------------------------------
bool bIsWaiting = true;
int nHeight;
- // Protect against recursion
- if (wxCurrentPopupMenu)
- return false;
-
pMenu->SetInvokingWindow(this);
pMenu->UpdateUI();
WXDRAWITEMSTRUCT* pItemStruct )
{
#if wxUSE_OWNER_DRAWN
- wxDC vDc;
+ wxClientDC vDc(this);
#if wxUSE_MENUS_NATIVE
//
,pMeasureStruct->rclItem.xRight - pMeasureStruct->rclItem.xLeft
,pMeasureStruct->rclItem.yTop - pMeasureStruct->rclItem.yBottom
);
- vDc.SetHDC( hDC, false );
- vDc.SetHPS( pMeasureStruct->hps );
+
+ wxPMDCImpl *impl = (wxPMDCImpl*) vDc.GetImpl();
+ impl->SetHDC( hDC, false );
+ impl->SetHPS( pMeasureStruct->hps );
//
// Load the wxWidgets Pallete and set to RGB mode
//
wxPaintEvent& rEvent
)
{
- HDC hDC = (HDC)wxPaintDC::FindDCInCache((wxWindow*) rEvent.GetEventObject());
+ HDC hDC = (HDC)wxPaintDCImpl::FindDCInCache((wxWindow*) rEvent.GetEventObject());
if (hDC != 0)
{
if (vSwp.fl & SWP_MINIMIZE)
return true;
- wxDC vDC;
-
- vDC.m_hPS = (HPS)hDC; // this is really a PS
- vDC.SetWindow((wxWindow*)this);
+ wxClientDC vDC(this);
+ wxPMDCImpl *impl = (wxPMDCImpl*) vDC.GetImpl();
+ impl->SetHDC(hDC);
+ impl->SetHPS((HPS)hDC); // this is really a PS
wxEraseEvent vEvent(m_windowId, &vDC);
rc = HandleWindowEvent(vEvent);
- vDC.m_hPS = NULLHANDLE;
+ impl->SetHPS(NULLHANDLE);
return true;
} // end of wxWindowOS2::HandleEraseBkgnd
void wxWindowOS2::OnEraseBackground(wxEraseEvent& rEvent)
{
RECTL vRect;
- HPS hPS = rEvent.GetDC()->GetHPS();
+ wxPMDCImpl *impl = (wxPMDCImpl*) rEvent.GetDC()->GetImpl();
+ HPS hPS = impl->GetHPS();
APIRET rc;
LONG lColor = m_backgroundColour.GetPixel();