m_nDCCount = 0;
m_hOldPS = NULL;
m_hPS = NULL;
- m_bIsPaintTime = FALSE;// True at Paint Time
-};
+ m_bIsPaintTime = FALSE; // True at Paint Time
+ m_brush.GetColour().Set("WHITE");
+}
wxDC::~wxDC(void)
{
- // TODO:
-};
+}
// This will select current objects out of the DC,
// which is what you have to do before deleting the
m_clipping = TRUE;
vRect.xLeft = XLOG2DEV(x);
- vRect.yTop = YLOG2DEV(y + height);
+ vRect.yTop = YLOG2DEV(m_vRclPaint.yTop - y);
vRect.xRight = XLOG2DEV(x + width);
- vRect.yBottom = YLOG2DEV(y);
+ vRect.yBottom = YLOG2DEV(m_vRclPaint.yTop - (y + height));
::GpiIntersectClipRectangle(m_hPS, &vRect);
DO_SET_CLIPPING_BOX()
} // end of wxDC::DoSetClippingRegion
POINTL vPoint[2];
vPoint[0].x = vX1;
- vPoint[0].y = vY1;
+ vPoint[0].y = m_vRclPaint.yTop - vY1;
vPoint[1].x = vX2;
- vPoint[1].y = vY2;
+ vPoint[1].y = m_vRclPaint.yTop - vY2;
::GpiMove(m_hPS, &vPoint[0]);
::GpiLine(m_hPS, &vPoint[1]);
}
dAnglmid = (dAngl1 + dAngl2)/2. + M_PI;
vXm = vXc + dRadius * cos(dAnglmid);
vYm = vYc + dRadius * sin(dAnglmid);
- DoDrawArc( vX1
- ,vY1
- ,vXm
- ,vYm
- ,vXc
- ,vYc
+ DoDrawArc( vX1, vY1
+ ,vXm, vYm
+ ,vXc, vYc
);
- DoDrawArc( vXm
- ,vYm
- ,vX2
- ,vY2
- ,vXc
- ,vYc
+ DoDrawArc( vXm, vYm
+ ,vX2, vY2
+ ,vXc, vYc
);
return;
}
vPtlPos.x = vX1; // Loads x-coordinate
vPtlPos.y = vY1; // Loads y-coordinate
::GpiMove(m_hPS, &vPtlPos); // Sets current position
- vPtlArc[0].x = vXm;
- vPtlArc[0].y = vYm;
+ vPtlArc[0].x = vXm;
+ vPtlArc[0].y = vYm;
vPtlArc[1].x = vX2;
vPtlArc[1].y = vY2;
::GpiPointArc(m_hPS, vPtlArc); // Draws the arc
POINTL vPoint;
vPoint.x = vX;
- vPoint.y = vY;
+ vPoint.y = m_vRclPaint.yTop - vY;
::GpiSetPel(m_hPS, &vPoint);
}
int nIsTRANSPARENT = 0;
vPoint[0].x = vX;
- vPoint[0].y = vY;
+ vPoint[0].y = m_vRclPaint.yTop - (vY + vHeight);
vPoint[1].x = vX + vWidth;
- vPoint[1].y = vY - vHeight;
+ vPoint[1].y = m_vRclPaint.yTop - vY;
::GpiMove(m_hPS, &vPoint[0]);
lColor = m_brush.GetColour().GetPixel();
lBorderColor = m_pen.GetColour().GetPixel();
if(m_brush.GetStyle() == wxTRANSPARENT)
lControl = DRO_OUTLINE;
- ::GpiSetColor(m_hPS, CLR_GREEN);
+ ::GpiSetColor(m_hPS, lColor);
::GpiBox( m_hPS // handle to a presentation space
,lControl // draw the box outline ? or ?
,&vPoint[1] // address of the corner
::GpiSetColor( m_hPS
,lColor
);
+ vPoint[0].x = vX + 1;
+ vPoint[0].y = m_vRclPaint.yTop - (vY + vHeight) + 1;
+ vPoint[1].x = vX + vWidth - 2;
+ vPoint[1].y = m_vRclPaint.yTop - (vY + 2);
+ ::GpiMove(m_hPS, &vPoint[0]);
::GpiBox( m_hPS
,lControl
,&vPoint[1]
LONG lControl;
vPoint[0].x = vX;
- vPoint[0].y = vY;
+ vPoint[0].y = YLOG2DEV(vY) - vHeight;
vPoint[1].x = vX + vWidth;
- vPoint[1].y = vY + vHeight;
+ vPoint[1].y = vY;
::GpiMove(m_hPS, &vPoint[0]);
lControl = DRO_OUTLINEFILL; //DRO_FILL;
//
if (m_hOldFont)
{
-// ::SelectObject(GetHdc(), (HFONT) m_hOldFont);
m_hOldFont = 0;
}
-
m_font = rFont;
-
if (!rFont.Ok())
{
- if (m_hOldFont)
-// ::SelectObject(GetHdc(), (HFONT) m_hOldFont);
m_hOldFont = 0;
}
- if (m_font.Ok() && m_font.GetResourceHandle())
+ m_font.SetPS(m_hPS); // this will realize the font
+
+ if (m_font.Ok())
{
- HFONT hFont = (HFONT)0; //::SelectObject(GetHdc(), (HFONT) m_font.GetResourceHandle());
+ HFONT hFont = m_font.GetResourceHandle();
if (hFont == (HFONT) NULL)
{
wxLogDebug(wxT("::SelectObject failed in wxDC::SetFont."));
if (!m_hOldFont)
m_hOldFont = (WXHFONT) hFont;
}
-}
+} // end of wxDC::SetFont
void wxDC::SetPen(
const wxPen& rPen
m_hOldPen = m_pen.GetPS();
}
}
-
}
void wxDC::SetBrush(
const wxBrush& rBrush
)
{
- // TODO
-}
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
+
+ if (m_brush == rBrush)
+ return;
+ m_brush = rBrush;
+ if (!m_brush.Ok())
+ return;
+
+ if (m_hOldBrush)
+ m_hOldBrush = 0L;
+ m_brush = rBrush;
+
+ if (!m_brush.Ok())
+ {
+ if (m_hOldBrush)
+ {
+ m_brush.SetPS((HPS)m_hOldBrush);
+ }
+ m_hOldBrush = 0L;
+ }
+
+ if (m_brush.Ok())
+ {
+ if (m_brush.GetResourceHandle())
+ {
+ m_brush.SetPS(m_hPS);
+ if (!m_hOldBrush)
+ m_hOldBrush = m_brush.GetPS();
+ }
+ }
+} // end of wxDC::SetBrush
void wxDC::SetBackground(const wxBrush& brush)
{
// TODO:
};
-void wxDC::SetDeviceOrigin( wxCoord x, wxCoord y )
+void wxDC::SetDeviceOrigin(
+ wxCoord x
+, wxCoord y
+)
{
RECTL vRect;
+ m_deviceOriginX = x;
+ m_deviceOriginY = y;
::GpiQueryPageViewport( m_hPS
,&vRect
);