#include "wx/utils.h"
#include "wx/dialog.h"
#include "wx/app.h"
+#include "wx/bitmap.h"
+#include "wx/dcmemory.h"
#endif
#include "wx/dcprint.h"
m_signY = 1;
m_systemScaleX = 1.0;
m_systemScaleY = 1.0;
- m_mappingMode = MM_TEXT;
+ m_mappingMode = wxMM_TEXT;
m_bOwnsDC = FALSE;
m_hDC = 0;
m_clipping = FALSE;
m_clipX2 = box.x + box.width;
m_clipY2 = box.y + box.height;
+#ifdef __WIN16__
+ SelectClipRgn((HDC) m_hDC, (HRGN) region.GetHRGN());
+#else
ExtSelectClipRgn((HDC) m_hDC, (HRGN) region.GetHRGN(), RGN_AND);
+#endif
}
void wxDC::DoClipping(WXHDC dc)
m_oldPalette = 0;
}
- m_palette = m_palette;
+ m_palette = palette;
if (!m_palette.Ok())
{
double radius = (double)sqrt(dx*dx+dy*dy) ;;
if (x1==x2 && x2==y2)
{
- DrawEllipse(xc,yc,(double)(radius*2.0),(double)(radius*2)) ;
+ DrawEllipse(xc,yc,(long)(radius*2.0),(long)(radius*2.0)) ;
return ;
}
void wxDC::DrawIcon(const wxIcon& icon, long x, long y)
{
+#if defined(__WIN32__) && !defined(__SC__) && !defined(__TWIN32__)
+ ::DrawIconEx((HDC) m_hDC, XLOG2DEV(x), YLOG2DEV(y), (HICON) icon.GetHICON(),
+ icon.GetWidth(), icon.GetHeight(), 0, 0, DI_NORMAL);
+#else
::DrawIcon((HDC) m_hDC, XLOG2DEV(x), YLOG2DEV(y), (HICON) icon.GetHICON());
+#endif
+
CalcBoundingBox(x, y);
CalcBoundingBox(x+icon.GetWidth(), y+icon.GetHeight());
}
if (m_font.Ok() && m_font.GetResourceHandle())
{
HFONT f = (HFONT) ::SelectObject((HDC) m_hDC, (HFONT) m_font.GetResourceHandle());
- if (f == NULL)
+ if (f == (HFONT) NULL)
{
wxDebugMsg("::SelectObject failed in wxDC::SetFont.");
}
}
else
{
- m_canvas->SetBackgroundColour(m_backgroundBrush.GetColour());
+ // New behaviour, 10/2/99: setting the background brush of a DC
+ // doesn't affect the window background colour. However,
+ // I'm leaving in the transparency setting because it's needed by
+ // various controls (e.g. wxStaticText) to determine whether to draw
+ // transparently or not. TODO: maybe this should be a new function
+ // wxWindow::SetTransparency(). Should that apply to the child itself, or the
+ // parent?
+// m_canvas->SetBackgroundColour(m_backgroundBrush.GetColour());
m_canvas->m_backgroundTransparent = FALSE;
}
}
#else
#ifdef UNICODE
::StartDocW((HDC) m_hDC, &docinfo);
+#else
+#ifdef __TWIN32__
+ ::StartDoc((HDC) m_hDC, &docinfo);
#else
::StartDocA((HDC) m_hDC, &docinfo);
#endif
#endif
+#endif
+#ifndef __WIN16__
if (ret <= 0)
{
DWORD lastError = GetLastError();
wxDebugMsg("wxDC::StartDoc failed with error: %d\n", lastError);
}
+#endif
+
return (ret > 0);
}
switch (mode)
{
- case MM_TWIPS:
+ case wxMM_TWIPS:
{
m_logicalScaleX = (twips2mm * mm2pixelsX);
m_logicalScaleY = (twips2mm * mm2pixelsY);
break;
}
- case MM_POINTS:
+ case wxMM_POINTS:
{
m_logicalScaleX = (pt2mm * mm2pixelsX);
m_logicalScaleY = (pt2mm * mm2pixelsY);
break;
}
- case MM_METRIC:
+ case wxMM_METRIC:
{
m_logicalScaleX = mm2pixelsX;
m_logicalScaleY = mm2pixelsY;
break;
}
- case MM_LOMETRIC:
+ case wxMM_LOMETRIC:
{
m_logicalScaleX = (mm2pixelsX/10.0);
m_logicalScaleY = (mm2pixelsY/10.0);
break;
}
default:
- case MM_TEXT:
+ case wxMM_TEXT:
{
m_logicalScaleX = 1.0;
m_logicalScaleY = 1.0;
static void wx_spline_draw_point_array(wxDC *dc)
{
- dc->DrawLines(&wx_spline_point_list, (double)0.0, (double)0.0);
+ dc->DrawLines(&wx_spline_point_list, 0, 0);
wxNode *node = wx_spline_point_list.First();
while (node)
{