// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "drawn.h"
-#pragma implementation "drawnp.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#include "wx/ogl/ogl.h"
-
-#include <math.h>
-
+#if wxUSE_PROLOGIO
static void IntToHex(unsigned int dec, wxChar *buf);
static unsigned long HexToInt(wxChar *buf);
+#endif
+
extern wxChar *oglBuffer;
#define gyTYPE_PEN 40
int wxDrawnShape::DetermineMetaFile(double rotation)
{
double tolerance = 0.0001;
- const double pi = 3.1415926535897932384626433832795 ;
+ const double pi = M_PI ;
double angle1 = 0.0;
double angle2 = pi/2.0;
double angle3 = pi;
}
case DRAWOP_DRAW_ELLIPTIC_ARC:
{
- const double pi = 3.1415926535897932384626433832795 ;
+ const double pi = M_PI ;
// Convert back to degrees
dc.DrawEllipticArc(
long signedY = (long)(m_points[i].y*100.0);
// Scale to 0 -> 64K
- long unSignedX = (long)(signedX + 32767.0);
- long unSignedY = (long)(signedY + 32767.0);
+ unsigned int unSignedX = (unsigned int)(signedX + 32767.0);
+ unsigned int unSignedY = (unsigned int)(signedY + 32767.0);
-// IntToHex((unsigned int)signedX, buf2);
-// IntToHex((unsigned int)signedY, buf3);
- IntToHex((int)unSignedX, buf2);
- IntToHex((int)unSignedY, buf3);
+ IntToHex(unSignedX, buf2);
+ IntToHex(unSignedY, buf3);
// Don't overrun the buffer
if ((i*8) < 3000)
*
*/
-static char hexArray[] = {
- _T('0'), _T('1'), _T('2'), _T('3'), _T('4'), _T('5'), _T('6'), _T('7'),
+#if wxUSE_PROLOGIO
+
+static char hexArray[] = {
+ _T('0'), _T('1'), _T('2'), _T('3'), _T('4'), _T('5'), _T('6'), _T('7'),
_T('8'), _T('9'), _T('A'), _T('B'), _T('C'), _T('D'), _T('E'), _T('F') };
// Convert unsigned 16-bit integer to 4-character hex string
return 14;
case _T('F'):
return 15;
- #if 0
- // handling this default outside switch removes warning under Borland
- default:
- return 0;
- #endif
}
return 0;
return n;
}
+#endif // wxUSE_PROLOGIO
+
/*
* wxPseudo meta-file
*
m_outlineOp = -1;
}
-wxPseudoMetaFile::wxPseudoMetaFile(wxPseudoMetaFile& mf)
+wxPseudoMetaFile::wxPseudoMetaFile(wxPseudoMetaFile& mf):wxObject()
{
mf.Copy(*this);
}
{
int penWidth = (int)expr->Nth(1)->IntegerValue();
int penStyle = (int)expr->Nth(2)->IntegerValue();
- int penRed = (int)expr->Nth(3)->IntegerValue();
- int penGreen = (int)expr->Nth(4)->IntegerValue();
- int penBlue = (int)expr->Nth(5)->IntegerValue();
+ unsigned char penRed = (unsigned char)expr->Nth(3)->IntegerValue();
+ unsigned char penGreen = (unsigned char)expr->Nth(4)->IntegerValue();
+ unsigned char penBlue = (unsigned char)expr->Nth(5)->IntegerValue();
wxColour col(penRed, penGreen, penBlue);
wxPen *p = wxThePenList->FindOrCreatePen(col, penWidth, penStyle);
if (!p)
case gyTYPE_BRUSH:
{
int brushStyle = (int)expr->Nth(1)->IntegerValue();
- int brushRed = (int)expr->Nth(2)->IntegerValue();
- int brushGreen = (int)expr->Nth(3)->IntegerValue();
- int brushBlue = (int)expr->Nth(4)->IntegerValue();
+ unsigned char brushRed = (unsigned char)expr->Nth(2)->IntegerValue();
+ unsigned char brushGreen = (unsigned char)expr->Nth(3)->IntegerValue();
+ unsigned char brushBlue = (unsigned char)expr->Nth(4)->IntegerValue();
wxColour col(brushRed, brushGreen, brushBlue);
wxBrush *b = wxTheBrushList->FindOrCreateBrush(col, brushStyle);
if (!b)
case DRAWOP_DRAW_RECT:
case DRAWOP_DRAW_ROUNDED_RECT:
case DRAWOP_DRAW_ELLIPSE:
+ case DRAWOP_DRAW_ELLIPTIC_ARC:
case DRAWOP_DRAW_POINT:
case DRAWOP_DRAW_TEXT:
{
}
else if (op->GetOp() == DRAWOP_DRAW_RECT ||
op->GetOp() == DRAWOP_DRAW_ROUNDED_RECT ||
- op->GetOp() == DRAWOP_DRAW_ELLIPSE)
+ op->GetOp() == DRAWOP_DRAW_ELLIPSE ||
+ op->GetOp() == DRAWOP_DRAW_ELLIPTIC_ARC)
{
if ((opDraw->m_x1 + opDraw->m_x2) < minX) minX = (opDraw->m_x1 + opDraw->m_x2);
if ((opDraw->m_x1 + opDraw->m_x2) > maxX) maxX = (opDraw->m_x1 + opDraw->m_x2);
void wxPseudoMetaFile::DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle)
{
- const double pi = 3.1415926535897932384626433832795 ;
+ const double pi = M_PI ;
double startAngleRadians = startAngle* (pi*2.0/360.0);
double endAngleRadians = endAngle* (pi*2.0/360.0);